From 3cd89b88edd913530062e13e20e7d6b866fd190f Mon Sep 17 00:00:00 2001
From: helongyang <647556386@qq.com>
Date: 星期五, 19 九月 2025 10:02:43 +0800
Subject: [PATCH] 更新

---
 代码管理/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/AuxiliaryWarehouse.vue |  138 +++++++++++++++++++++++++++++-----------------
 1 files changed, 87 insertions(+), 51 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/AuxiliaryWarehouse.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/AuxiliaryWarehouse.vue"
index 52eb37e..dc53e33 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/AuxiliaryWarehouse.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/AuxiliaryWarehouse.vue"
@@ -1,24 +1,23 @@
 <template>
   <div id="title">
     <div id="bkuang" style="border-top: none">
- 
       <div class="skuang">
         <div class="zhuname">鍏ュ簱8005绔欏彴</div>
         <div class="zhankuang">
           <div class="xname">鏀捐揣瀹屾垚(鍐�):</div>
-          <div class="xzhi" :title="data.W_PutFinish5">{{ data.W_PutFinish5 }}</div>
+          <div class="xzhi" :title="flData.W_PutFinish5">{{ flData.W_PutFinish5 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鍏ュ簱鍒颁綅鎸囦护(璇�):</div>
-          <div class="xzhi" :title="data.R_ConveyArrivaled5">{{ data.R_ConveyArrivaled5 }}</div>
+          <div class="xzhi" :title="flData.R_ConveyArrivaled5">{{ flData.R_ConveyArrivaled5 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鍒颁綅鎵樼洏鍙�(璇�):</div>
-          <div class="xzhi" :title="data.R_Barcode5">{{ data.R_Barcode5 }}</div>
+          <div class="xzhi" :title="flData.R_Barcode5">{{ flData.R_Barcode5 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鍒颁綅浠诲姟鍙�(璇�):</div>
-          <div class="xzhi" :title="data.R_TaskNum5">{{ data.R_TaskNum5 }}</div>
+          <div class="xzhi" :title="flData.R_TaskNum5">{{ flData.R_TaskNum5 || '-' }}</div>
         </div> 
       </div>
       
@@ -26,20 +25,19 @@
         <div class="zhuname">鍑哄簱8001绔欏彴</div>
         <div class="zhankuang">
           <div class="xname">鏀捐揣瀹屾垚(鍐�):</div>
-          <div class="xzhi" :title="data.W_PutFinish1">{{ data.W_PutFinish1 }}</div>
+          <div class="xzhi" :title="flData.W_PutFinish1">{{ flData.W_PutFinish1 || '-' }}</div>
         </div>
         <div class="zhankuang">
           <div class="xname">鏄惁鍏佽鏀捐揣(璇�):</div>
-          <div class="xzhi" :title="data.R_IsCanPut">{{ data.R_IsCanPut }}</div>
+          <div class="xzhi" :title="flData.R_IsCanPut">{{ flData.R_IsCanPut || '-' }}</div>
         </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";
 
@@ -49,69 +47,106 @@
       xuan: 0
     };
   },
-  methods: {
-  },
   setup() {
     const store = useStore();
-    const data = ref({});
+    // 浠呭瓨鍌‵L鐩稿叧鏁版嵁
+    const flData = ref({});
 
-    // 1. 瀹氫箟鏅�氬瓧娈电殑鏄犲皠瑙勫垯
-    const statusMap = {
-      
+    // 寤惰繜鏇存柊閰嶇疆锛岃В鍐抽棯鐑侀棶棰�
+    const UPDATE_DELAY = 300; // 300ms寤惰繜锛屽钩琛″疄鏃舵�у拰鐣岄潰绋冲畾鎬�
+    let updateTimer = null;   // 瀹氭椂鍣ㄥ疄渚�
+
+    // FL鏁版嵁鏄犲皠瑙勫垯閰嶇疆
+    const flStatusConfig = {
+      // FL boolean绫诲瀷瀛楁鏄犲皠
+      booleanFields: {
+        keys: [
+          "W_PutFinish5", "W_PutFinish1",
+          "R_IsCanPut", "R_ConveyArrivaled5"
+        ],
+        map: { true: "鏄�", false: "鍚�" }
+      }
     };
 
-    // 2. 瀹氫箟闇�瑕佸叡鐢ㄦ槧灏勮鍒欑殑瀛楁鍒楄〃鍜屽搴旂殑鏄犲皠瑙勫垯
-    const booleanFields = [
-      "W_PutFinish5", "W_PutFinish1",
-      "R_IsCanPut", "R_ConveyArrivaled5",
-    ];
-    const booleanMap = {
-      true: "鏄�",
-      false: "鍚�"
-    };
-
-    // 澶勭悊鏁版嵁锛屽厛澶勭悊鏅�氭槧灏勶紝鍐嶆壒閲忓鐞嗗叡鐢ㄦ槧灏勭殑瀛楁
-    const processData = (rawData) => {
+    // 澶勭悊FL鍘熷鏁版嵁
+    const processFLData = (rawData) => {
       if (!rawData) return {};
       const processed = { ...rawData };
 
-      // 澶勭悊鏅�氬瓧娈垫槧灏�
-      Object.keys(statusMap).forEach(key => {
+      // 澶勭悊boolean绫诲瀷瀛楁
+      flStatusConfig.booleanFields.keys.forEach(key => {
         if (processed.hasOwnProperty(key)) {
-          const map = statusMap[key];
-          processed[key] = map[processed[key]] || processed[key];
-        }
-      });
-
-      // 鎵归噺澶勭悊鍏辩敤鏄犲皠瑙勫垯鐨勫瓧娈�
-      booleanFields.forEach(key => {
-        if (processed.hasOwnProperty(key)) {
-          processed[key] = booleanMap[processed[key]] || processed[key];
+          processed[key] = flStatusConfig.booleanFields.map[processed[key]] || processed[key];
         }
       });
 
       return processed;
     };
 
-    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";
+    // 寤惰繜鏇存柊FL鏁版嵁锛岄伩鍏嶉珮棰戝埛鏂板鑷寸殑闂儊
+    const delayedUpdateFLData = (newRawData) => {
+      if (updateTimer) clearTimeout(updateTimer);
+
+      updateTimer = setTimeout(() => {
+        // 妫�鏌ユ槸鍚﹀寘鍚獸L鐗瑰緛瀛楁
+        const hasFLFields = flStatusConfig.booleanFields.keys.some(key => 
+          newRawData && newRawData[key] !== undefined
+        );
+        
+        if (hasFLFields) {
+          flData.value = processFLData(newRawData);
+          
+          // 鏇存柊鏍峰紡
+          nextTick(() => {
+            const valueElements = document.getElementsByClassName("xzhi");
+            for (let i = 0; i < valueElements.length; i++) {
+              const text = valueElements[i].innerHTML;
+              if (text === "鏄�") {
+                valueElements[i].style.color = "yellow";
+              } else if (text === "鍚�") {
+                valueElements[i].style.color = "red";
+              }
             }
+          });
+        }
+      }, UPDATE_DELAY);
+    };
+
+    onMounted(() => {
+      // 鍒濆鍔犺浇鏁版嵁
+      const initialData = store.state.homedata;
+      const hasFLFields = flStatusConfig.booleanFields.keys.some(key => 
+        initialData && initialData[key] !== undefined
+      );
+      
+      if (hasFLFields) {
+        flData.value = processFLData(initialData);
+      }
+
+      // 鐩戝惉鏁版嵁鍙樺寲锛屽彧澶勭悊FL鏁版嵁
+      const unwatch = watch(
+        () => store.state.homedata,
+        (newData) => {
+          const hasFLFields = flStatusConfig.booleanFields.keys.some(key => 
+            newData && newData[key] !== undefined
+          );
+          
+          if (hasFLFields) {
+            delayedUpdateFLData(newData);
           }
-        });
+        },
+        { deep: true }
+      );
+
+      // 缁勪欢鍗歌浇鏃舵竻鐞嗚祫婧�
+      onUnmounted(() => {
+        unwatch();
+        if (updateTimer) clearTimeout(updateTimer);
       });
     });
 
     return {
-      data,
+      flData
     };
   }
 };
@@ -255,3 +290,4 @@
   border-radius: 10px;
 }
 </style>
+    
\ No newline at end of file

--
Gitblit v1.9.3