From 2cffd9c7db5c3191cf172641c800e5a328d6f3af Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 10 七月 2025 17:30:57 +0800
Subject: [PATCH] 2025.7.10 修改动态溯源模块

---
 src/views/historymode/HistoryMode.vue |   55 ++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 48 insertions(+), 7 deletions(-)

diff --git a/src/views/historymode/HistoryMode.vue b/src/views/historymode/HistoryMode.vue
index dc4a863..2865dec 100644
--- a/src/views/historymode/HistoryMode.vue
+++ b/src/views/historymode/HistoryMode.vue
@@ -4,17 +4,17 @@
       <SearchBar
         v-show="status == 0"
         :search-time="searchTime"
-        :loading="loading"
+        :loading="loading || thirdPartyLoading"
         @search="onSearch"
       ></SearchBar>
       <TrajectoryState v-show="status != 0" :status="status"></TrajectoryState>
-      <el-button
+      <!-- <el-button
         type="primary"
         class="p-events-auto el-button-custom"
         @click="handleClick"
       >
         鍒嗘瀽
-      </el-button>
+      </el-button> -->
     </el-row>
     <el-row class="m-t-2">
       <FactorRadio
@@ -28,7 +28,6 @@
         :factor="factorDatas.factor[factorType]"
         @change="handleLegendTypeChange"
       ></FactorLegend>
-      <!-- <SourceTrace></SourceTrace> -->
     </el-row>
     <el-row class="historical" justify="center">
       <HistoricalTrajectory
@@ -53,6 +52,13 @@
       :device-type="deviceType"
       :device-code="deviceCode"
     ></DataSheet>
+    <SourceTrace
+      class="source-trace"
+      v-model:factorType="factorType"
+      direction="left"
+      mode="history"
+      :mission-code="missionCode"
+    ></SourceTrace>
   </div>
 </template>
 
@@ -74,6 +80,7 @@
 import { ElMessage } from 'element-plus';
 import { fetchHistoryData } from '@/utils/factor/data';
 import dataAnalysisApi from '@/api/dataAnalysisApi';
+import thirdPartyDataApi from '@/api/thirdPartyDataApi';
 import { mapStores } from 'pinia';
 import { useSceneStore } from '@/stores/scene';
 
@@ -86,6 +93,7 @@
   },
   data() {
     return {
+      missionCode: undefined,
       // 鐩戞祴璁惧绫诲瀷
       deviceType: TYPE0,
       // 鐩戞祴璁惧缂栧彿
@@ -108,7 +116,10 @@
       // 杞ㄨ抗鍔ㄧ敾鐘舵��
       status: 0,
       // 鏄惁椤甸潰宸茶烦杞�
-      isUnmounted: false
+      isUnmounted: false,
+      // 绗笁鏂规暟鎹幏鍙栨槸鍚﹀皾璇�
+      isFetchThirdParty: false,
+      thirdPartyLoading: false
     };
   },
   watch: {
@@ -116,7 +127,7 @@
       if (nValue != oValue && this.status == 0) {
         Layer.clear();
         this.draw();
-        this.drawHighlightPollution();
+        // this.drawHighlightPollution();
       }
     }
   },
@@ -223,6 +234,7 @@
       this.deviceType = deviceType;
       this.deviceCode = deviceCode;
       this.mission = mission;
+      this.missionCode = mission.missionCode;
       let startTime, endTime;
       if (timeArray && timeArray.length == 2) {
         startTime = moment(timeArray[0]).format('YYYY-MM-DD HH:mm:ss');
@@ -236,8 +248,32 @@
           endTime,
           page,
           perPage: pageSize
-        }).then((res) => this.onFetchData(deviceType, res.data));
+        }).then((res) => {
+          this.onFetchData(deviceType, res.data);
+          if (
+            res.data.length == 0 &&
+            this.isFetchThirdParty != mission.missionCode
+          ) {
+            this.onThirdPartyFetch(option);
+          }
+        });
       });
+    },
+    onThirdPartyFetch(option) {
+      const { mission } = option;
+      if (import.meta.env.VITE_DATA_MODE == 'jingan') {
+        this.thirdPartyLoading = true;
+        this.isFetchThirdParty = mission.missionCode;
+        // 閫氱煡鏈嶅姟绔惎鍔ㄤ换鍔¤寖鍥村唴鐨勭涓夋柟鏁版嵁鑾峰彇浠诲姟
+        thirdPartyDataApi
+          .fetchMissionData(mission.missionCode)
+          .then((res) => {
+            if (res.data) {
+              this.onSearch(option);
+            }
+          })
+          .finally(() => (this.thirdPartyLoading = false));
+      }
     },
     handleClick() {
       const { missionCode } = this.mission;
@@ -279,4 +315,9 @@
   left: 0;
   right: 0;
 }
+.source-trace {
+  position: absolute;
+  right: 0;
+  bottom: 0px;
+}
 </style>

--
Gitblit v1.9.3