Echarts进行异步调用数据。(柱状图和折线图,饼状图)以及查询十二月份复杂的数据显示。

1 饼状图
示例图
在这里插入图片描述
前台代码html:

<div>
     <div id="yhzhfx"></div>
 </div>

前台代码js:

 var myChart = echarts.init(document.getElementById('yhzhfx'));
    option = {
        tooltip : {
            trigger: 'item',
            formatter: "{a} <br/>{b} : {c} ({d}%)"
        },
        toolbox: {
            show : true,
            feature : {
                mark : {show: true},
                dataView : {show: true, readOnly: false},
                magicType : {
                    show: true,
                    type: ['pie', 'funnel']
                },
                myTool1: {
                    show: true,
                    title: '导出',
                    onclick: function (){
                        alert('1')
                    }
                },
                saveAsImage : {show: true}
            }
        },
        calculable : false,
        series : [
            {
                name:'',
                type:'pie',
                selectedMode: 'single',
                radius : [0, 30],
                x: '20%',
                width: '30%',
                funnelAlign: 'right',
                max: 1548,
                itemStyle : {
                    normal : {
                        label : {
                            position : 'inner'
                        },
                        labelLine : {
                            show : false
                        }
                    }
                },
                color:['#1FC2FF','#F7C754'],
                data:[]
            },
            {
                name:'',
                type:'pie',
                radius : [40, 55],
                x: '30%',
                width: '20%',
                funnelAlign: 'left',
                max: 1048,
                color:['#1FC2FF','#F7C754','#4D7FFF','#AA78FF','#05D9B3','#FF845E'],
                data:[]
            },
            {
                name:'',
                type:'pie',
                radius : [70, 85],
                x: '30%',
                width: '20%',
                funnelAlign: 'left',
                max: 1048,
                color:['#4D7FFF','#AA78FF','#FF845E','#05D9B3','#1FC2FF'],
                data:[
                ]
            }
        ]
    };
    myChart.showLoading();    //数据加载完之前先显示一段简单的loading动画
    $.ajax({
   			 //这里需要三个res数组来装三个饼状环数据,在data使用function()进行遍历后台传来的值装入每个res数组中
        url: "xxx/yhpczlWtyhzhfx",
        success: function(data){
            var res=[];
            var item=data.list1;
            var res1=[];
            var item1=data.list2;
            var res2=[];
            var item2=data.list3;
            myChart.hideLoading();    //隐藏加载动画
            myChart.setOption({        //加载数据图表
                tooltip : {
                    trigger: 'item',
                    formatter: "{a} <br/>{b} : {c} ({d}%)"
                },
                toolbox: {
                    show : true,
                    feature : {
                        mark : {show: true},
                        dataView : {show: true, readOnly: false},
                        magicType : {
                            show: true,
                            type: ['pie', 'funnel']
                        },
                        myTool1: {
                            show: true,
                            title: '导出',
                            onclick: function (){
                                alert('1')
                            }
                        },
                        saveAsImage : {show: true}
                    }
                },
                calculable : false,
                series : [
                    {
                        name:'',
                        type:'pie',
                        selectedMode: 'single',
                        radius : [0, 30],
                        x: '20%',
                        width: '30%',
                        funnelAlign: 'right',
                        max: 1548,
                        itemStyle : {
                            normal : {
                                label : {
                                    position : 'inner'
                                },
                                labelLine : {
                                    show : false
                                }
                            }
                        },
                        color:['#1FC2FF','#F7C754'],
                        data:function () {
                            for(var i=0;i<item.length;i++){
                                res.push({
                                    name:item[i].name,
                                    value:item[i].value
                                });
                            }
                            return res;
                        }()
                    },
                    {
                        name:'',
                        type:'pie',
                        radius : [40, 55],
                        x: '30%',
                        width: '20%',
                        funnelAlign: 'left',
                        max: 1048,
                        color:['#1FC2FF','#F7C754','#4D7FFF','#AA78FF','#05D9B3','#FF845E'],
                        data:function () {
                            for(var i=0;i<item1.length;i++){
                                res1.push({
                                    name:item1[i].name,
                                    value:item1[i].value
                                });
                            }
                            return res1;
                        }()
                    },
                    {
                        name:'',
                        type:'pie',
                        radius : [70, 85],
                        x: '30%',
                        width: '20%',
                        funnelAlign: 'left',
                        max: 1048,
                        color:['#4D7FFF','#AA78FF','#FF845E','#05D9B3','#1FC2FF'],
                        data:function () {
                            for(var i=0;i<item2.length;i++){
                                res2.push({
                                    name:item2[i].name,
                                    value:item2[i].value
                                });
                            }
                            return res2;
                        }()
                    }
                ]
            })
        }});

