echarts开发

1 篇文章 0 订阅

页面包含多个echarts,初始化页面是计算页面展示echarts个数及页面高度,赋予各echarts块的高度,保持各echarts高度一致。

//获取页面的高度并赋值给个table及下属的元素,避免出现echarts高度不一致的问题
function initHeight(){
	//设定每一个的echarts的高度为252
	var   initEcharts=252;
	//获取页面的总高度
	var winHeight=$(window).height();
	//获取页面查询的高度
	var  queryTabHeight=$("#queryTab").height();
	// echarts内容区总大小 3个区域总大小
	var AllTabHeight=winHeight-queryTabHeight;
	//每一个echarts高度
	var nrTabHeight=AllTabHeight/3*0.86;
	if(nrTabHeight<initEcharts){
		nrTabHeight=initEcharts;
	}
	//每一个echarts主题的高度
	var  titleTabHeight=nrTabHeight/0.86*0.14;
	$("#rklsdjzb").height(nrTabHeight);
	$("#rklsdjzbTitle").height(titleTabHeight);
	$("#lssgkdpm").height(nrTabHeight);
	$("#lssgkdpmTitle").height(titleTabHeight);
	$("#lssgdhpm").height(nrTabHeight);
	$("#lssgdhpmTitle").height(titleTabHeight);
	$("#lsrkslqs").height(nrTabHeight);
	$("#lsrkslqsTitle").height(titleTabHeight);
	$("#jsjeqkqs").height(nrTabHeight);
	$("#jsjeqkqsTitle").height(titleTabHeight);
	$("#lsrkqktb").height(nrTabHeight);
	$("#lsrkqktbTitle").height(titleTabHeight);
	//收购数量
	$("#sgslDiv").height(nrTabHeight/0.86*0.46);
	//收购车数
	$("#sgcsDiv").height(nrTabHeight/0.86*0.46);
	//正在进行收购的收购点
	$("#zzjxsgsgdDiv").height(nrTabHeight/0.86*0.46);
	//结算情况汇总
	$("#jsqkhzDiv").height($("#lssgkdqsDiv").height());
}

 

