From c23ac06446a9a1edc41cc13723e5d0b8eabdfd63 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期三, 16 七月 2025 17:30:50 +0800
Subject: [PATCH] 2025.7.16 动态溯源新增合并异常

---
 src/views/sourcetrace/component/ClueRecordItem.vue |   90 +++++++++++++++++++++------------------------
 1 files changed, 42 insertions(+), 48 deletions(-)

diff --git a/src/views/sourcetrace/component/ClueRecordItem.vue b/src/views/sourcetrace/component/ClueRecordItem.vue
index 5237bb5..25a1b59 100644
--- a/src/views/sourcetrace/component/ClueRecordItem.vue
+++ b/src/views/sourcetrace/component/ClueRecordItem.vue
@@ -9,7 +9,7 @@
       <el-col :span="21">
         <el-row justify="space-between">
           <el-space>
-            <el-text type="primary" size="default">
+            <el-text type="info" size="default">
               <el-icon><Timer /></el-icon>
               {{
                 item.pollutedData._startTime +
@@ -18,7 +18,7 @@
               }}
             </el-text>
           </el-space>
-          <el-link type="primary" @click="emits('open', item)"> 璇︽儏 </el-link>
+          <el-link type="info" @click="emits('open', item)"> 璇︽儏 </el-link>
         </el-row>
         <div>
           <el-tag
@@ -30,15 +30,17 @@
             round
             class="m-r-4"
           >
-            <div v-html="formatFactorName(item.pollutedData.factorName)"></div>
+            <div
+              v-html="formatFactorName(item.pollutedData.statisticMap)"
+            ></div>
           </el-tag>
-          <el-text type="primary">
+          <el-text type="info">
             {{ item.pollutedData.exception + '锛�' }}
           </el-text>
-          <el-text type="primary">{{
+          <el-text type="info">{{
             formatDistanceType(item.pollutedArea.distanceType)
           }}</el-text>
-          <el-text :type="noWarn ? 'primary' : 'warning'">
+          <el-text :type="noWarn ? 'info' : 'warning'">
             {{
               item.pollutedSource.sceneList.length == 0
                 ? '鏈壘鍒伴闄╂簮'
@@ -65,11 +67,11 @@
     <div v-else-if="item._type == '2'">
       <el-row justify="space-between">
         <el-tag type="danger" effect="dark" size="small">绾跨储</el-tag>
-        <el-link type="primary" @click="emits('open')"> 璇︽儏 </el-link>
+        <el-link type="info" @click="emits('open')"> 璇︽儏 </el-link>
       </el-row>
       <el-space>
         <el-icon color="#F56C6C" :size="40"><WarnTriangleFilled /></el-icon>
-        <el-text type="primary">{{ item.advice }}</el-text>
+        <el-text type="info">{{ item.advice }}</el-text>
       </el-space>
     </div>
     <el-row v-else-if="item._type == '3'">
@@ -79,7 +81,7 @@
       <el-col :span="21">
         <el-row justify="space-between">
           <el-space>
-            <el-text type="primary" size="default">
+            <el-text type="info" size="default">
               <el-icon><Timer /></el-icon>
               {{
                 item.pollutedData._startTime +
@@ -88,7 +90,7 @@
               }}
             </el-text>
           </el-space>
-          <!-- <el-link type="primary" @click="emits('open', item)"> 璇︽儏 </el-link> -->
+          <el-link type="info" @click="emits('open', item)"> 璇︽儏 </el-link>
         </el-row>
         <div>
           <el-tag
@@ -100,9 +102,11 @@
             round
             class="m-r-4"
           >
-            <div v-html="formatFactorName(item.pollutedData.factorName)"></div>
+            <div
+              v-html="formatFactorName(item.pollutedData.statisticMap)"
+            ></div>
           </el-tag>
-          <el-text type="primary">{{ item.pollutedData.exception }}</el-text>
+          <el-text type="info">{{ item.pollutedData.exception }}</el-text>
         </div>
         <div v-if="item.pollutedSource.sceneList.length > 0">
           <div v-for="s in item.pollutedSource.sceneList" :key="s.guid">
@@ -119,22 +123,6 @@
           </div>
         </div>
       </el-col>
-
-      <!-- <el-row justify="space-between">
-        <el-space>
-          <el-tag type="primary" effect="dark" size="small">鎻愰啋</el-tag>
-          <el-text type="primary">{{
-            item.pollutedData.startTime + ' - ' + item.pollutedData.endTime
-          }}</el-text>
-        </el-space>
-        <el-link type="primary" @click="emits('open', item)"> 璇︽儏 </el-link>
-      </el-row>
-      <el-col :span="24">
-        <el-tag effect="plain" type="info" size="small" hit round class="m-r-4">
-          <div v-html="formatFactorName(item.pollutedData.factorName)"></div>
-        </el-tag>
-        <el-text type="primary">{{ item.pollutedData.exception }}</el-text>
-      </el-col> -->
     </el-row>
   </div>
 </template>
@@ -180,27 +168,33 @@
   }
 }
 
-function formatFactorName(name) {
-  switch (name) {
-    case 'PM25':
-      return 'PM<sub>2.5</sub>';
-    // return '<span>PM2.5</span>';
-    case 'PM10':
-      return 'PM<sub>10</sub>';
-    case 'NO2':
-      return 'NO<sub>2</sub>';
-    case 'H2S':
-      return 'H<sub>2</sub>S';
-    case 'SO2':
-      return 'SO<sub>2</sub>';
-    case 'O3':
-      return 'O<sub>3</sub>';
-    case 'VOC':
-      return 'VOC<sub>s</sub>';
-
-    default:
-      break;
+function formatFactorName(statisticMap) {
+  const mapName = (n) => {
+    switch (n) {
+      case 'PM25':
+        return 'PM<sub>2.5</sub>';
+      case 'PM10':
+        return 'PM<sub>10</sub>';
+      case 'NO2':
+        return 'NO<sub>2</sub>';
+      case 'H2S':
+        return 'H<sub>2</sub>S';
+      case 'SO2':
+        return 'SO<sub>2</sub>';
+      case 'O3':
+        return 'O<sub>3</sub>';
+      case 'VOC':
+        return 'VOC<sub>s</sub>';
+      default:
+        return '';
+    }
+  };
+  let name = [];
+  for (const key in statisticMap) {
+    const value = statisticMap[key];
+    name.push(mapName(value.factorName));
   }
+  return name.join('銆�');
 }
 
 function handleSetCenter(item, scene) {

--
Gitblit v1.9.3