From a09f984cbe2369e13d8694e91c4f8165ec6c2ba9 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期三, 20 八月 2025 14:05:10 +0800
Subject: [PATCH] 动态溯源模块优化

---
 src/views/sourcetrace/SourceTrace.vue |   45 ++++++++++++++++++++++++++++-----------------
 1 files changed, 28 insertions(+), 17 deletions(-)

diff --git a/src/views/sourcetrace/SourceTrace.vue b/src/views/sourcetrace/SourceTrace.vue
index 2ef9353..73dcd07 100644
--- a/src/views/sourcetrace/SourceTrace.vue
+++ b/src/views/sourcetrace/SourceTrace.vue
@@ -200,7 +200,10 @@
         }
 
         // 鍒ゆ柇鍦烘櫙绫诲瀷鏄惁閫変腑
-        if (v.pollutedSource.sceneList.length == 0) {
+        if (
+          v.pollutedSource == undefined ||
+          v.pollutedSource.sceneList.length == 0
+        ) {
           b3 = selectedSceneTypes.value.indexOf(NO_SCENE) != -1;
         } else {
           b3 =
@@ -306,25 +309,29 @@
       }
 
       // 绛涢�夊満鏅被鍨�
-      if (objData.pollutedSource.sceneList.length == 0) {
-        // 鑻ユ病鏈夋壘鍒伴闄╂簮鏃讹紝灏嗚鍒嗙被璁惧畾涓簄ull
-        if (sceneOptions.value.findIndex((v) => v.value == NO_SCENE) == -1) {
-          sceneOptions.value.push({
-            label: '鏈煡',
-            value: NO_SCENE
-          });
-          selectedSceneTypes.value.push(NO_SCENE);
-        }
-      } else {
-        objData.pollutedSource.sceneList.forEach((s) => {
-          if (sceneOptions.value.findIndex((v) => v.value == s.typeId) == -1) {
+      if (objData.pollutedSource != undefined) {
+        if (objData.pollutedSource.sceneList.length == 0) {
+          // 鑻ユ病鏈夋壘鍒伴闄╂簮鏃讹紝灏嗚鍒嗙被璁惧畾涓簄ull
+          if (sceneOptions.value.findIndex((v) => v.value == NO_SCENE) == -1) {
             sceneOptions.value.push({
-              label: s.type,
-              value: s.typeId
+              label: '鏈煡',
+              value: NO_SCENE
             });
-            selectedSceneTypes.value.push(s.typeId);
+            selectedSceneTypes.value.push(NO_SCENE);
           }
-        });
+        } else {
+          objData.pollutedSource.sceneList.forEach((s) => {
+            if (
+              sceneOptions.value.findIndex((v) => v.value == s.typeId) == -1
+            ) {
+              sceneOptions.value.push({
+                label: s.type,
+                value: s.typeId
+              });
+              selectedSceneTypes.value.push(s.typeId);
+            }
+          });
+        }
       }
     // case '2':
     //   break;
@@ -355,6 +362,10 @@
   dataAnalysisApi
     .fetchPollutionTraceHistory(props.missionCode)
     .then((res) => {
+      factorOptions.value = [];
+      selectedFactorTypes.value = [];
+      sceneOptions.value = [];
+      selectedSceneTypes.value = [];
       const objList = JSON.parse(res.data);
       objList.forEach((obj) => {
         obj._type = obj.msgType + '';

--
Gitblit v1.9.3