数据库部分:
1 环:
在这里插入图片描述
2 环:
在这里插入图片描述
3 环:
在这里插入图片描述
java后台Sql方法:

<select id="yhpczlWtyhzhfx_1List"  resultType="map">
        SELECT
        *
        FROM
        yhpczl_wtyhzhfx_1
    </select>
    <select id="yhpczlWtyhzhfx_2List"  resultType="map">
        SELECT
        *
        FROM
        yhpczl_wtyhzhfx_2
    </select>
    <select id="yhpczlWtyhzhfx_3List"  resultType="map">
        SELECT
        *
        FROM
        yhpczl_wtyhzhfx_3
    </select>

java后台Controller:

 public JSONObject yhpczlWtyhzhfx(){
        JSONObject jsonObject = new JSONObject();
        List<YhpczlWtyhzhfx_1>  list1 = iThreeInOneInfoService.yhpczlWtyhzhfx_1List();
        List<YhpczlWtyhzhfx_2>  list2 = iThreeInOneInfoService.yhpczlWtyhzhfx_2List();
        List<YhpczlWtyhzhfx_3>  list3 = iThreeInOneInfoService.yhpczlWtyhzhfx_3List();
        jsonObject.put("list1",list1);
        jsonObject.put("list2",list2);
        jsonObject.put("list3",list3);
        return jsonObject;
    }

2 柱状图
示例图:
在这里插入图片描述

前台html代码:

 <div>
    <div id="aqfxqdzhfx"></div>
 </div>

前台js代码:

