From 2c6d91d758241e1f97fe2790d92b754ea2cc860c Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Thu, 28 Mar 2024 15:59:25 +0800
Subject: [PATCH] fix: 空气质量日报表显示

---
 src/components/Echarts/LineChartSpe.vue |  178 ++++++++++++++++++++++++++++++----------------------------
 1 files changed, 92 insertions(+), 86 deletions(-)

diff --git a/src/components/Echarts/LineChartSpe.vue b/src/components/Echarts/LineChartSpe.vue
index df84764..a7f10d6 100644
--- a/src/components/Echarts/LineChartSpe.vue
+++ b/src/components/Echarts/LineChartSpe.vue
@@ -1,17 +1,20 @@
 <template>
   <!-- <div> -->
   <!-- <div>1111111111111111111111111111111111111111</div> -->
-  <div :class="className" :style="{ height: height, width: width }" />
+  <div
+    :class="className"
+    :style="{ height: height, width: width }"
+  />
   <!-- </div> -->
 </template>
 
 <script>
-import echarts from 'echarts'
-require('echarts/theme/macarons') // echarts theme
-import resize from './mixins/resize'
+import * as echarts from 'echarts' // echarts theme
+// import resize from './mixins/resize'
+require('echarts/theme/macarons')
 
 export default {
-  mixins: [resize],
+  // mixins: [resize],
   props: {
     className: {
       type: String,
@@ -38,27 +41,25 @@
     //   required: true
     // }
   },
-  data() {
+  data () {
     return {
       chart: null,
     }
   },
   watch: {
     chartData: {
-
-      handler(val) {
+      handler (val) {
         this.setOptions(val)
       },
-      deep: true,
-
+      deep: true
     },
   },
-  mounted() {
+  mounted () {
     this.$nextTick(() => {
       this.initChart()
     })
   },
-  beforeDestroy() {
+  beforeDestroy () {
     if (!this.chart) {
       return
     }
@@ -66,12 +67,21 @@
     this.chart = null
   },
   methods: {
-    initChart() {
+    initChart () {
       this.chart = echarts.init(this.$el, 'macarons')
-      this.setOptions(this.chartData)
+      this.chart.clear()
+      // this.setOptions(this.chartData)
     },
-    setOptions(val) {
-      function fontSize(res) {
+    setOptions (val) {
+      console.log('val,val', val)
+      // val.series.forEach(element => {
+      //   element.data = element.data.map(item => item === 0 ? 0.1 : item)
+      // })
+      if (this.chart) {
+        this.chart.clear()
+      }
+      let that = this
+      function fontSize (res) {
         let clientWidth =
           window.innerWidth ||
           document.documentElement.clientWidth ||
@@ -80,65 +90,85 @@
         let fontSize = 100 * (clientWidth / 1920)
         return res * fontSize
       }
+      /**
+   * ���������������mouseover������������������������������
+   * ������������������ ������������������������������������������������������������
+   * ���������������������������������������������������������������������������
+   * ������������������������series���������������������������������
+   * ������params������������������������������
+   */
+      this.chart.on('mouseover', function (params) {
+        that.chart.setOption({
+          series: [
+            {
+              name: params.seriesName,
+              label: {
+                show: true,
+                fontSize: 16,
+                position: [10, -15],
+                formatter: '{c}'
+              }
+            }
+          ]
+        })
+      })
+      // ���������������mouseout������������������������
+      this.chart.on('mouseout', function (params) {
+        that.chart.setOption({
+          series: [
+            {
+              name: params.seriesName,
+              lineStyle: {
+                width: 2
+              },
+              label: {
+                show: false
+              },
+              endLabel: {
+                show: false
+              }
+            }
+          ]
+        })
+      })
       this.chart.setOption(
         {
           xAxis: {
             data: val.xAxis,
-            boundaryGap: true,
+            boundaryGap: false,
             axisTick: {
               show: true,
             },
+
           },
           grid: {
-            left: 10,
-            right: 10,
-            bottom: 20,
-            top: 30,
-            height: fontSize(3.5),
+            left: '5%',
+            right: '5%',
+            top: '5%',
             containLabel: true,
+            height: fontSize(4.3),
           },
-          toolbox: {
-            feature: {
-              dataZoom: {
-                yAxisIndex: 'none',
-              },
-              restore: {},
-              saveAsImage: {},
-            },
-          },
-          // tooltip: {
-          //   trigger: 'axis',
-          //   position: function(pt) {
-          //     return [pt[0], '10%']
-          //   }
-          // },
           tooltip: {
             trigger: 'axis',
-            position: function (pt) {
-              return [pt[0], '10%']
-            },
-            // formatter(params) {
-            //   console.log(params,'ssss');
-            //   let data=[]
-            //   for (let i = 0; i < params.length; i++) {
-            //     data+=params[i].seriesName + '&nbsp:' +'&nbsp&nbsp'+params[i].value+ '<br/>'
-            //   }
-            // return data
-            // },
+            backgroundColor: 'rgba(50,50,50,0.5)',
+            textStyle: {
+              color: 'rgb(255, 255, 255);',
+              fontSize: fontSize(0.117), // ������������
+              lineHeight: 0
+            }
           },
-
-          yAxis: {
-            axisLabel: {
-              show: false,
-            },
-          },
+          yAxis: val.yAxis,
           legend: {
-            icon: 'circle',
-            itemHeight: 15,
-            // textStyle: {
-            //   fontSize: 18
-            // },
             data: val.title,
+            tooltip: {
+              show: true,
+            },
+            textStyle: {
+              fontSize: fontSize(0.15),
+            },
+            widht: 'auto',
+            height: 'auto',
+            top: fontSize(5.5),
           },
           dataZoom: [
             {
@@ -149,39 +179,15 @@
             {
               start: 0,
               end: 10,
-              top:fontSize(4),
+              top: fontSize(4.5),
               height: fontSize(0.4),
             },
-
           ],
-          series: val.series,
-          // [{
-          //   name: JSON.parse(JSON.stringify(val.title)),
-          //   itemStyle: {
-          //     normal: {
-          //       color: '#7AC5CD',
-          //       lineStyle: {
-          //         color: '#7AC5CD',
-          //         width: 2
-          //       }
-          //     }
-          //   },
-          //   smooth: true,
-          //   type: 'line',
-          //   data: val.series,
-          //   animationDuration: 2800,
-          //   animationEasing: 'cubicInOut',
-          //   areaStyle: {},
-          //   label: {
-          //     normal: {
-          //       show: true,
-          //       position: 'top'
-          //     }
-          //   }
-          // }]
+          series: val.series
         },
         true
       )
+      // window.onresize = this.chart.resize
     },
   },
 }

--
Gitblit v1.8.0