From 0359df4402149d0717757426dfe715d2bed307d9 Mon Sep 17 00:00:00 2001
From: dengzedong <dengzedong@email>
Date: 星期四, 13 二月 2025 13:46:35 +0800
Subject: [PATCH] 预测数据加一条Y轴,展示累计值

---
 src/views/model/pre/item/MmPredictItemChart.vue |   77 ++++++++++++++++++++++++++++++++------
 1 files changed, 64 insertions(+), 13 deletions(-)

diff --git a/src/views/model/pre/item/MmPredictItemChart.vue b/src/views/model/pre/item/MmPredictItemChart.vue
index 14afaed..824de21 100644
--- a/src/views/model/pre/item/MmPredictItemChart.vue
+++ b/src/views/model/pre/item/MmPredictItemChart.vue
@@ -3,6 +3,7 @@
     title="预测数据"
     :close-on-click-modal="false"
     width="50%"
+    @close="dialogClose"
     v-model="visible"
   >
     <el-form
@@ -12,7 +13,6 @@
     >
       <el-form-item label="开始时间">
         <el-date-picker
-          size="mini"
           v-model="dataForm.startTime"
           format="YYYY-MM-DD HH:mm:00"
           value-format="YYYY-MM-DD HH:mm:00"
@@ -22,7 +22,6 @@
       </el-form-item>
       <el-form-item label="结束时间">
         <el-date-picker
-          size="mini"
           v-model="dataForm.endTime"
           format="YYYY-MM-DD HH:mm:00"
           value-format="YYYY-MM-DD HH:mm:00"
@@ -79,9 +78,16 @@
   dataForm.value.id = row.id;
   dataForm.value.itemName = row.itemname;
   if (row.id) {
-    myChart = echarts.init(chartDomPre.value);
-    myChart.clear()
+    nextTick(() => {
+      myChart = echarts.init(chartDomPre.value);
+    });
     getDataList();
+  }
+}
+
+const dialogClose = () => {
+  if (myChart) {
+    myChart.dispose(); // 组件卸载时销毁实例
   }
 }
 
@@ -96,12 +102,12 @@
       chartParams.endTime = dataForm.value.endTime;
       const data = await McsApi.getPreDataItemChart(chartParams)
       let legendData = []
-      if (data.legend && data.legend.length > 0) {
-        data.legend.forEach(item => {
-          legendData.push(item + ":" + '真实值')
-          legendData.push(item + ":" + '预测值')
-        })
-      }
+      // if (data.legend && data.legend.length > 0) {
+      //   data.legend.forEach(item => {
+      //     legendData.push(item + ":" + '真实值')
+      //     legendData.push(item + ":" + '预测值')
+      //   })
+      // }
 
       let seriesData = []
       if (data.predictTime) {
@@ -134,6 +140,7 @@
         Object.keys(data.viewMap).forEach(key => {
           let viewData = data.viewMap[key]
           if(viewData.realData) {
+            legendData.push(key + ":" + '真实值')
             seriesData.push({
               name: key + ":" + '真实值',
               type: "line",
@@ -147,6 +154,7 @@
               },
             })
           }
+          legendData.push(key + ":" + '预测值')
           seriesData.push({
             name: key + ":" + '预测值',
             type: "line",
@@ -159,6 +167,39 @@
               },
             },
           })
+          //累计点
+          if(viewData.cumulantRealData) {
+            legendData.push(key + "累计:" + '真实值')
+            seriesData.push({
+              name: key + "累计:" + '真实值',
+              type: "line",
+              data: viewData.cumulantRealData,
+              showSymbol: false,
+              smooth: false,
+              lineStyle: {
+                normal: {
+                  width: 1,
+                },
+              },
+              yAxisIndex: 1
+            })
+          }
+          if(viewData.cumulantPreData) {
+            legendData.push(key + "累计:" + '预测值')
+            seriesData.push({
+              name: key + "累计:" + '预测值',
+              type: "line",
+              data: viewData.cumulantPreData,
+              showSymbol: false,
+              smooth: false,
+              lineStyle: {
+                normal: {
+                  width: 1,
+                },
+              },
+              yAxisIndex: 1
+            })
+          }
         })
       }
 
@@ -199,9 +240,19 @@
           boundaryGap: false,
           data: data.categories,
         },
-        yAxis: {
-          type: "value",
-        },
+        yAxis: [
+          {
+            type: "value",
+            name: '预测值/真实值'
+          },
+          {
+            type: "value",
+            splitLine: {
+              show: false
+            },
+            name: '累计值'
+          }
+        ],
         dataZoom: [
           {
             type: "inside",

--
Gitblit v1.9.3