• 第二次结对作业


    这个作业属于哪个课程 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:

    收获:

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

    队友评价:

    没毛病干就完了奥里给

  • 相关阅读:
    [LeetCode] Diagonal Traverse 对角线遍历
    [LeetCode] Find Bottom Left Tree Value 寻找最左下树结点的值
    [LeetCode] Next Greater Element I 下一个较大的元素之一
    [LeetCode] Teemo Attacking 提莫攻击
    [LeetCode] 494. Target Sum 目标和
    记一次Android studio升级之后的坑
    Flutter:Slivers大家族,让滑动视图的组合变得很简单!
    flutter控件之ListView滚动布局
    flutter 生命周期
    Flutter 案例学习之:GridView
  • 原文地址:https://www.cnblogs.com/interplorer/p/12520808.html
Copyright © 2020-2023  润新知