var myChart2 = echarts.init(document.getElementById('aqfxqdzhfx'));
    option2 = {
        tooltip : {
            trigger: 'axis'
        },
        toolbox: {
            show : true,
            feature : {
                mark : {show: true},
                dataView : {show: true, readOnly: false},
                magicType: {show: true, type: ['line', 'bar']},
				/*restore : {show: true},*/
                myTool1: {
                    show: true,
                    title: '导出',
                   
                    onclick: function (){
                        alert('1')
                    }
                },
                saveAsImage : {show: true}
            }
        },
        calculable : true,
        legend: {
			/*x: 'left',
			 left: 30,*/
            top:5,
            color:['#FF845E','#F7C754','#AA78FF','#1FC2FF','#1FC2FF'],
            data:['检查次数-计划','检查清单数-计划','检查次数-实际','排查清单数-实际','发现隐患数']
        },
        xAxis : [
            {
                type : 'category',
                data : ['01月','02月','03月','04月','05月','06月','07月','08月','09月','10月','11月','12月']
            }
        ],
        yAxis : [
            {
                type : 'value',
                name : '排查次数',
                axisLabel : {
                    formatter: '{value} 次'
                }
            },
            {
                type : 'value',
                name : '排查清单数',
                axisLabel : {
                    formatter: '{value} 个'
                }
            }
        ],
        series : [

            {
                name:'检查次数-计划',
                type:'bar',
                color:['#FF845E'],
                data:[]
            },
            {
                name:'检查清单数-计划',
                type:'bar',
                color:['#F7C754'],
                data:[]
            },
            {
                name:'检查次数-实际',
                type:'bar',
                color:['#AA78FF'],
                data:[]
            },
            {
                name:'排查清单数-实际',
                type:'bar',
                yAxisIndex: 1,
                color:['#1FC2FF'],
                data:[]
            },
            {
                name:'发现隐患数',
                type:'line',
                color:['#05D9B3'],
                data:[]
            }
        ]
    };
    myChart2.showLoading();    //数据加载完之前先显示一段简单的loading动画
    $.ajax({
        url: "xxxx/yhpczlAqfxqdzhfx",
        success: function(data){
            var res1 = [];
            var res2 = [];
            var res3 = [];
            var res4 = [];
            var res5 = [];

            var item=data.list;
            myChart2.hideLoading();    //隐藏加载动画
            myChart2.setOption({        //加载数据图表
                tooltip : {
                    trigger: 'axis'
                },
                toolbox: {
                    show : true,
                    feature : {
                        mark : {show: true},
                        dataView : {show: true, readOnly: false},
                        magicType: {show: true, type: ['line', 'bar']},
						/*restore : {show: true},*/
                        myTool1: {
                            show: true,
                            title: '导出',
                        
                            onclick: function (){
                                alert('1')
                            }
                        },
                        saveAsImage : {show: true}
                    }
                },
                calculable : true,
                legend: {
					/*x: 'left',
					 left: 30,*/
                    top:5,
                    color:['#FF845E','#F7C754','#AA78FF','#1FC2FF','#1FC2FF'],
                    data:['检查次数-计划','检查清单数-计划','检查次数-实际','排查清单数-实际','发现隐患数']
                },
                xAxis : [
                    {
                        type : 'category',
                        data : ['01月','02月','03月','04月','05月','06月','07月','08月','09月','10月','11月','12月']
                    }
                ],
                yAxis : [
                    {
                        type : 'value',
                        name : '排查次数',
                        axisLabel : {
                            formatter: '{value} 次'
                        }
                    },
                    {
                        type : 'value',
                        name : '排查清单数',
                        axisLabel : {
                            formatter: '{value} 个'
                        }
                    }
                ],
                series : [

                    {
                        name:'检查次数-计划',
                        type:'bar',
                        color:['#FF845E'],
                        data:function () {
                            for(var i=0;i<item.length;i++){
                                res1.push(item[i].value1);
                            }
                            return res1;
                        }()
                    },
                    {
                        name:'检查清单数-计划',
                        type:'bar',
                        color:['#F7C754'],
                        data:function () {
                            for(var i=0;i<item.length;i++){
                                res2.push(item[i].value2);
                            }
                            return res2;
                        }()
                    },
                    {
                        name:'检查次数-实际',
                        type:'bar',
                        color:['#AA78FF'],
                        data:function () {
                            for(var i=0;i<item.length;i++){
                                res3.push(item[i].value3);
                            }
                            return res3;
                        }()
                    },
                    {
                        name:'排查清单数-实际',
                        type:'bar',
                        yAxisIndex: 1,
                        color:['#1FC2FF'],
                        data:function () {
                            for(var i=0;i<item.length;i++){
                                res4.push(item[i].value4);
                            }
                            return res4;
                        }()
                    },
                    {
                        name:'发现隐患数',
                        type:'line',
                        color:['#05D9B3'],
                        data:function () {
                            for(var i=0;i<item.length;i++){
                                res5.push(item[i].value5);
                            }
                            return res5;
                        }()
                    }
                ]
            })
        }});

数据库部分:
在这里插入图片描述

后台Sql代码:

<select id="yhpczlAqfxqdzhfxList"  resultType="map">
        SELECT
        *
        FROM
        yhpczl_aqfxqdzhfx
    </select>

后台Contorller代码:

  public JSONObject yhpczlAqfxqdzhfx(){
        JSONObject jsonObject = new JSONObject();

        List<YhpczlAqfxqdzhfx>  list = iThreeInOneInfoService.yhpczlAqfxqdzhfxList();
        jsonObject.put("list",list);
        return jsonObject;
    }

3 折线图:
示例图:
在这里插入图片描述
前台html代码:

    <div>
         <div id="wtyhqsfx"></div>
      </div>

