不吃

导航

第二次结对作业

这个作业属于哪个课程 2020春|S班 (福州大学)
这个作业要求在哪里 作业要求
这个作业的目标 强化GitHub编程
作业正文 软工实践结对作业(2/2)
其他参考文献 百度、csdn、简书

1.GitHub 仓库地址 及 代码规范

仓库地址-> https://github.com/Allenaka/InfectStatisticWeb/tree/master
代码规范-> https://github.com/Allenaka/InfectStatisticWeb/blob/master/codestyle.md

2.成品展示

3.结对讨论



4.功能结构

5.代码说明

echarts生成地图

var myChart = echarts.init(document.getElementById('map'));
    option = {
        tooltip: {
                formatter:function(params,ticket, callback){
                    return params.seriesName+'<br />'+params.name+':'+params.value
                }//数据格式化
            },
        visualMap: {
            min: 0,
            max: 1500,
            left: 'left',
            top: 'bottom',
            text: ['高','低'],//取值范围的文字
            inRange: {
                color: ['#e0ffff', '#006edd']//取值范围的颜色
            },
            show:true//图注
        },
        geo: {
            map: 'china',
            roam: false,//不开启缩放和平移
            zoom:1.23,//视角缩放比例
            label: {
                normal: {
                    show: true,
                    fontSize:'10',
                    color: 'rgba(0,0,0,0.7)'
                }
            },
            itemStyle: {
                normal:{
                    borderColor: 'rgba(0, 0, 0, 0.2)'
                },
                emphasis:{
                    areaColor: '#F3B329',//鼠标选择区域颜色
                    shadowOffsetX: 0,
                    shadowOffsetY: 0,
                    shadowBlur: 20,
                    borderWidth: 0,
                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
            }
        },
        series : [
            {
                name: '现存确诊',
                type: 'map',
                geoIndex: 0,
                data:[]
            }
        ]
    };
    myChart.setOption(option);

获取接口数据并填充

function getCurrData(params) {
    $.ajax({
        url: "https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5",
        dataType: "jsonp",
        success: function (data) {
        console.log(data.data)
        var res = data.data || "";
        res = JSON.parse(res);
        var newArr = [], newArr2 = [];
        var currEffected, suspected, dead, cure, totalEffected, imported;
        var addCurrEffected, addSuspected, addDead, addCure, addTotalEffected, addImported;
        
        if (res) {
            
            totalEffected = res.chinaTotal.confirm;
            suspected = res.chinaTotal.suspect;
            cure = res.chinaTotal.heal;
            dead = res.chinaTotal.dead;
            currEffected = res.chinaTotal.nowConfirm;
            imported = res.chinaTotal.importedCase;
            addCurrEffected = res.chinaAdd.nowConfirm;
            addSuspected = res.chinaAdd.suspect;
            addCure = res.chinaAdd.heal;
            addDead = res.chinaAdd.dead;
            addImported = res.chinaAdd.importedCase;
            addTotalEffected = res.chinaAdd.confirm;


            document.getElementById("confirm").innerText = totalEffected;
            document.getElementById("nowConfirm").innerText = currEffected;
            document.getElementById("cure").innerText = cure;
            document.getElementById("dead").innerText = dead;
            document.getElementById("suspected").innerText = suspected;
            document.getElementById("importCase").innerText = imported;
            document.getElementById("addCurr").innerText = addCurrEffected;
            document.getElementById("addTotal").innerText = addTotalEffected;
            document.getElementById("addCure").innerText = addCure;
            document.getElementById("addDead").innerText = addDead;
            document.getElementById("addImported").innerText = addImported;
            document.getElementById("addSuspected").innerText = addSuspected;
            
            //获取到各个省份的数据
            var province = res.areaTree[0].children;
            for (var i = 0; i < province.length; i++) {
            var json = {
                name: province[i].name,
                value: province[i].total.confirm - province[i].total.dead - province[i].total.heal
            }
            var json2 = {
                name: province[i].name,
                value: province[i].total.confirm
            }
            newArr.push(json);
            newArr2.push(json2);
            }
            // console.log(newArr)
            // console.log(JSON.stringify(newArr))
            //使用指定的配置项和数据显示图表
            if (params == myChart) {
                params.setOption({
                series: [
                    {
                    name: '现存确诊数',
                    type: 'map',
                    mapType: 'china',
                    roam: false,
                    label: {
                        show: true,
                        color: 'rgb(249, 249, 249)'
                    },
                    data: newArr
                    }
                ]
                });
            }
            else {
                params.setOption({
                series: [
                    {
                    name: '累计确诊数',
                    type: 'map',
                    mapType: 'china',
                    roam: false,
                    label: {
                        show: true,
                        color: 'rgb(249, 249, 249)'
                    },
                    data: newArr2
                    }
                ]
                });
            }
        }
        }

    })
}

getCurrData(myChart); 

echarts生成折线图

var myChart2 = echarts.init(document.getElementById('line'));
    option2 = {
        tooltip: {
            trigger: 'axis'
        },
        legend: {
            data: ['新增确诊', '累计确诊', '新增疑似', '累计治愈', '累计死亡']
        },
        grid: {
            left: '3%',
            right: '4%',
            bottom: '3%',
            containLabel: true
        },
        toolbox: {
            feature: {
                saveAsImage: {}
            }
        },
        xAxis: {
            type: 'category',
            boundaryGap: false,
            data: []
        },
        yAxis: {
            type: 'value'
        },
        series: [
            {
                name: '新增确诊',
                type: 'line',
                data: []
            },
            {
                name: '累计确诊',
                type: 'line',
                data: []
            },
            {
                name: '新增疑似',
                type: 'line',
                data: []
            },
            {
                name: '累计治愈',
                type: 'line',
                data: []
            },
            {
                name: '累计死亡',
                type: 'line',
                data: []
            }
            
        ]
    };

    myChart2.setOption(option2);

接口获取折线图数据

function lineData() {
    var url = "http://www.dzyong.top:3005/yiqing/history";/*json文件url,本地的就写本地的位置,如果是服务器的就写服务器的路径*/
        var request = new XMLHttpRequest();
        request.open("get", url);/*设置请求方法与路径*/
        request.send(null);/*不发送数据到服务器*/
        request.onload = function () {/*XHR对象获取到返回信息后执行*/
            if (request.status == 200) {/*返回状态为200,即为数据获取成功*/
                var res = JSON.parse(request.responseText);
                var xline = [], increase = [], total = [], suspected = [], cure = [], dead = [];
                for(var i=0; i<res.data.length; i++){
                    xline[i] = res.data[i].date;
                    if (i != 0) {
                        increase[i] = res.data[i].confirmedNum - res.data[i-1].confirmedNum;
                        suspected[i] = res.data[i].suspectedNum - res.data[i-1].suspectedNum;
                        if (suspected[i] < 0) {
                            suspected[i] = 0;
                        }
                    }
                    else {
                        increase[i] = res.data[0].confirmedNum;
                        suspected[i] = res.data[0].suspectedNum;
                    }
                    cure[i] = res.data[i].curesNum;
                    dead[i] = res.data[i].deathsNum
                    total[i] = res.data[i].confirmedNum;
                }
                console.log(total);
                myChart2.setOption({
                    xAxis: {
                        data: xline
                    },
                    series: [
                        {
                            name: '新增确诊',
                            data: increase
                        },
                        {
                            name: '累计确诊',
                            data: total
                        },
                        {
                            name: '新增疑似',
                            data: suspected
                        },
                        {
                            name: '累计治愈',
                            data: cure
                        },
                        {
                            name: '累计死亡',
                            data: dead
                        }
                        
                    ]

                })
            }
        }
}

lineData();

页面跳转与传参

myChart.on('click', function (param) {
        // 城市中文名
        var cityName = encodeURI(param.name);
        window.open("test.html?cityName=" + cityName, "_self");

    });


var afterUrl =  window.location.search.substring(1);
// encodeURI(afterUrl);
var afterEqual = afterUrl.substring(afterUrl.indexOf('=')+1); 
var cityName = decodeURI(afterEqual);
document.getElementById("province").innerText = cityName;

6.结对总结

221701427:

收获:

合作开发,只有及时发现问题,积极沟通,通力协作,才能发挥出1+1>2的效果。但是现实的情况往往是,代码的不规范,分工的不明确,系统分析的不合理,等等种种因素,使得最后的效果往往是1+1<2。在当今,一个软件项目往往都不会是一个人完成,也不可能是一个人就能完成,相信此次结对合作是一次很好的经验。

队友评价:

枣子绝对是中国好队友,两次结对作业都十分给力,在作业过程中给我提供了很多的帮助,并且还十分宽容地允许我在deadline之后拖延了两天让我尝试完成自己的开发,各种方面都挺感谢枣子的。

221701424:

收获:

开发的过程中,往往缺乏及时的沟通,导致整个进度过缓、甚至混乱的局面,因此在团队开发过程中,领头人要积极参与、及时跟进进度,合理分工合作能避免较多不必要的麻烦,这次结对任务丰富了我的开发经验,增强了我沟通协调的欲望,是一次很不同寻常体验。

队友评价:

没毛病干就完了奥里给

posted on 2020-03-18 22:13  不吃  阅读(194)  评论(0编辑  收藏  举报