echarts报表
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html style="height: 100%">
   <head>
       <meta charset="utf-8">
       <script type="text/javascript" src="./js/jquery.js"></script>
       <script type="text/javascript" src="./js/echarts.min.js"></script>
   </head>
   <body style="height: 100%; margin: 0">
       <div id="container" style="height: 100%"></div>
       <script type="text/javascript">
var dom = document.getElementById("container");
var myChart = echarts.init(dom);
var app = {};
option = null;
var employees = [
	{ "hour":"1" , "value":"220" },
	{ "hour":"2" , "value":"182" },
	{ "hour":"3" , "value":"191" },
	{ "hour":"4" , "value":"234" },
	{ "hour":"5" , "value":"290" },
	{ "hour":"6" , "value":"330" },
	{ "hour":"7" , "value":"310" },
	{ "hour":"8" , "value":"123" },
	{ "hour":"9" , "value":"442" },
	{ "hour":"10" , "value":"321" },
	{ "hour":"11" , "value":"90" },
	{ "hour":"12" , "value": "149" }
	];
var dataAxis = [];
var yMax = 500;
var dataShadow = [];
for (var i = 0; i < employees.length; i++) {
    dataShadow.push(yMax);
    dataAxis.push(employees[i].hour+":00");
}
option = {
    title: {
        text: '带伸缩的柱状和折线混合图',
        subtext: '学习用'
    },
    tooltip : {
        trigger: 'axis',
        axisPointer: {//标尺线
            type: 'cross',//也可以是shadow和line
            label: {
                backgroundColor: '#283b56'
            }
        },
        formatter: function (params) {
            var tar;
            if (params[1].value != '-') {
                tar = params[1];
            }
            else {
                tar = params[0];
            }
            return '申请数量 : ' + tar.value;
        }
    },
    xAxis: {
        data: dataAxis
    },
    yAxis: {
        axisLine: {
            show: false//显示数据,但不显示竖线
        },
        axisTick: {
            show: false//显示数据,但不显示竖线
        },
        axisLabel: {
            textStyle: {
                color: '#999'
            }
        }
    },
    dataZoom: [
        {
            type: 'inside'
        }
    ],
    series: [
        { // For shadow
            type: 'bar',//隐形的柱形图
            itemStyle: {
                normal: {color: 'rgba(0,0,0,0.05)'}
            },
            barGap:'-100%',
            barCategoryGap:'40%',
            data: dataShadow,
            animation: false
        },
        {
            type: 'bar',//显示的柱形图
            itemStyle: {
                normal: {
                    color: new echarts.graphic.LinearGradient(
                        0, 0, 0, 1,
                        [
                            {offset: 0, color: '#83bff6'},
                            {offset: 0.5, color: '#188df0'},
                            {offset: 1, color: '#188df0'}
                        ]
                    ),
                    label: {//信息显示方式
                        show: true,
                        position: 'top',
                        formatter: '{b}申请数量:{c}'
                    }
                },
                emphasis: {
                    color: new echarts.graphic.LinearGradient(
                        0, 0, 0, 1,
                        [
                            {offset: 0, color: '#2378f7'},
                            {offset: 0.7, color: '#2378f7'},
                            {offset: 1, color: '#83bff6'}
                        ]
                    )
                }
            },
            data: functionName(employees)
        },
        {
            name:'折线',
            type:'line',
            itemStyle : {  /*设置折线颜色*/
                normal : {
                   /* color:'#c4cddc'*/
                }
            },
            data:functionName(employees)
        }
    ]
};
// Enable data zoom when user click bar.
var zoomSize = 6;
myChart.on('click', function (params) {
    console.log(dataAxis[Math.max(params.dataIndex - zoomSize / 2, 0)]);
    myChart.dispatchAction({
        type: 'dataZoom',
        startValue: dataAxis[Math.max(params.dataIndex - zoomSize / 2, 0)],
        endValue: dataAxis[Math.min(params.dataIndex + zoomSize / 2, functionName(employees) - 1)]
    });
});;
if (option && typeof option === "object") {
    myChart.setOption(option, true);
}
function functionName(param){
//在这里可以通过ajax动态请求后台数据并填充到employees数组中,ajax最后设置async:false,不然就不是动态请求了
$.ajax({
type:"post",
async:false,
url:url,
data:{},
dataType:"text",
success:function(json){
var array = new Array(eval("(")+json+")")[0];
for(var i=0,len=array.length;i<len;i++){
employees[i].value=array[i]["key"];
}
},
error(XMLHttpRequest,errorThrown,status){
alert("解析报错:"+XMLHttpRequest.responseText);
}
});
    var serie = [];
    for(var i = 0; i < param.length; i++){
        var item = {
        	name:param[i].name,
            value:param[i].value
        };
        serie.push(item );
    };
	return serie;
}
       </script>
   </body>
</html>
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号