前台js代码:

 var myChart3 = echarts.init(document.getElementById('wtyhqsfx'));
    option3 = {
        tooltip : {
            trigger: 'axis'
        },
        legend: {
			/*x: 'left',
			 left: 50,*/
            top:10,
            data:['2018','2019']
        },
        toolbox: {
            show : true,
            feature : {
                mark : {show: true},
                dataView : {show: true, readOnly: false},
                magicType : {show: true, type: ['line', 'bar']},
                myTool1: {
                    show: true,
                    title: '导出',
                 
                    onclick: function (){
                        alert('1')
                    }
                },
				/*restore : {show: true},*/
                saveAsImage : {show: true}
            }
        },
        calculable : true,
        xAxis : [
            {
                type : 'category',
                boundaryGap : false,
                data : ['01月','02月','03月','04月','05月','06月','07月','08月','09月','10月','11月','12月']
            }
        ],
        yAxis : [
            {
                type : 'value'
            }
        ],
        series : [
            {
                name:'2018',
                type:'line',
                stack: '隐患个数',
                color:['#1FC2FF'],
                data:[]
            },
            {
                name:'2019',
                type:'line',
                stack: '隐患个数',
                color:['#F7C754'],
                data:[]
            }
        ]
    };
    myChart3.showLoading();    //数据加载完之前先显示一段简单的loading动画
    $.ajax({
        url: "xxx/yhpczlWtyhqsfx",
        success: function(data){
        	var res1 = [];
            var res = [];
            var item=data.list;
            myChart3.hideLoading();    //隐藏加载动画
            myChart3.setOption({        //加载数据图表
                tooltip : {
                    trigger: 'axis'
                },
                legend: {
					/*x: 'left',
					 left: 50,*/
                    top:10,
                    data:['2018','2019']
                },
                toolbox: {
                    show : true,
                    feature : {
                        mark : {show: true},
                        dataView : {show: true, readOnly: false},
                        magicType : {show: true, type: ['line', 'bar']},
                        myTool1: {
                            show: true,
                            title: '导出',
                         
                            onclick: function (){
                                alert('1')
                            }
                        },
						/*restore : {show: true},*/
                        saveAsImage : {show: true}
                    }
                },
                calculable : true,
                xAxis : [
                    {
                        type : 'category',
                        boundaryGap : false,
                        data : ['01月','02月','03月','04月','05月','06月','07月','08月','09月','10月','11月','12月']
                    }
                ],
                yAxis : [
                    {
                        type : 'value'
                    }
                ],
                series : [
                    {
                        name:'2018',
                        type:'line',
                        stack: '隐患个数',
                        color:['#1FC2FF'],
                        data:function () {
                            for(var i=0;i<item.length;i++){
                                res.push(item[i].value1);
                            }
                            return res;
                        }()
                    },
                    {
                        name:'2019',
                        type:'line',
                        stack: '隐患个数',
                        color:['#F7C754'],
                        data:function () {
                            for(var i=0;i<item.length;i++){
                                res1.push(item[i].value2);
                            }
                            return res1;
                        }()
                    }
                ]

            })
        }});

数据库部分:
在这里插入图片描述
后台Sql代码:

 <select id="yhpczlWtyhqsfxList"  resultType="map">
        SELECT
        *
        FROM
        yhpczl_wtyhqsfx
    </select>

后台Controller:

 public JSONObject yhpczlWtyhqsfx(){
        JSONObject jsonObject = new JSONObject();

        List<YhpczlWtyhqsfx>  list = iThreeInOneInfoService.yhpczlWtyhqsfxList();
        jsonObject.put("list",list);
        return jsonObject;
    }

复杂的十二月份的需求图:

在这里插入图片描述
复杂的十二月份的示例图:

在这里插入图片描述

因为查询的数据是一年的数据这一年的数据没有需求的数据多,所以有什么显示什么。

前台html:

				<div  class='navTtitle'>
                        <h4>安全生产标准化趋势分析</h4>
                    </div>
                    <div>
                        <div id="yhqsfx"></div>
                    </div>

