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/SolderMaskWarehouse.vue | 230 +++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 140 insertions(+), 90 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..6a412b0 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,168 +1,174 @@ <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> + + <!-- 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> @@ -170,7 +176,7 @@ </template> <script> -import { ref, nextTick } from "vue"; +import { ref, nextTick, watch, onUnmounted } from "vue"; import { useStore } from "vuex"; import { onMounted } from "vue"; @@ -180,14 +186,17 @@ xuan: 0 }; }, - methods: { - }, setup() { const store = useStore(); - const data = ref({}); + // 浠呭瓨鍌╖H鏁版嵁锛屼笌鍏朵粬鏁版嵁闅旂 + const zhData = ref({}); - // 1. 瀹氫箟鏅�氬瓧娈电殑鏄犲皠瑙勫垯 - const statusMap = { + // 寤惰繜鏇存柊閰嶇疆锛岃В鍐抽棯鐑侀棶棰� + const UPDATE_DELAY = 300; // 寤惰繜300ms鏇存柊UI + let updateTimer = null; // 瀹氭椂鍣ㄥ疄渚� + + // ZH鏁版嵁鏄犲皠瑙勫垯 + const zhStatusMap = { R_ZH_Status: { 1: "姝e父", 2: "鏁呴殰", @@ -223,68 +232,109 @@ } }; - // 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 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)" } + } }; - // 澶勭悊鏁版嵁锛屽厛澶勭悊鏅�氭槧灏勶紝鍐嶆壒閲忓鐞嗗叡鐢ㄦ槧灏勭殑瀛楁 - const processData = (rawData) => { + // 澶勭悊ZH鍘熷鏁版嵁 + const processZHData = (rawData) => { if (!rawData) return {}; - const processed = { ...rawData }; + const processedData = { ...rawData }; - // 澶勭悊鏅�氬瓧娈垫槧灏� - Object.keys(statusMap).forEach(key => { - if (processed.hasOwnProperty(key)) { - const map = statusMap[key]; - processed[key] = map[processed[key]] || processed[key]; + // 澶勭悊鏍稿績鐘舵�佸瓧娈� + Object.keys(zhStatusMap).forEach(key => { + if (processedData.hasOwnProperty(key)) { + processedData[key] = zhStatusMap[key][processedData[key]] || processedData[key]; } }); - // 鎵归噺澶勭悊鍏辩敤鏄犲皠瑙勫垯鐨勫瓧娈� - booleanFields.forEach(key => { - if (processed.hasOwnProperty(key)) { - processed[key] = booleanMap[processed[key]] || processed[key]; - } + // 澶勭悊鍒嗙粍瀛楁 + Object.values(zhFieldGroups).forEach(group => { + group.keys.forEach(key => { + if (processedData.hasOwnProperty(key)) { + processedData[key] = group.map[processedData[key]] || processedData[key]; + } + }); }); - return processed; + return processedData; + }; + + // 寤惰繜鏇存柊ZH鏁版嵁锛岄伩鍏嶉珮棰戝埛鏂� + const delayedUpdateZHData = (newRawData) => { + if (updateTimer) { + clearTimeout(updateTimer); + } + + updateTimer = setTimeout(() => { + // 鍙鐞嗗寘鍚玓H鐗瑰緛瀛楁鐨勬暟鎹� + 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"; + } + } + }); + } + }, 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); + } + + // 鐩戝惉鏁版嵁鍙樺寲锛屽彧澶勭悊ZH鏁版嵁 + 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 }; } }; -- Gitblit v1.9.3