• 解决Echarts窗口自适应失效问题


    1.之前的窗口自适应关键代码(window.onresize)分别写到了好几个function中,窗口自适应失效了。代码如下:

    $(function() {
        // 加载金额、油量、加油笔数、税额
        $.ajax({
            type:"POST",
            url:"Index!getOneAndAll.action",
            data: {"sjkd" : 10 , "startTime" : HOMEDATEYM},
            dataType:"json",
            success: function(data){
                // 如果返回是json数据为null,则退出此方法
                if(null == data){
                    return;
                }
                if(null != data.total){
                    var je_total = formatThousand2(data.total.je);
                    var yl_total = formatThousand2(data.total.yl);
                    var jybs_total = formatThousand(data.total.jybs);
                    var se_total = formatThousand2(data.total.se);
                    je_total = je_total.replace(".","<span class='point'>.")+"</span>";
                    yl_total = yl_total.replace(".","<span class='point'>.")+"</span>";
                    se_total =  se_total.replace(".","<span class='point'>.")+"</span>";
                    $("#je_total").html(je_total);
                    $("#yl_total").html(yl_total);
                    $("#jybs_total").html (jybs_total);
                    $("#se_total").html(se_total);
                }else{
                    $("#je_total").html("0<span class='point'>.00</span>");
                    $("#yl_total").html("0<span class='point'>.00</span>");
                    $("#jybs_total").html("0");
                    $("#se_total").html("0<span class='point'>.00</span>");
                }
                createCollectEcharts1(data);
            },
            error:function(data){
                alert("获取首页数据失败!");
            }
        });
        
        // 加载Top10
        $.ajax({
            type:"POST",
            url:"Index!getTopBar.action",
            data: {"sjkd" : 10 , "startTime" : HOMEDATEYM , "topKj" : 10 , "topNum" : 10},
            dataType:"json",
            success: function(data){
                // 如果返回是json数据为null,则退出此方法
                if(null == data){
                    return;
                }
                createCollectEcharts2(data);
            },
            error:function(data){
                alert("获取首页数据失败!");
            }
        });
        
        // 加载摘挂枪分析
        $.ajax({
            type:"POST",
            url:"Index!getZgqfxScatter.action",
            data: {"sjkd" : 10 , "startTime" : HOMEDATEYM},
            dataType:"json",
            success: function(data){
                // 如果返回是json数据为null,则退出此方法
                if(null == data){
                    return;
                }
                createCollectEcharts3(data);
            },
            error:function(data){
                alert("获取首页数据失败!");
            }
        });
    });
    
    function createCollectEcharts1(data){
        var xAxisData = [];
        var jeSeriesData = [];
        var ylSeriesData = [];
        var jybsSeriesData = [];
        var seSeriesData = [];
        
        for (var i = 0, size = data.dataList.length; i < size; i++) {
            xAxisData.push(data.dataList[i].sjjc);
            jeSeriesData.push(data.dataList[i].je);
            ylSeriesData.push(data.dataList[i].yl);
            jybsSeriesData.push(data.dataList[i].jybs);
            seSeriesData.push(data.dataList[i].se);
        }
        
        var data = ['中石油102', '大平五一路', '中通', '和源', '德月', '铭磊', '高桥', '大平汽贸城', '天盈', '宝光', '燕港', '顺达', '长城'];
        // 散点图声明
        var baseNumber = 45000;
        var variableNumber = 0;
        
        // 指定图表的配置项和数据
        var textBr = function(value) {
            // debugger
            var ret = ""; // 拼接加
    返回的类目项
            var maxLength = 3; // 每项显示文字个数
            var valLength = value.length; // X轴类目项的文字个数
            var rowN = Math.ceil(valLength / maxLength); // 类目项需要换行的行数
            if (rowN > 1) // 如果类目项的文字大于3,
            {
                for (var i = 0; i < rowN; i++) {
                    var temp = ""; // 每次截取的字符串
                    var start = i * maxLength; // 开始截取的位置
                    var end = start + maxLength; // 结束截取的位置
                    // 这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧
                    temp = value.substring(start, end) + "
    ";
                    ret += temp; // 凭借最终的字符串
                }
                return ret;
            } else {
                return value;
            }
        }
        
        var myChart1, myChart2, myChart3, myChart4;
        
        // 基于准备好的dom,初始化echarts实例
        if ($('#echarts1').length > 0) {
            myChart1 = echarts.init(document.getElementById('echarts1'));
        }
        if ($('#echarts2').length > 0) {
            myChart2 = echarts.init(document.getElementById('echarts2'));
        }
        if ($('#echarts3').length > 0) {
            myChart3 = echarts.init(document.getElementById('echarts3'));
        }
        if ($('#echarts4').length > 0) {
            myChart4 = echarts.init(document.getElementById('echarts4'));
        }
        
        /* 第一个图表的配置--月销售额 --柱状图 */
        var option1 = {
            color: ['#01a1ff'],
            tooltip: {
                trigger: 'axis',
                axisPointer: { // 坐标轴指示器,坐标轴触发有效
                    type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
                },
                   formatter:function(params){
                       var res = params[0].name;
                       for (var i = 0; i < params.length; i++) {
                           res += "<br>"+params[i].marker+params[i].seriesName+":"+formatThousand2(params[i].data);
                    }
                    return res;
                   }
            },
            dataZoom: [{
                type: 'inside',
            }],
            grid: {
                top: '30',
                left: '1%',
                right: '1%',
                bottom: '1%',
                containLabel: true,
            },
            xAxis: [{
                data: xAxisData,
                axisTick: {
                    show: false,
                },
                axisLabel: {
                    formatter: function(value) {
                        return textBr(value);
                    }
                }
            }],
            yAxis: [{
                type: 'value',
                axisTick: {
                    show: false,
                },
            }],
            series: [{
                name: '本月销售额',
                type: 'bar',
                barWidth: '40%',
                label: {
                    normal: {
                        show: true,
                        position: 'top',
                        color: '#424242',
                        fontSize: 12,
                        formatter: function(params) {
                            return formatThousand2(params.value);
                        }
                    }
                },
                data: jeSeriesData
            }],
    
        };
        /* 第二个图表的配置--销售量 --折线图 */
        var option2 = {
            color: ['#ffa801'],
            dataZoom: [{
                type: 'inside',
            }],
            tooltip: {
                trigger: 'axis',
                axisPointer: { // 坐标轴指示器,坐标轴触发有效
                    type: 'line' // 默认为直线,可选为:'line' | 'shadow'
                },
                   formatter:function(params){
                       var res = params[0].name;
                       for (var i = 0; i < params.length; i++) {
                           res += "<br>"+params[i].marker+params[i].seriesName+":"+formatThousand2(params[i].data);
                    }
                    return res;
                   }
            },
            grid: {
                top: '30',
                left: '1%',
                right: '1%',
                bottom: '1%',
                containLabel: true
            },
            xAxis: [{
                data: xAxisData,
                axisTick: {
                    show: false,
                },
                axisLabel: {
                    formatter: function(value) {
                        return textBr(value);
                    }
                }
    
            }],
            yAxis: [{
                type: 'value',
                axisTick: {
                    show: false,
                },
            }],
            series: [{
                name: '本月销售量',
                type: 'line',
                label: {
                    normal: {
                        show: true,
                        position: 'top',
                        color: '#424242',
                        fontSize: 12,
                        formatter: function(params) {
                            return formatThousand2(params.value);
                        }
                    },
                },
                clipOverflow: false,
                symbolSize: 10,
                data: ylSeriesData,
                areaStyle: {
                    color: {
                        type: 'linear',
                        x: 0,
                        y: 0,
                        x2: 0,
                        y2: 1,
                        colorStops: [{
                            offset: 0,
                            color: 'rgba(255,168,1,0.8)' // 0% 处的颜色
                        }, {
                            offset: 1,
                            color: 'rgba(255,168,1,0.2)' // 100% 处的颜色
                        }],
                    }
                }
            }]
        };
        /* 第三个图表的配置--加油笔数 --柱状图 */
        var option3 = {
            color: ['#64bf0f'],
            tooltip: {
                trigger: 'axis',
                axisPointer: { // 坐标轴指示器,坐标轴触发有效
                    type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
                },
                   formatter:function(params){
                       var res = params[0].name;
                       for (var i = 0; i < params.length; i++) {
                           res += "<br>"+params[i].marker+params[i].seriesName+":"+formatThousand(params[i].data);
                    }
                    return res;
                   }
            },
            dataZoom: [{
                type: 'inside',
            }],
            grid: {
                top: '30',
                left: '1%',
                right: '1%',
                bottom: '1%',
                containLabel: true,
            },
            xAxis: [{
                data: xAxisData,
                axisTick: {
                    show: false,
                },
                axisLabel: {
                    formatter: function(value) {
                        return textBr(value);
                    }
                }
            }],
            yAxis: [{
                type: 'value',
                axisTick: {
                    show: false,
                },
            }],
            series: [{
                name: '本月加油笔数',
                type: 'bar',
                barWidth: '26%',
                data: jybsSeriesData,
                itemStyle: {
                    barBorderRadius: [30, 30, 0, 0],
                },
                label: {
                    show: true,
                    position: 'top',
                    color: '#424242',
                    fontSize: 12,
                    formatter: function(params) {
                        return formatThousand(params.value);
                    }
                }
            }]
        };
        /* 第四个图表的配置--税额 --柱状图 */
        var option4 = {
            color: ['#ea3c33'],
            tooltip: {
                trigger: 'axis',
                axisPointer: { // 坐标轴指示器,坐标轴触发有效
                    type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
                },
                   formatter:function(params){
                       var res = params[0].name;
                       for (var i = 0; i < params.length; i++) {
                           res += "<br>"+params[i].marker+params[i].seriesName+":"+formatThousand2(params[i].data);
                    }
                    return res;
                   }
            },
            dataZoom: [{
                type: 'inside',
            }],
            grid: {
                top: '30',
                left: '1%',
                right: '1%',
                bottom: '1%',
                containLabel: true,
            },
            xAxis: [{
                data: xAxisData,
                axisTick: {
                    show: false,
                },
                axisLabel: {
                    formatter: function(value) {
                        return textBr(value);
                    }
                }
            }],
            yAxis: [{
                axisTick: {
                    show: false,
                },
            }],
            series: [{
                name: '本月销售额',
                type: 'bar',
                barWidth: '30%',
                label: {
                    normal: {
                        show: true,
                        position: 'top',
                        rotate: '20',
                        color: '#424242',
                        fontSize: 12,
                        formatter: function(params) {
                            return formatThousand2(params.value);
                        }
                    }
                },
                data: seSeriesData
            }]
        };
        
        myChart1 && myChart1.setOption(option1, true);
        myChart2 && myChart2.setOption(option2, true);
        myChart3 && myChart3.setOption(option3, true);
        myChart4 && myChart4.setOption(option4, true);
        
        /* 窗口自适应,关键代码 */
        window.onresize = function() {
            if ($('#echarts1').length > 0) {
                myChart1.resize();
            }
            if ($('#echarts2').length > 0) {
                myChart2.resize();
            }
            if ($('#echarts3').length > 0) {
                myChart3.resize();
            }
            if ($('#echarts4').length > 0) {
                myChart4.resize();
            }
        };
        
        // 解决tab切换不显示问题 在加载窗口后重新渲染。
        $('a[data-toggle="tab"]').on('shown.bs.tab', function(e) {
            if ($('#echarts1').length > 0) {
                myChart1.resize();
            }
            if ($('#echarts2').length > 0) {
                myChart2.resize();
            }
            if ($('#echarts3').length > 0) {
                myChart3.resize();
            }
            if ($('#echarts4').length > 0) {
                myChart4.resize();
            }
        });
    }
    
    function createCollectEcharts2(data){
        var color1 = "#EA1E1E";
        var color2 = "#ED8913";
        var color3 = "#57B115";
        var xAxisData = [];
        var seriesData = [];
        var series = [];
        
        for (var i = 0, size = data.dataList.length; i < size; i++) {
            xAxisData.push(data.dataList[i].sjjc);
        }
        
        for (var i = 0, size = data.dataList.length; i < size; i++) {
            if(i == 0){
                seriesData.push({
                    value : data.dataList[i].bq_zje,
                    itemStyle : {color: color1}
                });
            }else if(i == 1){
                seriesData.push({
                    value : data.dataList[i].bq_zje,
                    itemStyle : {color: color2}
                });
            }else if(i == 2){
                seriesData.push({
                    value : data.dataList[i].bq_zje,
                    itemStyle : {color: color3}
                });
            }else{
                seriesData.push(data.dataList[i].bq_zje);
            }
            
        }
        
        series.push(
            {
                name: '总销售额',
                type: 'bar',
                barWidth: '22%',
                label: {
                    normal: {
                        show: false,
                        position: 'top',
                        color: '#424242',
                        fontSize: 12,
                    }
                },
                data: seriesData
            }
        );
        
        
        // 指定图表的配置项和数据
        var textBr = function(value) {
            // debugger
            var ret = ""; // 拼接加
    返回的类目项
            var maxLength = 3; // 每项显示文字个数
            var valLength = value.length; // X轴类目项的文字个数
            var rowN = Math.ceil(valLength / maxLength); // 类目项需要换行的行数
            if (rowN > 1) // 如果类目项的文字大于3,
            {
                for (var i = 0; i < rowN; i++) {
                    var temp = ""; // 每次截取的字符串
                    var start = i * maxLength; // 开始截取的位置
                    var end = start + maxLength; // 结束截取的位置
                    // 这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧
                    temp = value.substring(start, end) + "
    ";
                    ret += temp; // 凭借最终的字符串
                }
                return ret;
            } else {
                return value;
            }
        }
        
        var myChart5;
        
        // 基于准备好的dom,初始化echarts实例
        if ($('#echarts5').length > 0) {
            myChart5 = echarts.init(document.getElementById('echarts5'));
        }
        
        /* 第5个图表的配置--top分析排名 --柱状图 */
        var option5 = {
            color: ['#01a1ff'],
            dataZoom: [{
                type: 'inside',
            }],
            tooltip: {
                trigger: 'axis',
                axisPointer: {
                    type: 'shadow'
                },
                   formatter:function(params){
                       var res = params[0].name;
                       for (var i = 0; i < params.length; i++) {
                           res += "<br>"+params[i].marker+params[i].seriesName+":"+formatThousand2(params[i].data);
                    }
                    return res;
                   }
            },
            grid: {
                top: '10',
                left: '1%',
                right: '1%',
                bottom: '20',
                containLabel: true,
            },
            xAxis: [{
                data: xAxisData,
                axisTick: {
                    show: false,
                },
                axisLabel: {
                    formatter: function(value) {
                        return textBr(value);
                    }
                }
            }],
            yAxis: [{
                type: 'value',
                axisTick: {
                    show: false,
                },
            }],
            series: series,
        };
        
        myChart5 && myChart5.setOption(option5, true);
        
        /* 窗口自适应,关键代码 */
        window.onresize = function() {
            if ($('#echarts5').length > 0) {
                myChart5.resize();
            }
        };
    }
    
    function createCollectEcharts3(data){
        var zgqb;
        var titleText;
        var zgqsSeriesdata = [];
        var jybsSeriesdata = [];
        if(null != data.total){
            zgqb = formatPercent2(data.total.zgqb);
            zgqsSeriesdata.push(data.total.zgqs);
            jybsSeriesdata.push(data.total.jybs);
        }
        titleText = "摘挂枪比:" + zgqb;
        
        
        // 散点图声明
        var baseNumber = 45000;
        var variableNumber = 0;
        
        var myChart6;
        
        if ($('#echarts6').length > 0) {
            myChart6 = echarts.init(document.getElementById('echarts6'));
        }
        
        /* 第6个图表的配置--摘挂枪分析 --单轴散点图 */
        var option6 = {
            title: {
                //text: '摘挂枪比:60.00%',
                text: titleText,
                left: 'center',
                bottom: '20',
                textStyle: {
                    fontSize: 13,
                    fontWeight: 'bold',
                    color: ['#ffb888'],
                    lineHeight: 12,
                },
            },
    
            legend: {
                data: ['摘挂枪数', '加油笔数']
            },
            singleAxis: {
                type: 'category',
                top: '70%',
                axisLine: {
                    show: false
                },
                axisTick: {
                    show: false
                }
            },
            tooltip: {
                trigger: 'item',
            },
            series: [{
                type: 'scatter',
                name: '摘挂枪数',
                coordinateSystem: 'singleAxis',
                //data: [300000],
                data: zgqsSeriesdata,
                symbolSize: function(value) {
                    variableNumber = value;
                    return Math.sqrt(baseNumber) * .8
                },
                symbolOffset: [0, '-50%'],
                itemStyle: {
                    opacity: 1,
                    color: '#ac90cc'
                },
                label: {
                    show: true,
                    position: ['38%', '7%'],
                    formatter: '{c}',
                    color: '#fff',
                    formatter: function(params) {
                        return formatThousand(params.value);
                    }
                }
            }, {
                type: 'scatter',
                name: '加油笔数',
                coordinateSystem: 'singleAxis',
                //data: [214400],
                data: jybsSeriesdata,
                symbolSize: function(value) {
                    if (value >= variableNumber)
                        return Math.sqrt(baseNumber) * .8
                    else
                        return Math.sqrt(value / variableNumber * baseNumber) * .8
                },
                symbolOffset: [0, '-50%'],
                itemStyle: {
                    opacity: 1,
                    color: '#ffb888'
                },
                label: {
                    show: true,
                    position: 'inside',
                    formatter: '{c}',
                    color: '#fff',
                    formatter: function(params) {
                        return formatThousand(params.value);
                    }
                }
            }]
        };
        
        myChart6 && myChart6.setOption(option6, true);
        
        /* 窗口自适应,关键代码 */
        window.onresize = function() {
            if ($('#echarts6').length > 0) {
                myChart6.resize();
            }
        };
    }

    2.之后将窗口自适应关键代码一起提到了最下边就好使了。代码如下:

    $(function() {
        // 加载金额、油量、加油笔数、税额
        $.ajax({
            type:"POST",
            url:"Index!getOneAndAll.action",
            data: {"sjkd" : 10 , "startTime" : HOMEDATEYM},
            dataType:"json",
            success: function(data){
                // 如果返回是json数据为null,则退出此方法
                if(null == data){
                    return;
                }
                if(null != data.total){
                    var je_total = formatThousand2(data.total.je);
                    var yl_total = formatThousand2(data.total.yl);
                    var jybs_total = formatThousand(data.total.jybs);
                    var se_total = formatThousand2(data.total.se);
                    je_total = je_total.replace(".","<span class='point'>.")+"</span>";
                    yl_total = yl_total.replace(".","<span class='point'>.")+"</span>";
                    se_total =  se_total.replace(".","<span class='point'>.")+"</span>";
                    $("#je_total").html(je_total);
                    $("#yl_total").html(yl_total);
                    $("#jybs_total").html (jybs_total);
                    $("#se_total").html(se_total);
                }else{
                    $("#je_total").html("0<span class='point'>.00</span>");
                    $("#yl_total").html("0<span class='point'>.00</span>");
                    $("#jybs_total").html("0");
                    $("#se_total").html("0<span class='point'>.00</span>");
                }
                createCollectEcharts1(data);
            },
            error:function(data){
                alert("获取首页数据失败!");
            }
        });
        
        // 加载Top10
        $.ajax({
            type:"POST",
            url:"Index!getTopBar.action",
            data: {"sjkd" : 10 , "startTime" : HOMEDATEYM , "topKj" : 10 , "topNum" : 10},
            dataType:"json",
            success: function(data){
                // 如果返回是json数据为null,则退出此方法
                if(null == data){
                    return;
                }
                createCollectEcharts2(data);
            },
            error:function(data){
                alert("获取首页数据失败!");
            }
        });
        
        // 加载摘挂枪分析
        $.ajax({
            type:"POST",
            url:"Index!getZgqfxScatter.action",
            data: {"sjkd" : 10 , "startTime" : HOMEDATEYM},
            dataType:"json",
            success: function(data){
                // 如果返回是json数据为null,则退出此方法
                if(null == data){
                    return;
                }
                createCollectEcharts3(data);
            },
            error:function(data){
                alert("获取首页数据失败!");
            }
        });
        
    });
    var myChart1, myChart2, myChart3, myChart4;
    function createCollectEcharts1(data){
        var xAxisData = [];
        var jeSeriesData = [];
        var ylSeriesData = [];
        var jybsSeriesData = [];
        var seSeriesData = [];
        
        for (var i = 0, size = data.dataList.length; i < size; i++) {
            xAxisData.push(data.dataList[i].sjjc);
            jeSeriesData.push(data.dataList[i].je);
            ylSeriesData.push(data.dataList[i].yl);
            jybsSeriesData.push(data.dataList[i].jybs);
            seSeriesData.push(data.dataList[i].se);
        }
        
        var data = ['中石油102', '大平五一路', '中通', '和源', '德月', '铭磊', '高桥', '大平汽贸城', '天盈', '宝光', '燕港', '顺达', '长城'];
        // 散点图声明
        var baseNumber = 45000;
        var variableNumber = 0;
        
        // 指定图表的配置项和数据
        var textBr = function(value) {
            // debugger
            var ret = ""; // 拼接加
    返回的类目项
            var maxLength = 3; // 每项显示文字个数
            var valLength = value.length; // X轴类目项的文字个数
            var rowN = Math.ceil(valLength / maxLength); // 类目项需要换行的行数
            if (rowN > 1) // 如果类目项的文字大于3,
            {
                for (var i = 0; i < rowN; i++) {
                    var temp = ""; // 每次截取的字符串
                    var start = i * maxLength; // 开始截取的位置
                    var end = start + maxLength; // 结束截取的位置
                    // 这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧
                    temp = value.substring(start, end) + "
    ";
                    ret += temp; // 凭借最终的字符串
                }
                return ret;
            } else {
                return value;
            }
        }
        
        
        // 基于准备好的dom,初始化echarts实例
        if ($('#echarts1').length > 0) {
            myChart1 = echarts.init(document.getElementById('echarts1'));
        }
        if ($('#echarts2').length > 0) {
            myChart2 = echarts.init(document.getElementById('echarts2'));
        }
        if ($('#echarts3').length > 0) {
            myChart3 = echarts.init(document.getElementById('echarts3'));
        }
        if ($('#echarts4').length > 0) {
            myChart4 = echarts.init(document.getElementById('echarts4'));
        }
        
        /* 第一个图表的配置--月销售额 --柱状图 */
        var option1 = {
            color: ['#01a1ff'],
            tooltip: {
                trigger: 'axis',
                axisPointer: { // 坐标轴指示器,坐标轴触发有效
                    type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
                },
                   formatter:function(params){
                       var res = params[0].name;
                       for (var i = 0; i < params.length; i++) {
                           res += "<br>"+params[i].marker+params[i].seriesName+":"+formatThousand2(params[i].data);
                    }
                    return res;
                   }
            },
            dataZoom: [{
                type: 'inside',
            }],
            grid: {
                top: '30',
                left: '1%',
                right: '1%',
                bottom: '1%',
                containLabel: true,
            },
            xAxis: [{
                data: xAxisData,
                axisTick: {
                    show: false,
                },
                axisLabel: {
                    formatter: function(value) {
                        return textBr(value);
                    }
                }
            }],
            yAxis: [{
                type: 'value',
                axisTick: {
                    show: false,
                },
            }],
            series: [{
                name: '本月销售额',
                type: 'bar',
                barWidth: '30%',
                label: {
                    normal: {
                        show: true,
                        position: 'top',
                        color: '#424242',
                        fontSize: 12,
                        formatter: function(params) {
                            return formatThousand2(params.value);
                        }
                    }
                },
                data: jeSeriesData
            }],
    
        };
        /* 第二个图表的配置--销售量 --折线图 */
        var option2 = {
            color: ['#ffa801'],
            dataZoom: [{
                type: 'inside',
            }],
            tooltip: {
                trigger: 'axis',
                axisPointer: { // 坐标轴指示器,坐标轴触发有效
                    type: 'line' // 默认为直线,可选为:'line' | 'shadow'
                },
                   formatter:function(params){
                       var res = params[0].name;
                       for (var i = 0; i < params.length; i++) {
                           res += "<br>"+params[i].marker+params[i].seriesName+":"+formatThousand2(params[i].data);
                    }
                    return res;
                   }
            },
            grid: {
                top: '30',
                left: '1%',
                right: '1%',
                bottom: '1%',
                containLabel: true
            },
            xAxis: [{
                data: xAxisData,
                axisTick: {
                    show: false,
                },
                axisLabel: {
                    formatter: function(value) {
                        return textBr(value);
                    }
                }
    
            }],
            yAxis: [{
                type: 'value',
                axisTick: {
                    show: false,
                },
            }],
            series: [{
                name: '本月销售量',
                type: 'line',
                label: {
                    normal: {
                        show: true,
                        position: 'top',
                        color: '#424242',
                        fontSize: 12,
                        formatter: function(params) {
                            return formatThousand2(params.value);
                        }
                    },
                },
                clipOverflow: false,
                symbolSize: 10,
                data: ylSeriesData,
                areaStyle: {
                    color: {
                        type: 'linear',
                        x: 0,
                        y: 0,
                        x2: 0,
                        y2: 1,
                        colorStops: [{
                            offset: 0,
                            color: 'rgba(255,168,1,0.8)' // 0% 处的颜色
                        }, {
                            offset: 1,
                            color: 'rgba(255,168,1,0.2)' // 100% 处的颜色
                        }],
                    }
                }
            }]
        };
        /* 第三个图表的配置--加油笔数 --柱状图 */
        var option3 = {
            color: ['#64bf0f'],
            tooltip: {
                trigger: 'axis',
                axisPointer: { // 坐标轴指示器,坐标轴触发有效
                    type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
                },
                   formatter:function(params){
                       var res = params[0].name;
                       for (var i = 0; i < params.length; i++) {
                           res += "<br>"+params[i].marker+params[i].seriesName+":"+formatThousand(params[i].data);
                    }
                    return res;
                   }
            },
            dataZoom: [{
                type: 'inside',
            }],
            grid: {
                top: '30',
                left: '1%',
                right: '1%',
                bottom: '1%',
                containLabel: true,
            },
            xAxis: [{
                data: xAxisData,
                axisTick: {
                    show: false,
                },
                axisLabel: {
                    formatter: function(value) {
                        return textBr(value);
                    }
                }
            }],
            yAxis: [{
                type: 'value',
                axisTick: {
                    show: false,
                },
            }],
            series: [{
                name: '本月加油笔数',
                type: 'bar',
                barWidth: '26%',
                data: jybsSeriesData,
                itemStyle: {
                    barBorderRadius: [30, 30, 0, 0],
                },
                label: {
                    show: true,
                    position: 'top',
                    color: '#424242',
                    fontSize: 12,
                    formatter: function(params) {
                        return formatThousand(params.value);
                    }
                }
            }]
        };
        /* 第四个图表的配置--税额 --柱状图 */
        var option4 = {
            color: ['#ea3c33'],
            tooltip: {
                trigger: 'axis',
                axisPointer: { // 坐标轴指示器,坐标轴触发有效
                    type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
                },
                   formatter:function(params){
                       var res = params[0].name;
                       for (var i = 0; i < params.length; i++) {
                           res += "<br>"+params[i].marker+params[i].seriesName+":"+formatThousand2(params[i].data);
                    }
                    return res;
                   }
            },
            dataZoom: [{
                type: 'inside',
            }],
            grid: {
                top: '30',
                left: '1%',
                right: '1%',
                bottom: '1%',
                containLabel: true,
            },
            xAxis: [{
                data: xAxisData,
                axisTick: {
                    show: false,
                },
                axisLabel: {
                    formatter: function(value) {
                        return textBr(value);
                    }
                }
            }],
            yAxis: [{
                axisTick: {
                    show: false,
                },
            }],
            series: [{
                name: '本月销售额',
                type: 'bar',
                barWidth: '30%',
                label: {
                    normal: {
                        show: true,
                        position: 'top',
                        rotate: '20',
                        color: '#424242',
                        fontSize: 12,
                        formatter: function(params) {
                            return formatThousand2(params.value);
                        }
                    }
                },
                data: seSeriesData
            }]
        };
        
        myChart1 && myChart1.setOption(option1, true);
        myChart2 && myChart2.setOption(option2, true);
        myChart3 && myChart3.setOption(option3, true);
        myChart4 && myChart4.setOption(option4, true);
        
        
        
        // 解决tab切换不显示问题 在加载窗口后重新渲染。
        $('a[data-toggle="tab"]').on('shown.bs.tab', function(e) {
            if ($('#echarts1').length > 0) {
                myChart1.resize();
            }
            if ($('#echarts2').length > 0) {
                myChart2.resize();
            }
            if ($('#echarts3').length > 0) {
                myChart3.resize();
            }
            if ($('#echarts4').length > 0) {
                myChart4.resize();
            }
        });
    }
    var myChart5;
    function createCollectEcharts2(data){
        var color1 = "#EA1E1E";
        var color2 = "#ED8913";
        var color3 = "#57B115";
        var xAxisData = [];
        var seriesData = [];
        var series = [];
        
        for (var i = 0, size = data.dataList.length; i < size; i++) {
            xAxisData.push(data.dataList[i].sjjc);
        }
        
        for (var i = 0, size = data.dataList.length; i < size; i++) {
            if(i == 0){
                seriesData.push({
                    value : data.dataList[i].bq_zje,
                    itemStyle : {color: color1}
                });
            }else if(i == 1){
                seriesData.push({
                    value : data.dataList[i].bq_zje,
                    itemStyle : {color: color2}
                });
            }else if(i == 2){
                seriesData.push({
                    value : data.dataList[i].bq_zje,
                    itemStyle : {color: color3}
                });
            }else{
                seriesData.push(data.dataList[i].bq_zje);
            }
            
        }
        
        series.push(
            {
                name: '总销售额',
                type: 'bar',
                barWidth: '36%',
                label: {
                    normal: {
                        show: false,
                        position: 'top',
                        color: '#424242',
                        fontSize: 12,
                    }
                },
                data: seriesData
            }
        );
        
        
        // 指定图表的配置项和数据
        var textBr = function(value) {
            // debugger
            var ret = ""; // 拼接加
    返回的类目项
            var maxLength = 3; // 每项显示文字个数
            var valLength = value.length; // X轴类目项的文字个数
            var rowN = Math.ceil(valLength / maxLength); // 类目项需要换行的行数
            if (rowN > 1) // 如果类目项的文字大于3,
            {
                for (var i = 0; i < rowN; i++) {
                    var temp = ""; // 每次截取的字符串
                    var start = i * maxLength; // 开始截取的位置
                    var end = start + maxLength; // 结束截取的位置
                    // 这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧
                    temp = value.substring(start, end) + "
    ";
                    ret += temp; // 凭借最终的字符串
                }
                return ret;
            } else {
                return value;
            }
        }
        
    
        
        // 基于准备好的dom,初始化echarts实例
        if ($('#echarts5').length > 0) {
            myChart5 = echarts.init(document.getElementById('echarts5'));
        }
        
        /* 第5个图表的配置--top分析排名 --柱状图 */
        var option5 = {
            color: ['#01a1ff'],
            dataZoom: [{
                type: 'inside',
            }],
            tooltip: {
                trigger: 'axis',
                axisPointer: {
                    type: 'shadow'
                },
                   formatter:function(params){
                       var res = params[0].name;
                       for (var i = 0; i < params.length; i++) {
                           res += "<br>"+params[i].marker+params[i].seriesName+":"+formatThousand2(params[i].value);
                    }
                    return res;
                   }
            },
            grid: {
                top: '10',
                left: '1%',
                right: '1%',
                bottom: '20',
                containLabel: true,
            },
            xAxis: [{
                data: xAxisData,
                axisTick: {
                    show: false,
                },
                axisLabel: {
                    formatter: function(value) {
                        return textBr(value);
                    }
                }
            }],
            yAxis: [{
                type: 'value',
                axisTick: {
                    show: false,
                },
            }],
            series: series,
        };
        
        myChart5 && myChart5.setOption(option5, true);
    }
    var myChart6;
    function createCollectEcharts3(data){
        var zgqb;
        var titleText;
        var zgqsSeriesdata = [];
        var jybsSeriesdata = [];
        if(null != data.total){
            zgqb = formatPercent2(data.total.zgqb);
            zgqsSeriesdata.push(data.total.zgqs);
            jybsSeriesdata.push(data.total.jybs);
        }
        titleText = "摘挂枪比:" + zgqb;
        
        
        // 散点图声明
        var baseNumber = 45000;
        var variableNumber = 0;
        
        if ($('#echarts6').length > 0) {
            myChart6 = echarts.init(document.getElementById('echarts6'));
        }
        
        /* 第6个图表的配置--摘挂枪分析 --单轴散点图 */
        var option6 = {
            title: {
                //text: '摘挂枪比:60.00%',
                text: titleText,
                left: 'center',
                bottom: '20',
                textStyle: {
                    fontSize: 13,
                    fontWeight: 'bold',
                    color: ['#ffb888'],
                    lineHeight: 12,
                },
            },
    
            legend: {
                data: ['摘挂枪数', '加油笔数']
            },
            singleAxis: {
                type: 'category',
                top: '70%',
                axisLine: {
                    show: false
                },
                axisTick: {
                    show: false
                }
            },
            tooltip: {
                trigger: 'item',
            },
            series: [{
                type: 'scatter',
                name: '摘挂枪数',
                coordinateSystem: 'singleAxis',
                //data: [300000],
                data: zgqsSeriesdata,
                symbolSize: function(value) {
                    variableNumber = value;
                    return Math.sqrt(baseNumber) * .8
                },
                symbolOffset: [0, '-50%'],
                itemStyle: {
                    opacity: 1,
                    color: '#ac90cc'
                },
                label: {
                    show: true,
                    position: ['38%', '7%'],
                    formatter: '{c}',
                    color: '#fff',
                    formatter: function(params) {
                        return formatThousand(params.value);
                    }
                }
            }, {
                type: 'scatter',
                name: '加油笔数',
                coordinateSystem: 'singleAxis',
                //data: [214400],
                data: jybsSeriesdata,
                symbolSize: function(value) {
                    if (value >= variableNumber)
                        return Math.sqrt(baseNumber) * .8
                    else
                        return Math.sqrt(value / variableNumber * baseNumber) * .8
                },
                symbolOffset: [0, '-50%'],
                itemStyle: {
                    opacity: 1,
                    color: '#ffb888'
                },
                label: {
                    show: true,
                    position: 'inside',
                    formatter: '{c}',
                    color: '#fff',
                    formatter: function(params) {
                        return formatThousand(params.value);
                    }
                }
            }]
        };
        myChart6 && myChart6.setOption(option6, true);
    }
    /* 窗口自适应,关键代码 */
    window.onresize = function() {
        if ($('#echarts1').length > 0) {
            myChart1.resize();
        }
        if ($('#echarts2').length > 0) {
            myChart2.resize();
        }
        if ($('#echarts3').length > 0) {
            myChart3.resize();
        }
        if ($('#echarts4').length > 0) {
            myChart4.resize();
        }
        if ($('#echarts5').length > 0) {
            myChart5.resize();
        }
        if ($('#echarts6').length > 0) {
            myChart6.resize();
        }
    };
  • 相关阅读:
    SQL 数据开发(经典)转贴
    2018学习计划 借鉴
    SQL数据库索引理解与应用【转贴--收藏】
    学生成绩信息表
    网址收录
    导出word文档 通过DocX组件
    Aspose.word
    C#编码规范
    远程连接ORACLE服务
    Request.Form()的使用
  • 原文地址:https://www.cnblogs.com/chuanqi1995/p/11543765.html
Copyright © 2020-2023  润新知