//粮食入库情况同比
function queryLsrkqktb(){
	//清空div数据
    document.getElementById("lsrkqktb").innerHTML = "";
	//刷新图表
    var myChart = echarts.init(document.getElementById("lsrkqktb"));
    var option = {
	    tooltip: {
	        trigger: 'axis',
	        formatter: '{a0}:{c0}吨</br>{a1}:{c1}吨</br>{a2}:{c2}%</br>{a3}:{c3}%'
	    },
	    toolbox: {
	        feature: {
	            dataView: {show: false, readOnly: false},
	            magicType: {show: false, type: ['line', 'bar']},
	            restore: {show: false},
	            saveAsImage: {show: false}
	        }
	    },
	    legend: {
	        data: ['去年', '今年', '同比增长率','环比增长率']
	    },
	    xAxis: [
	        {
	            type: 'category',
	            data: [],
	            axisPointer: {
	                type: 'shadow'
	            },
	            axisLabel: {interval:0,rotate:40}
	            
	        }
	    ],
	    yAxis: [
	        {
	            type: 'value',
	            name: '吨',
	            axisLabel: {
	                formatter: '{value} ',
	                show: false
	            },
	            position: 'left',
	            axisTick:{
		             show:false
		        }
	        },
	        {
	            type: 'value',
	            name: '',
	            axisLabel: {
	                formatter: '{value} %',
	                show: false 
	            },
	            position: 'right',
	            axisTick:{
		             show:false,
		        }
	        }
	    ],
	    series: [
	        {
	            name: '去年',
	            type: 'bar',
	            yAxisIndex: 0,
	            itemStyle: {
	                    normal: {
	                        color:'#12B6B0'
	                    }
	          		},
	            data: []
	        },
	        {
	            name: '今年',
	            type: 'bar',
	            yAxisIndex: 0,
	            itemStyle: {
	                    normal: {
	                        color:'#6EB74B'
	                    }
	          		},
	            data: []
	        },
	        {
	            name: '同比增长率',
	            type: 'line',
	            yAxisIndex: 1,
	            itemStyle: {
	                    normal: {
	                        color:'#F39900'
	                    }
	          		},
	            data: []
	        },
	        {
	            name: '环比增长率',
	            type: 'line',
	            yAxisIndex: 1,
	            itemStyle: {
                 	normal: {
	                        color:'#B668D0'
	                }
	          	},
	            data: []
	        }
	    ]
    };
    myChart.setOption(option,true);
	echartsLoading(myChart);
	//获取查询条件
    var  cxtj=getCxtj();
	//ajax请求
	$.ajax({
	    url:"rkqkfx.cmd?method=queryLsrkqktb",
	    data:cxtj,
	    type:'post',
		async:true,
		success:function(data){
		    option.yAxis[0].axisLabel.show=true;
			option.yAxis[1].axisLabel.show=true;
			myChart.hideLoading();
		    if(data!=null&&data!=""){
		        var dataJson = $.parseJSON(data);
		        //当前月的数据
		        var dnyDataList=dataJson.dnyDataList;
		        //去年月的数据
		        var qnyDataList=dataJson.qnyDataList;
		        //同比增长
		        var tbzzDataList=dataJson.tbzzDataList;
		        //环比增长
		        var hbzzDataList=dataJson.hbzzDataList;
		        //x轴赋值年月
		        var xzNyList =dataJson.xzNyList;
		        //获取数量的最大值
		        var slMax=dataJson.slMax;
		        //获取数量的最小值
		        var slMin=dataJson.slMin;
		        //获取数量的区间值
		        var slInteval=dataJson.slInteval;
		        //获取百分比的最小值
		        var bfbMin=dataJson.bfbMin;
		        //获取百分比的最大值
		        var bfbMax=dataJson.bfbMax;
		        //获取百分比的区间值
		        var bfbInteval=dataJson.bfbInteval;
		        //去年月赋值
		        option.series[0].data=qnyDataList;
		        //今年月赋值
		        option.series[1].data=dnyDataList;
		        //同比增长赋值
		        option.series[2].data=tbzzDataList;
		        //环比增长赋值
		        option.series[3].data=hbzzDataList;
		        //x轴当前年月赋值
		        option.xAxis[0].data=xzNyList;
		        //数量的最大值最小值赋值
		        option.yAxis[0].max=slMax;
				option.yAxis[0].min=slMin;
				option.yAxis[0].interval=parseInt(slInteval);
				// option.yAxis[0].splitNumber=5;
				//百分比最大值最小值赋值
		        option.yAxis[1].max=bfbMax;
				option.yAxis[1].min=bfbMin;
				option.yAxis[1].interval=parseInt(bfbInteval);
				//option.yAxis[1].splitNumber=5;
		        myChart.clear();
		        myChart.setOption(option,true);
		    }
	    }
    });
    charts.push(myChart);
}

 

  • 添加echarts加载中效果

//echarts 显示loading中
function  echartsLoading(myChart){
      myChart.showLoading();
 }

 

 

  • echarts的图表自适应问题,resize.

echarts本身是提供了一个resize的函数的,不过需要在容器大小发生改变时需要手动调用。

于是当浏览器发生resize事件的时候,让其触发echart的resize事件,重绘canvas。

window.onresize = function(){
    for(var i = 0; i < charts.length; i++){
        charts[i].resize();
    }
};

 

  • echarts图标上添加点击事件。例如,柱状图点击后显示明细信息
      //控制点击事件
      myChart.on('click', function (params) {
    	     if(dataList!=null && dataList.length>0){
    	        // 控制台打印数据的名称
    		    var  queryIndex=params.dataIndex;
    	        var queryKhsfzh=dataList[queryIndex].KHSFZH;
    	        var  queryParam=cxtj+"&sfzh="+queryKhsfzh;
    	        //查询的具体的数据的时候还得加上getCxtj 查询条件
    	        modalShow(queryParam);
    	     }
      });

     

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值