echarts线柱图

<script type="text/javascript" src="${ctx}/assets/javascripts/libs/echarts/esl.js"></script> //引入所需js
<script type="text/javascript" src="${ctx}/assets/javascripts/libs/echarts/echarts.js"></script> //引入所需js
<script>
var myChart;
require(
    [
  'echarts',
  'echarts/chart/bar',//柱图
  'echarts/chart/line'//线图
    ],
    function (ec) {
        myChart = ec.init(document.getElementById("sales-chart"));  //sales-chart为容器
    }
 
);
</script>

 

<script>
    seajs.use(['appc/policy/analysis/model-promotion-analysis'], function(controller) {

    	var lineChart;
    	var lineJsonData;
    	
        /*
         * @description 渲染折线图
         * @json {object} 图表数据
         */
        window.renderLineChart = function(json) {
			var tooltip = {trigger: 'axis'}
			console.log(JSON.stringify(json));
			if(json && json.yAxis){
				if($('#compareType').store().value != 2){
            		if($('#compareCarModel').store().value.length == 0){
            			json.yAxis[0].axisLabel = {margin:30,formatter:function(v1,v2,v3){return formatComma(v1);}};
            		}
            	}else{
            		if($('#compareCarModel').store().value.length == 0){
            			json.yAxis[0].axisLabel = {margin:30};
            		}
            		//折扣率的时候给数值加上"%"
            		tooltip = {trigger: 'axis',
            	 		   formatter: function(params) {
            	 				var v1 = params[0][2].replace("NaN","");
            	 				var v2 = params[1][2].replace("NaN","");
								var v3 = params[2][2].replace("NaN","");
								if(v1 && "-" != v1) v1 = formatComma(v1);
								if(v2 && "-" != v2) v2 = formatComma(v2);
								if(v3 && "-" != v3) v3 += "%";
								return params[0][1] + "<br/>" + params[0][0] + ":" + v1 + "<br/>" + params[1][0] + ":" + v2 + "<br/>" + params[2][0] + ":" + v3;
							}
						}
            	}
			}
			
            if($('#compareCarModel').store().value.length == 0 && json.series){
            	//非对比车型时
            	json.yAxis[1].axisLabel = {show:false};
            	json.series[0].itemStyle.normal.label.formatter = function(v1,v2,v3) {if(v3 > 0 || v3 <0){return formatComma(v3);}else{return '';}};
            	json.series[1].itemStyle.normal.label.formatter = function(v1,v2,v3) {if(v3 > 0 || v3 <0){return formatComma(v3);}else{return '';}};
				json.series[2].itemStyle.normal.label.formatter = function(v1,v2,v3){if(v3 > 0 || v3 <0){return formatComma(v3);}else{return '';}};
				json.series[3].itemStyle.normal.label.formatter = function(v1,v2,v3){if(v3 > 0 || v3 <0){return formatComma(v3);}else{return '';}};
        
            	json.series[0].itemStyle.normal.label.position = "top"
            	json.series[1].itemStyle.normal.label.position = "top"
            	json.series[2].itemStyle.normal.label.position = "bottom"
           		json.series[3].itemStyle.normal.label.position = "top"
            }
            
            if(json && json.series){
				for(var j=0; j<json.series.length; j++){
		           	if(json.series[j].isShow){
		           		json.series[j].itemStyle.normal.label.show = true;
		           	}
				}
	        }
            var x1 = 100;
            var leg = "bottom";
            var categorys = json.category;
            var boundary = false;
            var grids = new Object();
            grids["x"] = x1;
            grids["y"] = 25;grids["y2"] = 60;
            //alert(JSON.stringify(categorys));
            if($('#compareCarModel').store().value.length > 0){
		    	x1=25;leg="bottom";
		    	for(var j=0; j<json.series.length; j++){
	           		json.series[j].itemStyle.normal.label.formatter = function(v1,v2,v3) {if(v3 > 0 || v3 <0){return formatComma(v3);}else{return '';}};
				}
		    	var values;
		    	//重新set category,车型名称换行
		    	for(var y=0; y<categorys.length; y++){
		    		values = categorys[y].toString().split(",");
		    		if(values.length > 0){
		    			categorys[y] = values[1];
		    		}
		    	}
		    	boundary = true;
		    	grids = new Object();
	            grids["x"] = x1;grids["x2"] = 30;
	            grids["y"] = 25;grids["y2"] = 60;
		    }
            var option = {
        		    tooltip : tooltip,
        		    legend: {
        		    	x:'center',
        		    	y:leg,
        		        data : json.lengend,
        		        textStyle: {fontFamily:"微软雅黑"}
        		    },
        		    xAxis : [
        		        {
        		            type : 'category',
        		            data : categorys,
        		            boundaryGap: boundary,
        		            scale: true,
        		            splitLine: {show:true,lineStyle:{color:'#F0F0F0'}},
    						axisTick: {lineStyle:{color:'#F0F0F0'}},
    						axisLine: {lineStyle:{color:'#F0F0F0'}},
    						axisLabel : {
   								textStyle:{fontFamily:"微软雅黑"}
   							}
        		        }
        		    ],
        		    yAxis : json.yAxis,
        		    series : json.series,
        		    grid:grids
        		};

            	                    
        	myChart.clear();
			myChart.setOption(option);
			console.log(JSON.stringify(option));
        	
        	//数据标签使用
	  		lineJsonData = option;
	  		if($('#compareCarModel').store().value.length == 0){
	  			$('#datalabel').show();
	  			setSelectMenu(json.selectMenuDatas);
	  		}else{
	  			$('#datalabel').hide();
	  		}
        }
        
        /**
         * 设置折线图线条数值显示
         */
         $(document).on('change', '#datalabel', function(event, selectData){ 
         	
 	    	var chartJosn = setShowValue(lineJsonData,selectData);
    		myChart.clear();
  			myChart.setOption(chartJosn);
     	});

     	function setSelectMenu(jsonData){
     		var	defaultItem = jsonData[0];
     		for(var y=0;y<jsonData.length;y++){
     			var compare = jsonData[y].id;
     			if(compare == "TP"){
     				defaultItem = jsonData[y];
     				break;
     			}
     		}
     		
   			//defaultItem = jsonData[0].id+","+jsonData[2].id;
 	    	var data={
 	            // id与className可选
 	            //id: '',
 	            className: 'fr',
 	            // 提交到后台的名称
 	            store: 'datalabel',
 	            //是否支持多选
 	            multiSelect: !0, 
 	            //默认选中项
 	            defaultItem: defaultItem,
 	            //渲染方式, 支持replace, append, after, before, html
 	            type: 'replace',
 	            //数据
 	            data: jsonData
 	        };
 	        if(jsonData.length > 0){
 	        	$('#datalabel').waysDropdownToggle(data);
 	 	    }
     	}
         
         //折线图自适应宽度
         $(function() {
         	$('#btn-zoom-main').click(function() {
         		setTimeout(function() {
         			myChart.resize();
         		}, 0);
         		
         	});
         });
    });   
</script>



 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值