From 291067c13bfe8fb9c876e3764a828dc3ddd22f99 Mon Sep 17 00:00:00 2001
From: helongyang <647556386@qq.com>
Date: 星期一, 17 十一月 2025 16:50:12 +0800
Subject: [PATCH] 监控优化,代码功能优化

---
 代码管理/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/SolderMaskWarehouse.vue |  351 ++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 252 insertions(+), 99 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/SolderMaskWarehouse.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/SolderMaskWarehouse.vue"
index f84be25..7d1e06a 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/SolderMaskWarehouse.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/SolderMaskWarehouse.vue"
@@ -1,176 +1,211 @@
 <template>
   <div id="title">
     <div id="bkuang" style="border-top: none">
+      <!-- ZH浠撳爢鍨涙満鐘舵�侀潰鏉� -->
       <div class="skuang">
         <div class="zhuname">闃荤剨浠撳爢鍨涙満</div>
         <div class="zhankuang">
           <div class="xname">鍫嗗灈鏈虹姸鎬�:</div>
-          <div class="xzhi" :title="data.R_ZH_Status">{{ data.R_ZH_Status }}</div>
+          <div class="xzhi" :title="zhData.R_ZH_Status">{{ zhData.R_ZH_Status || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鍫嗗灈鏈烘墜鑷姩鐘舵��:</div>
-          <div class="xzhi" :title="data.R_ZH_AutoStatus">{{ data.R_ZH_AutoStatus }}</div>
+          <div class="xzhi" :title="zhData.R_ZH_AutoStatus">{{ zhData.R_ZH_AutoStatus || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">姝e湪鎵ц鐨勪换鍔″彿:</div>
-          <div class="xzhi" :title="data.R_ZH_TaskNum">{{ data.R_ZH_TaskNum }}</div>
+          <div class="xzhi" :title="zhData.R_ZH_TaskNum">{{ zhData.R_ZH_TaskNum || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鍫嗗灈鏈哄伐浣滅姸鎬�:</div>
-          <div class="xzhi" :title="data.R_ZH_WorkStatus">{{ data.R_ZH_WorkStatus }}</div>
+          <div class="xzhi" :title="zhData.R_ZH_WorkStatus">{{ zhData.R_ZH_WorkStatus || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">浣滀笟绫诲瀷:</div>
-          <div class="xzhi" :title="data.R_ZH_WorkType">{{ data.R_ZH_WorkType }}</div>
+          <div class="xzhi" :title="zhData.R_ZH_WorkType">{{ zhData.R_ZH_WorkType || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鎵樼洏绫诲瀷:</div>
-          <div class="xzhi" :title="data.R_ZH_TrayType">{{ data.R_ZH_TrayType }}</div>
+          <div class="xzhi" :title="zhData.R_ZH_TrayType">{{ zhData.R_ZH_TrayType || '-' }}</div>
+        </div>
+        <!-- 鏂板锛氬綋鍓嶆墍鍦ㄥ垪鏄剧ず -->
+        <div class="zhankuang">
+          <div class="xname">褰撳墠鎵�鍦ㄥ垪:</div>
+          <div class="xzhi" :title="zhData.R_ZH_Column">{{ zhData.R_ZH_Column || '鏈煡' }}</div>
         </div>
       </div>
+
+      <!-- ZH鍏宠仈绔欏彴锛堝叆搴�301+鍏ュ簱302锛� -->
       <div class="skuang">
         <div class="zhuname">鍏ュ簱301绔欏彴</div>
         <div class="zhankuang">
           <div class="xname">鏄惁鍏佽鏀捐揣(璇�):</div>
-          <div class="xzhi" :title="data.R_ZH_IsCanPut1">{{ data.R_ZH_IsCanPut1 }}</div>
+          <div class="xzhi" :title="zhData.R_ZH_IsCanPut1">{{ zhData.R_ZH_IsCanPut1 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鏄惁鍏佽鍙栬揣(璇�):</div>
-          <div class="xzhi" :title="data.R_ZH_IsCanTake1">{{ data.R_ZH_IsCanTake1 }}</div>
+          <div class="xzhi" :title="zhData.R_ZH_IsCanTake1">{{ zhData.R_ZH_IsCanTake1 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鍙栬揣鎵樼洏绫诲瀷(璇�):</div>
-          <div class="xzhi" :title="data.R_ZH_TakePalletType1">{{ data.R_ZH_TakePalletType1 }}</div>
+          <div class="xzhi" :title="zhData.R_ZH_TakePalletType1">{{ zhData.R_ZH_TakePalletType1 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鏀捐揣鎵樼洏绫诲瀷(鍐�):</div>
-          <div class="xzhi" :title="data.W_ZH_PutPalletType1">{{ data.W_ZH_PutPalletType1 }}</div>
+          <div class="xzhi" :title="zhData.W_ZH_PutPalletType1">{{ zhData.W_ZH_PutPalletType1 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鏀捐揣璇锋眰(鍐�):</div>
-          <div class="xzhi" :title="data.W_ZH_PutRequest1">{{ data.W_ZH_PutRequest1 }}</div>
+          <div class="xzhi" :title="zhData.W_ZH_PutRequest1">{{ zhData.W_ZH_PutRequest1 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鏀捐揣瀹屾垚(鍐�):</div>
-          <div class="xzhi" :title="data.W_ZH_PutFinish1">{{ data.W_ZH_PutFinish1 }}</div>
+          <div class="xzhi" :title="zhData.W_ZH_PutFinish1">{{ zhData.W_ZH_PutFinish1 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鍙栬揣璇锋眰(鍐�):</div>
-          <div class="xzhi" :title="data.W_ZH_TakeRequest1">{{ data.W_ZH_TakeRequest1 }}</div>
+          <div class="xzhi" :title="zhData.W_ZH_TakeRequest1">{{ zhData.W_ZH_TakeRequest1 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鍙栬揣瀹屾垚(鍐�):</div>
-          <div class="xzhi" :title="data.W_ZH_TakeFinish1">{{ data.W_ZH_TakeFinish1 }}</div>
+          <div class="xzhi" :title="zhData.W_ZH_TakeFinish1">{{ zhData.W_ZH_TakeFinish1 || '-' }}</div>
         </div>
+
         <div class="zhuname">鍏ュ簱302绔欏彴</div>
         <div class="zhankuang">
           <div class="xname">鏄惁鍏佽鏀捐揣(璇�):</div>
-          <div class="xzhi" :title="data.R_ZH_IsCanPut2">{{ data.R_ZH_IsCanPut2 }}</div>
+          <div class="xzhi" :title="zhData.R_ZH_IsCanPut2">{{ zhData.R_ZH_IsCanPut2 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鏄惁鍏佽鍙栬揣(璇�):</div>
-          <div class="xzhi" :title="data.R_ZH_IsCanTake2">{{ data.R_ZH_IsCanTake2 }}</div>
+          <div class="xzhi" :title="zhData.R_ZH_IsCanTake2">{{ zhData.R_ZH_IsCanTake2 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鍙栬揣鎵樼洏绫诲瀷(璇�):</div>
-          <div class="xzhi" :title="data.R_ZH_TakePalletType2">{{ data.R_ZH_TakePalletType2 }}</div>
+          <div class="xzhi" :title="zhData.R_ZH_TakePalletType2">{{ zhData.R_ZH_TakePalletType2 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鏀捐揣鎵樼洏绫诲瀷(鍐�):</div>
-          <div class="xzhi" :title="data.W_ZH_PutPalletType2">{{ data.W_ZH_PutPalletType2 }}</div>
+          <div class="xzhi" :title="zhData.W_ZH_PutPalletType2">{{ zhData.W_ZH_PutPalletType2 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鏀捐揣璇锋眰(鍐�):</div>
-          <div class="xzhi" :title="data.W_ZH_PutRequest2">{{ data.W_ZH_PutRequest2 }}</div>
+          <div class="xzhi" :title="zhData.W_ZH_PutRequest2">{{ zhData.W_ZH_PutRequest2 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鏀捐揣瀹屾垚(鍐�):</div>
-          <div class="xzhi" :title="data.W_ZH_PutFinish2">{{ data.W_ZH_PutFinish2 }}</div>
+          <div class="xzhi" :title="zhData.W_ZH_PutFinish2">{{ zhData.W_ZH_PutFinish2 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鍙栬揣璇锋眰(鍐�):</div>
-          <div class="xzhi" :title="data.W_ZH_TakeRequest2">{{ data.W_ZH_TakeRequest2 }}</div>
+          <div class="xzhi" :title="zhData.W_ZH_TakeRequest2">{{ zhData.W_ZH_TakeRequest2 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鍙栬揣瀹屾垚(鍐�):</div>
-          <div class="xzhi" :title="data.W_ZH_TakeFinish2">{{ data.W_ZH_TakeFinish2 }}</div>
+          <div class="xzhi" :title="zhData.W_ZH_TakeFinish2">{{ zhData.W_ZH_TakeFinish2 || '-' }}</div>
         </div>
       </div>
-      
+
+      <!-- ZH鍏宠仈绔欏彴锛堝嚭搴�303+鍑哄簱304锛� -->
       <div class="skuang">
         <div class="zhuname">鍑哄簱303绔欏彴</div>
         <div class="zhankuang">
           <div class="xname">鏄惁鍏佽鏀捐揣(璇�):</div>
-          <div class="xzhi" :title="data.R_ZH_IsCanPut3">{{ data.R_ZH_IsCanPut3 }}</div>
+          <div class="xzhi" :title="zhData.R_ZH_IsCanPut3">{{ zhData.R_ZH_IsCanPut3 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鏄惁鍏佽鍙栬揣(璇�):</div>
-          <div class="xzhi" :title="data.R_ZH_IsCanTake3">{{ data.R_ZH_IsCanTake3 }}</div>
+          <div class="xzhi" :title="zhData.R_ZH_IsCanTake3">{{ zhData.R_ZH_IsCanTake3 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鍙栬揣鎵樼洏绫诲瀷(璇�):</div>
-          <div class="xzhi" :title="data.R_ZH_TakePalletType3">{{ data.R_ZH_TakePalletType3 }}</div>
+          <div class="xzhi" :title="zhData.R_ZH_TakePalletType3">{{ zhData.R_ZH_TakePalletType3 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鏀捐揣鎵樼洏绫诲瀷(鍐�):</div>
-          <div class="xzhi" :title="data.W_ZH_PutPalletType3">{{ data.W_ZH_PutPalletType3 }}</div>
+          <div class="xzhi" :title="zhData.W_ZH_PutPalletType3">{{ zhData.W_ZH_PutPalletType3 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鏀捐揣璇锋眰(鍐�):</div>
-          <div class="xzhi" :title="data.W_ZH_PutRequest3">{{ data.W_ZH_PutRequest3 }}</div>
+          <div class="xzhi" :title="zhData.W_ZH_PutRequest3">{{ zhData.W_ZH_PutRequest3 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鏀捐揣瀹屾垚(鍐�):</div>
-          <div class="xzhi" :title="data.W_ZH_PutFinish3">{{ data.W_ZH_PutFinish3 }}</div>
+          <div class="xzhi" :title="zhData.W_ZH_PutFinish3">{{ zhData.W_ZH_PutFinish3 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鍙栬揣璇锋眰(鍐�):</div>
-          <div class="xzhi" :title="data.W_ZH_TakeRequest3">{{ data.W_ZH_TakeRequest3 }}</div>
+          <div class="xzhi" :title="zhData.W_ZH_TakeRequest3">{{ zhData.W_ZH_TakeRequest3 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鍙栬揣瀹屾垚(鍐�):</div>
-          <div class="xzhi" :title="data.W_ZH_TakeFinish3">{{ data.W_ZH_TakeFinish3 }}</div>
+          <div class="xzhi" :title="zhData.W_ZH_TakeFinish3">{{ zhData.W_ZH_TakeFinish3 || '-' }}</div>
         </div>
+
         <div class="zhuname">鍑哄簱304绔欏彴</div>
         <div class="zhankuang">
           <div class="xname">鏄惁鍏佽鏀捐揣(璇�):</div>
-          <div class="xzhi" :title="data.R_ZH_IsCanPut4">{{ data.R_ZH_IsCanPut4 }}</div>
+          <div class="xzhi" :title="zhData.R_ZH_IsCanPut4">{{ zhData.R_ZH_IsCanPut4 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鏄惁鍏佽鍙栬揣(璇�):</div>
-          <div class="xzhi" :title="data.R_ZH_IsCanTake4">{{ data.R_ZH_IsCanTake4 }}</div>
+          <div class="xzhi" :title="zhData.R_ZH_IsCanTake4">{{ zhData.R_ZH_IsCanTake4 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鍙栬揣鎵樼洏绫诲瀷(璇�):</div>
-          <div class="xzhi" :title="data.R_ZH_TakePalletType4">{{ data.R_ZH_TakePalletType4 }}</div>
+          <div class="xzhi" :title="zhData.R_ZH_TakePalletType4">{{ zhData.R_ZH_TakePalletType4 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鏀捐揣鎵樼洏绫诲瀷(鍐�):</div>
-          <div class="xzhi" :title="data.W_ZH_PutPalletType4">{{ data.W_ZH_PutPalletType4 }}</div>
+          <div class="xzhi" :title="zhData.W_ZH_PutPalletType4">{{ zhData.W_ZH_PutPalletType4 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鏀捐揣璇锋眰(鍐�):</div>
-          <div class="xzhi" :title="data.W_ZH_PutRequest4">{{ data.W_ZH_PutRequest4 }}</div>
+          <div class="xzhi" :title="zhData.W_ZH_PutRequest4">{{ zhData.W_ZH_PutRequest4 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鏀捐揣瀹屾垚(鍐�):</div>
-          <div class="xzhi" :title="data.W_ZH_PutFinish4">{{ data.W_ZH_PutFinish4 }}</div>
+          <div class="xzhi" :title="zhData.W_ZH_PutFinish4">{{ zhData.W_ZH_PutFinish4 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鍙栬揣璇锋眰(鍐�):</div>
-          <div class="xzhi" :title="data.W_ZH_TakeRequest4">{{ data.W_ZH_TakeRequest4 }}</div>
+          <div class="xzhi" :title="zhData.W_ZH_TakeRequest4">{{ zhData.W_ZH_TakeRequest4 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鍙栬揣瀹屾垚(鍐�):</div>
-          <div class="xzhi" :title="data.W_ZH_TakeFinish4">{{ data.W_ZH_TakeFinish4 }}</div>
+          <div class="xzhi" :title="zhData.W_ZH_TakeFinish4">{{ zhData.W_ZH_TakeFinish4 || '-' }}</div>
         </div>
       </div>
+    </div>
+
+    <!-- 鏂板锛氬爢鍨涙満褰撳墠鍒楁枃瀛楁樉绀� -->
+    <div id="zh-nowcolumn" :class="{ 'abnormal-column': zhData.R_ZH_Status !== '姝e父' }">
+      <div>闃荤剨鍫嗗灈鏈哄綋鍓嶆墍鍦ㄥ垪:
+        <span :title="zhData.R_ZH_Column">{{ zhData.R_ZH_Column || '鏈煡' }}</span>
+      </div>
+    </div>
+    
+    <!-- 鏂板锛氬垪鏂规牸灞曠ず鍖哄煙 -->
+    <div class="zh-column-container" :class="{ 'pp-status-abnormal': zhData.R_ZH_Status !== '姝e父' }">
+      <!-- 涓婃柟1-24鍒� -->
+      <div class="column-grid-container">
+        <div 
+          v-for="num in 28" 
+          :key="num" 
+          class="column-grid-item"
+          :class="{ 'active': num == zhData.R_ZH_Column }"
+          :title="`鍒楀彿: ${num}`"
+        >
+          {{ num }}
+        </div>
+      </div>
+      
     </div>
   </div>
 </template>
 
 <script>
-import { ref, nextTick } from "vue";
+import { ref, nextTick, watch, onUnmounted } from "vue";
 import { useStore } from "vuex";
 import { onMounted } from "vue";
 
@@ -180,18 +215,20 @@
       xuan: 0
     };
   },
-  methods: {
-  },
   setup() {
     const store = useStore();
-    const data = ref({});
+    const zhData = ref({});
 
-    // 1. 瀹氫箟鏅�氬瓧娈电殑鏄犲皠瑙勫垯
-    const statusMap = {
+    const UPDATE_DELAY = 300;
+    let updateTimer = null;
+
+    // ZH鏁版嵁鏄犲皠瑙勫垯锛堟柊澧炲垪鍙峰鐞嗭級
+    const zhStatusMap = {
       R_ZH_Status: {
-        1: "姝e父",
-        2: "鏁呴殰",
-        3: "鎬ュ仠",
+        0: "姝e父",
+        1: "鏁呴殰",
+        2: "鎬ュ仠",
+        3: "鏈煡"
       },
       R_ZH_AutoStatus: {
         0: "缁翠慨",
@@ -220,77 +257,121 @@
         2: "涓墭鐩�(2)",
         3: "澶ф墭鐩�(3)",
         4: "鐗瑰ぇ鎵樼洏(4)",
+      },
+      // 鏂板锛氬垪鍙锋槧灏勫鐞�
+      R_ZH_Column: (val) => val !== undefined ? val : "鏈煡"
+    };
+
+    // ZH瀛楁鍒嗙粍
+    const zhFieldGroups = {
+      permissionFields: {
+        keys: ["R_ZH_IsCanPut1", "R_ZH_IsCanTake1", "R_ZH_IsCanPut2", "R_ZH_IsCanTake2", 
+               "R_ZH_IsCanPut3", "R_ZH_IsCanTake3", "R_ZH_IsCanPut4", "R_ZH_IsCanTake4"],
+        map: { true: "鏄�", false: "鍚�" }
+      },
+      requestFields: {
+        keys: ["W_ZH_PutRequest1", "W_ZH_TakeRequest1", "W_ZH_PutRequest2", "W_ZH_TakeRequest2", 
+               "W_ZH_PutRequest3", "W_ZH_TakeRequest3", "W_ZH_PutRequest4", "W_ZH_TakeRequest4"],
+        map: { true: "鏄�", false: "鍚�" }
+      },
+      finishFields: {
+        keys: ["W_ZH_PutFinish1", "W_ZH_TakeFinish1", "W_ZH_PutFinish2", "W_ZH_TakeFinish2", 
+               "W_ZH_PutFinish3", "W_ZH_TakeFinish3", "W_ZH_PutFinish4", "W_ZH_TakeFinish4"],
+        map: { true: "鏄�", false: "鍚�" }
+      },
+      palletTypeFields: {
+        keys: ["R_ZH_TakePalletType1", "R_ZH_TakePalletType2", "R_ZH_TakePalletType3", "R_ZH_TakePalletType4",
+               "W_ZH_PutPalletType1", "W_ZH_PutPalletType2", "W_ZH_PutPalletType3", "W_ZH_PutPalletType4"],
+        map: { "-1": "绌虹(-1)", 1: "灏忔墭鐩�(1)", 2: "涓墭鐩�(2)", 3: "澶ф墭鐩�(3)", 4: "鐗瑰ぇ鎵樼洏(4)" }
       }
     };
 
-    // 2. 瀹氫箟闇�瑕佸叡鐢ㄦ槧灏勮鍒欑殑瀛楁鍒楄〃鍜屽搴旂殑鏄犲皠瑙勫垯
-    const booleanFields = [
-      "R_ZH_IsCanPut1", "R_ZH_IsCanTake1",
-      "W_ZH_PutRequest1", "W_ZH_PutFinish1",
-      "W_ZH_TakeRequest1", "W_ZH_TakeFinish1",
-      "R_ZH_IsCanPut2", "R_ZH_IsCanTake2",
-      "W_ZH_PutRequest2", "W_ZH_PutFinish2",
-      "W_ZH_TakeRequest2", "W_ZH_TakeFinish2",
-      "R_ZH_IsCanPut3", "R_ZH_IsCanTake3",
-      "W_ZH_PutRequest3", "W_ZH_PutFinish3",
-      "W_ZH_TakeRequest3", "W_ZH_TakeFinish3",
-      "R_ZH_IsCanPut4", "R_ZH_IsCanTake4",
-      "W_ZH_PutRequest4", "W_ZH_PutFinish4",
-      "W_ZH_TakeRequest4", "W_ZH_TakeFinish4",
-    ];
-    const booleanMap = {
-      true: "鏄�",
-      false: "鍚�"
+    // 澶勭悊ZH鍘熷鏁版嵁锛堝寘鍚垪鍙峰鐞嗭級
+    const processZHData = (rawData) => {
+      if (!rawData) return {};
+      const processedData = { ...rawData };
+
+      // 澶勭悊鏍稿績鐘舵�佸瓧娈�
+      Object.keys(zhStatusMap).forEach(key => {
+        if (processedData.hasOwnProperty(key)) {
+          const mapper = zhStatusMap[key];
+          processedData[key] = typeof mapper === 'function'
+            ? mapper(processedData[key])
+            : (mapper[processedData[key]] || processedData[key]);
+        }
+      });
+
+      // 澶勭悊鍒嗙粍瀛楁
+      Object.values(zhFieldGroups).forEach(group => {
+        group.keys.forEach(key => {
+          if (processedData.hasOwnProperty(key)) {
+            processedData[key] = group.map[processedData[key]] || processedData[key];
+          }
+        });
+      });
+
+      return processedData;
     };
 
-    // 澶勭悊鏁版嵁锛屽厛澶勭悊鏅�氭槧灏勶紝鍐嶆壒閲忓鐞嗗叡鐢ㄦ槧灏勭殑瀛楁
-    const processData = (rawData) => {
-      if (!rawData) return {};
-      const processed = { ...rawData };
+    // 寤惰繜鏇存柊ZH鏁版嵁
+    const delayedUpdateZHData = (newRawData) => {
+      if (updateTimer) {
+        clearTimeout(updateTimer);
+      }
 
-      // 澶勭悊鏅�氬瓧娈垫槧灏�
-      Object.keys(statusMap).forEach(key => {
-        if (processed.hasOwnProperty(key)) {
-          const map = statusMap[key];
-          processed[key] = map[processed[key]] || processed[key];
+      updateTimer = setTimeout(() => {
+        if (newRawData && newRawData.R_ZH_Status !== undefined) {
+          zhData.value = processZHData(newRawData);
+          
+          // 鏇存柊鏍峰紡
+          nextTick(() => {
+            const valueElements = document.getElementsByClassName("xzhi");
+            for (let i = 0; i < valueElements.length; i++) {
+              if (valueElements[i].innerHTML === "鏄�") {
+                valueElements[i].style.color = "yellow";
+              } else if (valueElements[i].innerHTML === "鍚�") {
+                valueElements[i].style.color = "red";
+              }
+            }
+          });
         }
-      });
-
-      // 鎵归噺澶勭悊鍏辩敤鏄犲皠瑙勫垯鐨勫瓧娈�
-      booleanFields.forEach(key => {
-        if (processed.hasOwnProperty(key)) {
-          processed[key] = booleanMap[processed[key]] || processed[key];
-        }
-      });
-
-      return processed;
+      }, UPDATE_DELAY);
     };
 
     onMounted(() => {
-      nextTick(() => {
-        setInterval(() => {
-          const rawData = store.state.homedata;
-          data.value = processData(rawData);
-          const xian = document.getElementsByClassName("xzhi");
-          for (let i = 0; i < xian.length; i++) {
-            if (xian[i].innerHTML === "鏄�") {
-              xian[i].style.color = "yellow";
-            } else if (xian[i].innerHTML === "鍚�") {
-              xian[i].style.color = "red";
-            }
+      const initialData = store.state.homedata;
+      if (initialData && initialData.R_ZH_Status !== undefined) {
+        zhData.value = processZHData(initialData);
+      }
+
+      const unwatch = watch(
+        () => store.state.homedata,
+        (newData) => {
+          if (newData && newData.R_ZH_Status !== undefined) {
+            delayedUpdateZHData(newData);
           }
-        });
+        },
+        { deep: true }
+      );
+
+      // 缁勪欢鍗歌浇鏃舵竻鐞�
+      onUnmounted(() => {
+        unwatch();
+        if (updateTimer) {
+          clearTimeout(updateTimer);
+        }
       });
     });
 
     return {
-      data,
+      zhData
     };
   }
 };
 </script>
 
 <style scoped>
+/* 鍘熸湁鏍峰紡淇濇寔涓嶅彉 */
 .ding {
   float: left;
   width: 20px;
@@ -427,4 +508,76 @@
   margin-left: 1.7%;
   border-radius: 10px;
 }
-</style>
+
+/* 鏂板锛歓H鍫嗗灈鏈哄綋鍓嶅垪鏍峰紡 */
+#zh-nowcolumn {
+  width: 100%;
+  height: 70px;
+  float: left;
+  display: flex;        
+  justify-content: center; 
+  align-items: center;     
+  font-size: 1.5cqw;      
+  font-weight: bold; 
+  color: #00ff4c;
+}
+
+/* 寮傚父鐘舵�佹枃瀛楀彉鑹� */
+#zh-nowcolumn.abnormal-column {
+  color: red !important;
+}
+#zh-nowcolumn.abnormal-column span {
+  color: red !important;
+}
+
+/* 鍒楀鍣ㄦ牱寮� */
+.zh-column-container {
+  width: 95%;
+  margin: 0 auto;
+  position: relative;
+  clear: both;
+  padding-top: 15px;
+}
+
+/* 鏂规牸瀹瑰櫒鏍峰紡 */
+.column-grid-container {
+  width: 100%;
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  gap: 2px;
+  position: relative;
+  z-index: 2;
+  margin-bottom: 10px;
+  padding: 0 2px;
+}
+
+/* 鏂规牸鏍峰紡 */
+.column-grid-item {
+  flex: 1;
+  min-width: 24px;
+  max-width: 60px;
+  height: 30px;
+  border: 1px solid #fff;
+  border-radius: 8px 8px 0 0;
+  color: white;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  font-size: clamp(8px, 1vw, 14px);
+  box-sizing: border-box;
+  transition: background-color 0.3s ease;
+}
+
+/* 褰撳墠鍒楅珮浜� */
+.column-grid-item.active {
+  background-color: green;
+  font-weight: bold;
+}
+
+/* 寮傚父鐘舵�佷笅褰撳墠鍒楃孩鑹查珮浜� */
+.pp-status-abnormal .column-grid-item.active {
+  background-color: red !important;
+}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3