From 64b642cfbe4f34706ed40af77e51079ddf919d54 Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Fri, 13 Oct 2023 16:52:43 +0800
Subject: [PATCH] fix:查询修改和表格添加

---
 src/components/Echarts/LineChartSpe.vue |  238 ++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 131 insertions(+), 107 deletions(-)

diff --git a/src/components/Echarts/LineChartSpe.vue b/src/components/Echarts/LineChartSpe.vue
index 9b76491..3f35afa 100644
--- a/src/components/Echarts/LineChartSpe.vue
+++ b/src/components/Echarts/LineChartSpe.vue
@@ -1,12 +1,12 @@
 <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'
+import * as echarts from 'echarts'
 require('echarts/theme/macarons') // echarts theme
 import resize from './mixins/resize'
 
@@ -15,24 +15,24 @@
   props: {
     className: {
       type: String,
-      default: 'chart'
+      default: 'chart',
     },
     width: {
       type: String,
-      default: '100%'
+      default: '100%',
     },
     height: {
       type: String,
-      default: '350px'
+      default: '350px',
     },
     autoResize: {
       type: Boolean,
-      default: true
+      default: true,
     },
     chartData: {
       type: Object,
-      required: true
-    }
+      required: true,
+    },
     // xdata: {
     //   type: Array,
     //   required: true
@@ -40,16 +40,16 @@
   },
   data() {
     return {
-      chart: null
+      chart: null,
     }
   },
   watch: {
     chartData: {
-      deep: true,
       handler(val) {
         this.setOptions(val)
-      }
-    }
+      },
+      deep: true
+    },
   },
   mounted() {
     this.$nextTick(() => {
@@ -66,105 +66,129 @@
   methods: {
     initChart() {
       this.chart = echarts.init(this.$el, 'macarons')
+      this.chart.clear()
       this.setOptions(this.chartData)
     },
     setOptions(val) {
-      this.chart.setOption({
-        xAxis: {
-          data: val.xAxis,
-          boundaryGap: false,
-          axisTick: {
-            show: false
-          }
-        },
-        grid: {
-          left: 10,
-          right: 10,
-          bottom: 20,
-          top: 30,
-          containLabel: true
-        },
-        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) {
-            for (let i = 0; i < params.length; i++) {
-              return params[i].seriesName + ':' + '&nbsp;&nbsp;' + params[i].data.data0
+      let that = this
+      function fontSize(res) {
+        let clientWidth =
+          window.innerWidth ||
+          document.documentElement.clientWidth ||
+          document.body.clientWidth
+        if (!clientWidth) return
+        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: false,
+            axisTick: {
+              show: true,
+            },
+
+          },
+          grid: {
+            left: '5%',
+            right: '5%',
+            top: '5%',
+            containLabel: true,
+            height: fontSize(4.3),
+          },
+          tooltip: {
+            trigger: 'axis',
+            backgroundColor: 'rgba(50,50,50,0.5)',
+            textStyle: {
+              color: 'rgb(255, 255, 255);',
+              fontSize: fontSize(0.117), // ������������
+              lineHeight: 0
+            }
+          },
+          yAxis: {
+            axisTick: {
+              show: true, // ������������
+            },
+            axisLine: {
+              show: true, //���������������������
+            },
+            axisLabel: {
+              show: true, //������������������������������
+            }
+          },
+          legend: {
+            data: val.title,
+            tooltip: {
+              show: true,
+            },
+            textStyle: {
+              fontSize: fontSize(0.15),
+            },
+            widht: 'auto',
+            height: 'auto',
+            top: fontSize(5.5),
+          },
+          dataZoom: [
+            {
+              type: 'inside',
+              start: 0,
+              end: 100,
+            },
+            {
+              start: 0,
+              end: 10,
+              top: fontSize(4.5),
+              height: fontSize(0.4),
+            },
+          ],
+          series: val.series
         },
-        // tooltip: {
-        //   trigger: 'axis',
-        //   axisPointer: {
-        //     type: 'cross'
-        //   },
-        //   padding: [5, 10]
-        // },
-        yAxis: {
-          axisLabel: {
-            show: false
-          }
-        },
-        legend: {
-          icon: 'circle',
-          itemHeight: 15,
-          // textStyle: {
-          //   fontSize: 18
-          // },
-          data: val.title
-        },
-        dataZoom: [{
-          type: 'inside',
-          start: 0,
-          end: 100
-        }, {
-          start: 0,
-          end: 10
-        }],
-        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'
-        //     }
-        //   }
-        // }]
-      }, true)
-    }
-  }
+        true
+      )
+      window.onresize = this.chart.resize
+    },
+  },
 }
 </script>

--
Gitblit v1.8.0