前台js:

 var myChart2 = echarts.init(document.getElementById('yhqsfx'));
    myChart2.showLoading();    //数据加载完之前先显示一段简单的loading动画
    $.ajax({
        url: "/threeInOneInfoAqscbzhtjfx/aqscbzhtjfxQsfx?endTime="+endTime+"&coalMineCode="+coalMineCode+"&startTime="+startTime,
        success: function(data){
            var res1=[0,0,0,0,0,0,0,0,0,0,0,0];
            var res2=[0,0,0,0,0,0,0,0,0,0,0,0];
            var res3=[0,0,0,0,0,0,0,0,0,0,0,0];
            var res4=[0,0,0,0,0,0,0,0,0,0,0,0];
            var res5=[0,0,0,0,0,0,0,0,0,0,0,0];
            var res6=[0,0,0,0,0,0,0,0,0,0,0,0];
            var res7=[0,0,0,0,0,0,0,0,0,0,0,0];
            var res8=[0,0,0,0,0,0,0,0,0,0,0,0];
            var res9=[0,0,0,0,0,0,0,0,0,0,0,0];
            var res10=[0,0,0,0,0,0,0,0,0,0,0,0];
            var res11=[0,0,0,0,0,0,0,0,0,0,0,0];
            var res12=[0,0,0,0,0,0,0,0,0,0,0,0];
            var item=data.list;
            myChart2.hideLoading();    //隐藏加载动画
            myChart2.setOption({
                tooltip : {
                    trigger: 'axis'
                },
                legend: {
                    top:10,
                    data:['调度和地面设施','安全培训和应急管理','职业卫生','运输','机电','掘进','采煤','地址灾害防治与测量','通风','事故隐患排查治理','安全风险分级管控']
                },
                toolbox: {
                    show : true,
                    feature : {
                        mark : {show: true},
                        dataView : {show: true, readOnly: false},
                        magicType : {show: true, type: ['line', 'bar']},
						/*restore : {show: true},*/
                        saveAsImage : {show: true}
                    }
                },
                calculable : true,
                xAxis : [
                    {
                        type : 'category',
                        boundaryGap : false,
                        data : ['01月','02月','03月','04月','05月','06月','07月','08月','09月','10月','11月','12月'],
                    }
                ],
                yAxis : [
                    {
                        type : 'value',
                        name:'得分'
                    }
                ],
                series : [
                    {
                        name:'调度和地面设施',
                        type:'line',
                        stack: '调度和地面设施',
                        color:['#1FC2FF'],
                        data:function () {
                            for(var i=0;i<item.length;i++){
                                if(item[i].name=="调度和地面设施"){
                                    var mon =item[i].year;
                                    var month = mon.substr(mon.length-2)
                                    res2[month-1]=(item[i].value);
                                }
                            }
                            return res2;
                        }()
                    },
                    {
                        name:'安全培训和应急管理',
                        type:'line',
                        stack: '安全培训和应急管理',
                        color:['#F7C754'],
                        data:function () {
                            for(var i=0;i<item.length;i++){
                                if(item[i].name=="安全培训和应急管理"){
                                    var mon =item[i].year;
                                    var month = mon.substr(mon.length-2)
                                    res3[month-1]=(item[i].value);
                                }
                            }
                            return res3;
                        }()
                    },
                    {
                        name:'职业卫生',
                        type:'line',
                        stack: '职业卫生',
                        color:['#FF845E'],
                        data:function () {
                            for(var i=0;i<item.length;i++){
                                if(item[i].name=="职业卫生"){
                                    var mon =item[i].year;
                                    var month = mon.substr(mon.length-2)
                                    res4[month-1]=(item[i].value);
                                }
                            }
                            return res4;
                        }()
                    },
                    {
                        name:'运输',
                        type:'line',
                        stack: '运输',
                        color:['#F7C754'],
                        data:function () {
                            for(var i=0;i<item.length;i++){
                                if(item[i].name=="运输"){
                                    var mon =item[i].year;
                                    var month = mon.substr(mon.length-2)
                                    res5[month-1]=(item[i].value);
                                }
                            }
                            return res5;
                        }()
                    },
                    {
                        name:'机电',
                        type:'line',
                        stack: '机电',
                        color:['#AA78FF'],
                        data:function () {
                            for(var i=0;i<item.length;i++){
                                if(item[i].name=="机电"){
                                    var mon =item[i].year;
                                    var month = mon.substr(mon.length-2)
                                    res6[month-1]=(item[i].value);
                                }
                            }
                            return res6;
                        }()
                    },
                    {
                        name:'掘进',
                        type:'line',
                        stack: '掘进',
                        color:['#1FC2FF'],
                        data:function () {
                            for(var i=0;i<item.length;i++){
                                if(item[i].name=="掘进"){
                                    var mon =item[i].year;
                                    var month = mon.substr(mon.length-2)
                                    res7[month-1]=(item[i].value);
                                }
                            }
                            return res7;
                        }()
                    },
                    {
                        name:'采煤',
                        type:'line',
                        stack: '采煤',
                        color:['#05D9B3'],
                        data:function () {
                            for(var i=0;i<item.length;i++){
                                if(item[i].name=="采煤"){
                                    var mon =item[i].year;
                                    var month = mon.substr(mon.length-2)
                                    res8[month-1]=(item[i].value);
                                }
                            }
                            return res8;
                        }()
                    },
                    {
                        name:'地质灾害防治与测量',
                        type:'line',
                        stack: '地质灾害防治与测量',
                        color:['#4D7FFF'],
                        data:function () {
                            for(var i=0;i<item.length;i++){
                                if(item[i].name=="地质灾害防治与测量"){
                                    var mon =item[i].year;
                                    var month = mon.substr(mon.length-2)
                                    res9[month-1]=(item[i].value);
                                }
                            }
                            return res9;
                        }()
                    },
                    {
                        name:'通风',
                        type:'line',
                        stack: '通风',
                        color:['#F03F3F'],
                        data:function () {
                            for(var i=0;i<item.length;i++){
                                if(item[i].name=="通风"){
                                    var mon =item[i].year;
                                    var month = mon.substr(mon.length-2)
                                    res10[month-1]=(item[i].value);
                                }
                            }
                            return res10;
                        }()
                    },
                    {
                        name:'事故隐患排查治理',
                        type:'line',
                        stack: '事故隐患排查治理',
                        color:['#333333'],
                        data:function () {
                            for(var i=0;i<item.length;i++){
                                if(item[i].name=="事故隐患排查治理"){
                                    var mon =item[i].year;
                                    var month = mon.substr(mon.length-2)
                                    res11[month-1]=(item[i].value);
                                }
                            }
                            return res11;
                        }()
                    },
                    {
                        name:'安全风险分级管控',
                        type:'line',
                        stack: '安全风险分级管控',
                        color:['#1FC2FF'],
                        data:function () {
                            for(var i=0;i<item.length;i++){
                                if(item[i].name=="安全风险分级管控"){
                                    var mon =item[i].year;
                                    var month = mon.substr(mon.length-2)
                                    res12[month-1]=(item[i].value);
                                }
                            }
                            return res12;
                        }()
                    }
                ]

			})
        }});

=[0,0,0,0,0,0,0,0,0,0,0,0]初始化十二个月的值。
.substr(mon.length-2) 是因为后台传入的数据为201802,这样的数据,我们需要把这个最后的月份获取到,插入到对应的月份中的下标。
month-1是因为数组下标为0开头,后台获得的数据是1开头。

后台sql:

 select d.CHECK_YEAR as year, d.YIXUANZEPROJECTS_NAME as name, count(*) as value from f_swyt_view_bzh_plan d
        where d.COALMINE_CODE = #{coalMineCode}
        and CHECK_TYPE = #{checkType}
        and d.CHECK_YEAR <![CDATA[>]]>#{startTime}
        and d.CHECK_YEAR <![CDATA[<]]>#{endTime}
        group by  d.YIXUANZEPROJECTS_NAME;

数据库显示:
在这里插入图片描述
后台Controller:

 JSONObject jsonObject = new JSONObject();
        List<Map>  list = iThreeInOneInfoAqschbzfxService.aqscbzhtjfxQsfxList(startTime,endTime,coalMineCode,checkType);
        jsonObject.put("list",list);
        return jsonObject;

以上四种Echarts图都是在data部分进行将后台获取的数据添加进去。

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值