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 |  105 +++++++++++++++++++++++++++-------------------------
 1 files changed, 54 insertions(+), 51 deletions(-)

diff --git a/src/views/sourcetrace/component/ClueRecordItem.vue b/src/views/sourcetrace/component/ClueRecordItem.vue
index a8aecbb..25a1b59 100644
--- a/src/views/sourcetrace/component/ClueRecordItem.vue
+++ b/src/views/sourcetrace/component/ClueRecordItem.vue
@@ -9,33 +9,38 @@
       <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 + ' - ' + item.pollutedData.endTime
+                item.pollutedData._startTime +
+                ' - ' +
+                item.pollutedData._endTime
               }}
             </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
             effect="plain"
             type="info"
+            style="color: black"
             size="small"
             hit
             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
                 ? '鏈壘鍒伴闄╂簮'
@@ -62,9 +67,12 @@
     <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-text type="danger">{{ item.advice }}</el-text>
+      <el-space>
+        <el-icon color="#F56C6C" :size="40"><WarnTriangleFilled /></el-icon>
+        <el-text type="info">{{ item.advice }}</el-text>
+      </el-space>
     </div>
     <el-row v-else-if="item._type == '3'">
       <el-col :span="3">
@@ -73,27 +81,32 @@
       <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 + ' - ' + item.pollutedData.endTime
+                item.pollutedData._startTime +
+                ' - ' +
+                item.pollutedData._endTime
               }}
             </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
             effect="plain"
             type="info"
             size="small"
+            style="color: black"
             hit
             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">
@@ -110,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>
@@ -158,7 +155,7 @@
 function formatDistanceType(value) {
   switch (value) {
     case 'TYPE1':
-      return '50绫充互鍐�';
+      return '100绫充互鍐�';
     case 'TYPE2':
       return '50绫� - 500绫充互鍐�';
     case 'TYPE3':
@@ -171,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