157 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			157 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | |
|   <div class="energe-monitoring-chart"></div>
 | |
| </template>
 | |
| <script>
 | |
| import * as echarts from 'echarts';
 | |
| import resize from './../mixins/resize'
 | |
| export default {
 | |
|   name: 'EnergeMonitoringChart',
 | |
|   mixins: [resize],
 | |
|   data() {
 | |
|     return {
 | |
|       chart: null
 | |
|     }
 | |
|   },
 | |
|   computed: {
 | |
|     energyMonitoring() {
 | |
|       return this.$store.state.websocket.energyMonitoring
 | |
|     }
 | |
|   },
 | |
|   watch:{
 | |
|     energyMonitoring: {
 | |
| 			handler(newVal, oldVal) {
 | |
|         if (newVal === oldVal) {
 | |
|           return false
 | |
|         }
 | |
|         this.updateChart()
 | |
| 			}
 | |
| 		}
 | |
|   },
 | |
|   mounted() {
 | |
| 		this.$el.addEventListener('resize', () => {
 | |
| 			console.log('resziing.....');
 | |
| 		});
 | |
| 		this.updateChart()
 | |
| 	},
 | |
|   methods: {
 | |
|     updateChart() {
 | |
|       if (
 | |
|         this.chart !== null &&
 | |
|         this.chart !== '' &&
 | |
|         this.chart !== undefined
 | |
|       ) {
 | |
|         this.chart.dispose()
 | |
|       }
 | |
|       this.chart = echarts.init(this.$el);
 | |
|       let xData = []
 | |
|       let yData = []
 | |
|       this.energyMonitoring && this.energyMonitoring.length > 0 && this.energyMonitoring.map(item => {
 | |
|         xData.push(item.lineName)
 | |
|         yData.push(item.useQuantity)
 | |
|       })
 | |
|       var option = option = {
 | |
|         // color: ['#FF8A40','#FFD160','#99D66C','#5B9BFF','#8167F6','#2760FF'],
 | |
|         grid: { top: 32, right: 12, bottom: 20, left: 60 },
 | |
|         tooltip: {
 | |
|           trigger: 'axis',
 | |
|           axisPointer: {
 | |
|             type: 'cross',
 | |
|             crossStyle: {
 | |
|               color: '#999'
 | |
|             }
 | |
|           },
 | |
|           className: "energe-monitoring-chart-tooltip"
 | |
|         },
 | |
|         legend: {
 | |
|           data: ['电耗能'],
 | |
|           textStyle: {
 | |
|             color: "#DFF1FE",
 | |
|             fontSize: 12,
 | |
|           }
 | |
|         },
 | |
|         xAxis: [
 | |
|           {
 | |
|             type: 'category',
 | |
|             data: xData,
 | |
|             axisPointer: {
 | |
|               type: 'shadow'
 | |
|             },
 | |
|             axisLabel: {
 | |
|               color: "#fff",
 | |
|               fontSize: 12,
 | |
|             },
 | |
|             axisTick: { show: false },
 | |
|             axisLine: {
 | |
|               lineStyle: {
 | |
|                 width: 1,
 | |
|                 color: "#213259",
 | |
|               },
 | |
|             }
 | |
|           }
 | |
|         ],
 | |
|         yAxis: [
 | |
|           {
 | |
|             type: 'value',
 | |
|             name: '单位',
 | |
|             // min: 0,
 | |
|             // max: 250,
 | |
|             // interval: 50,
 | |
|             axisLabel: {
 | |
|               color: "#fff",
 | |
|               fontSize: 12,
 | |
|               formatter: '{value}'
 | |
|             },
 | |
|             axisLine: {
 | |
|               show: true,
 | |
|               lineStyle: {
 | |
|                 color: "#213259",
 | |
|               },
 | |
|             },
 | |
|             splitLine: {
 | |
|               lineStyle: {
 | |
|                 color: "#213259a0",
 | |
|               },
 | |
|             }
 | |
|           }
 | |
|         ],
 | |
|         series: [
 | |
|           {
 | |
|             name: '电耗能',
 | |
|             type: 'bar',
 | |
|             // barWidth: 12,
 | |
|             tooltip: {
 | |
|               valueFormatter: function (value) {
 | |
|                 return value + ' ml';
 | |
|               }
 | |
|             },
 | |
|             itemStyle: {
 | |
|               color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
 | |
|                 { offset: 0, color: '#5CB7FF' },
 | |
|                 { offset: 1, color: '#364BFE' }
 | |
|               ])
 | |
|             },
 | |
|             data: yData
 | |
|           }
 | |
|         ]
 | |
|       }
 | |
|       option && this.chart.setOption(option)
 | |
|     }
 | |
|   }
 | |
| }
 | |
| </script>
 | |
| <style scoped lang="scss">
 | |
| .energe-monitoring-chart {
 | |
| 	width: 100%;
 | |
| 	height: 100%;
 | |
| }
 | |
| </style>
 | |
| <style>
 | |
|   .energe-monitoring-chart-tooltip {
 | |
|     background: #0a2b4f77 !important;
 | |
|     border: none !important;
 | |
|     backdrop-filter: blur(12px);
 | |
|   }
 | |
|   .energe-monitoring-chart-tooltip * {
 | |
|     color: #fff !important;
 | |
|   }
 | |
| </style> |