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