|  | @ -0,0 +1,159 @@
 | 
	
		
			
				|  |  | (function(){
 | 
	
		
			
				|  |  |     Vue.component('line-chart',{
 | 
	
		
			
				|  |  |         template: '<div class="mtb10 bgc-fff c-border pb10">\
 | 
	
		
			
				|  |  |             <div class="ui-grid ui-grid-middle plr10 c-border-b">\
 | 
	
		
			
				|  |  |                 <div class="ui-col-0">\
 | 
	
		
			
				|  |  |                     <span class="c-333 c-bold c-f14">{{panelName}}</span>\
 | 
	
		
			
				|  |  |                 </div>\
 | 
	
		
			
				|  |  |                 <div class="ui-col-1 c-t-right ptb5">\
 | 
	
		
			
				|  |  |                     <span class="date-tag" :class="{active: selectedDateType == 1}" data-type="1" @click="changeType(1)">日</span><!--\
 | 
	
		
			
				|  |  |                     --><span class="date-tag" :class="{active: selectedDateType == 2}" data-type="2" @click="changeType(2)">周</span><!--\
 | 
	
		
			
				|  |  |                     --><span class="date-tag" :class="{active: selectedDateType == 3}" data-type="3" @click="changeType(3)">月</span>\
 | 
	
		
			
				|  |  |                 </div>\
 | 
	
		
			
				|  |  |             </div>\
 | 
	
		
			
				|  |  |             <div class="clearfix mt5 plr10">\
 | 
	
		
			
				|  |  |                 <div class="fl c-f12 c-909090"><span>{{startDate}}</span> ~ <span>{{endDate}}</span>数据</div>\
 | 
	
		
			
				|  |  |                 <div class="fr c-f12 c-909090">单位:人</div>\
 | 
	
		
			
				|  |  |             </div>\
 | 
	
		
			
				|  |  |             <div class="line-chart" id="lineChart" style="height: 200px; width: 100%;"></div>\
 | 
	
		
			
				|  |  |         </div>',
 | 
	
		
			
				|  |  |         props:[],
 | 
	
		
			
				|  |  |         data: function(){
 | 
	
		
			
				|  |  |             return {
 | 
	
		
			
				|  |  |                 selectedDateType: 1,
 | 
	
		
			
				|  |  |                 startDate: "", //数据展示时显示的开始时间
 | 
	
		
			
				|  |  |                 endDate: "", //数据展示时显示的结束时间
 | 
	
		
			
				|  |  |                 panelName: ""
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         },
 | 
	
		
			
				|  |  |         methods: {
 | 
	
		
			
				|  |  |             changeType: function(type){
 | 
	
		
			
				|  |  |                 this.selectedDateType = type;
 | 
	
		
			
				|  |  |                 //触发页面更新折线图的数据
 | 
	
		
			
				|  |  |                 EventBus.$emit("get-line-chart-data", {dateType: type});
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         },
 | 
	
		
			
				|  |  |         mounted: function(){
 | 
	
		
			
				|  |  |             var vm = this;
 | 
	
		
			
				|  |  |             EventBus.$on("draw-line-chart", function(arg){
 | 
	
		
			
				|  |  |                 vm.panelName = arg.panelName;
 | 
	
		
			
				|  |  |                 drawLine(vm, arg);
 | 
	
		
			
				|  |  |             })
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     });
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |     function drawLine(vm, arg){
 | 
	
		
			
				|  |  |         var lineCharts = echarts.init(document.getElementById('lineChart'));
 | 
	
		
			
				|  |  |         var xData = arg.xData,
 | 
	
		
			
				|  |  |             yDatas = arg.yDatas,
 | 
	
		
			
				|  |  |             names = arg.quotaNames,
 | 
	
		
			
				|  |  |             colors = arg.colors;
 | 
	
		
			
				|  |  |         //处理数据, 数据按照10条数一屏展示
 | 
	
		
			
				|  |  |         var lastIndex = xData.length % 10;
 | 
	
		
			
				|  |  |         if(xData.length >10 ){  
 | 
	
		
			
				|  |  |             dataZoom_end = 100-(9/xData.length)*100;  
 | 
	
		
			
				|  |  |         }else{  
 | 
	
		
			
				|  |  |             dataZoom_end = 0;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //初始结束时间
 | 
	
		
			
				|  |  |         var lastValue = xData[xData.length - 1];
 | 
	
		
			
				|  |  |         if(vm.selectedDateType == 1 || vm.selectedDateType == 2){
 | 
	
		
			
				|  |  |             vm.endDate = lastValue;
 | 
	
		
			
				|  |  |         }else if(vm.selectedDateType == 3){
 | 
	
		
			
				|  |  |             var val = lastValue.substr(5,2)+"月"
 | 
	
		
			
				|  |  |             vm.endDate = lastValue.substr(0,4)+"年"+val;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         console.log(lastValue);
 | 
	
		
			
				|  |  |         var options = {
 | 
	
		
			
				|  |  |             tooltip: {
 | 
	
		
			
				|  |  |                 trigger: 'axis'
 | 
	
		
			
				|  |  |             },
 | 
	
		
			
				|  |  |             color: colors,
 | 
	
		
			
				|  |  |             legend: {
 | 
	
		
			
				|  |  |                 bottom: '0px',
 | 
	
		
			
				|  |  |                 data: name,
 | 
	
		
			
				|  |  |                 borderColor: "#f1f1f1"
 | 
	
		
			
				|  |  |             },
 | 
	
		
			
				|  |  |             grid: {
 | 
	
		
			
				|  |  |                 show: false,
 | 
	
		
			
				|  |  |                 left: '20px',
 | 
	
		
			
				|  |  |                 right: '20px',
 | 
	
		
			
				|  |  |                 bottom: '40px',
 | 
	
		
			
				|  |  |                 top: '20px',
 | 
	
		
			
				|  |  |                 containLabel: true
 | 
	
		
			
				|  |  |             },
 | 
	
		
			
				|  |  |             xAxis: {
 | 
	
		
			
				|  |  |                 type: 'category',
 | 
	
		
			
				|  |  |                 boundaryGap: false,
 | 
	
		
			
				|  |  |                 data: xData,
 | 
	
		
			
				|  |  |                 axisLabel: {
 | 
	
		
			
				|  |  |                     interval:0,//横轴信息全部显示  
 | 
	
		
			
				|  |  |                     formatter: function (value, index) {
 | 
	
		
			
				|  |  |                         if(vm.selectedDateType == 1 || vm.selectedDateType == 2){
 | 
	
		
			
				|  |  |                             if(index == 0){
 | 
	
		
			
				|  |  |                                 vm.startDate = value;
 | 
	
		
			
				|  |  |                                 return value.substr(5,2)+"月"+value.substr(8,2);
 | 
	
		
			
				|  |  |                             }else{
 | 
	
		
			
				|  |  |                                 if(index == 9){
 | 
	
		
			
				|  |  |                                     vm.endDate = value;
 | 
	
		
			
				|  |  |                                 }
 | 
	
		
			
				|  |  |                                 return value.substr(8,2);
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                         }else if(vm.selectedDateType == 3){
 | 
	
		
			
				|  |  |                             var val = value.substr(5,2)+"月"
 | 
	
		
			
				|  |  |                             if(index == 0){
 | 
	
		
			
				|  |  |                                 vm.startDate = value.substr(0,4)+"年"+val;
 | 
	
		
			
				|  |  |                             }else{
 | 
	
		
			
				|  |  |                                 if(index == 9){
 | 
	
		
			
				|  |  |                                     vm.endDate = value.substr(0,4)+"年"+val;
 | 
	
		
			
				|  |  |                                 }
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                             return val;
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             },
 | 
	
		
			
				|  |  |             yAxis: {
 | 
	
		
			
				|  |  |                 type: 'value',
 | 
	
		
			
				|  |  |                 axisPointer: {
 | 
	
		
			
				|  |  |                     snap: true
 | 
	
		
			
				|  |  |                 },
 | 
	
		
			
				|  |  |                 scale: true,
 | 
	
		
			
				|  |  |                 minInterval: 1,
 | 
	
		
			
				|  |  |                 boundaryGap: ['10%', '30%'],
 | 
	
		
			
				|  |  |                 splitLine: {show:false}
 | 
	
		
			
				|  |  |             },
 | 
	
		
			
				|  |  |             dataZoom: [{//给x轴设置滚动条  
 | 
	
		
			
				|  |  | //              show: false,
 | 
	
		
			
				|  |  |                 start: dataZoom_end,
 | 
	
		
			
				|  |  |                 end: 100,
 | 
	
		
			
				|  |  |                 type: 'slider',
 | 
	
		
			
				|  |  |                 zoomLock: true,
 | 
	
		
			
				|  |  |             },{ //下面这个属性是内容区域配置
 | 
	
		
			
				|  |  |                 start: dataZoom_end,
 | 
	
		
			
				|  |  |                 end: 100,
 | 
	
		
			
				|  |  |                 type: 'inside',
 | 
	
		
			
				|  |  |                 zoomLock: true,
 | 
	
		
			
				|  |  |             }]
 | 
	
		
			
				|  |  |         };
 | 
	
		
			
				|  |  |         var series = [],
 | 
	
		
			
				|  |  |             legend = [];
 | 
	
		
			
				|  |  |         for(var i=0; i<yDatas.length; i++){
 | 
	
		
			
				|  |  |             var obj = {
 | 
	
		
			
				|  |  |                 name: name[i],
 | 
	
		
			
				|  |  |                 type: 'line',
 | 
	
		
			
				|  |  |                 smooth: true,
 | 
	
		
			
				|  |  |                 data: yDatas[i],
 | 
	
		
			
				|  |  |                 lineStyle:{
 | 
	
		
			
				|  |  |                     normal:{
 | 
	
		
			
				|  |  |                         color: colors[i]
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             };
 | 
	
		
			
				|  |  |             series.push(obj);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         options.series = series;
 | 
	
		
			
				|  |  |         $("#lineChart").removeAttr('_echarts_instance_')
 | 
	
		
			
				|  |  |         lineCharts.setOption(options);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | })()
 |