From 1c631b345aae30bb6aa7e9dc8d856a0f40d5f1e3 Mon Sep 17 00:00:00 2001
From: liulijun <liulijun@hnkhzn.com>
Date: 星期五, 20 三月 2026 10:49:08 +0800
Subject: [PATCH] 修复货位平面图锁定状态的显示

---
 项目代码/WMS/WMSClient/src/views/Index.vue |   86 ++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 81 insertions(+), 5 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/Index.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/Index.vue"
index a882a94..1050623 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/Index.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/Index.vue"
@@ -191,12 +191,29 @@
       destroy-on-close
       size="40%"
     >
-      <Message :list="messageList"></Message>
+      <div style="margin-bottom: 20px;">
+        <el-button type="danger" @click="clearAllMessages">鍏ㄩ儴娓呴櫎</el-button>
+      </div>
+      <Message :list="messageList" @delete-message="handleDeleteMessage"></Message>
     </el-drawer>
   </div>
 </template>
 <style lang="less" scoped>
 @import "./index/index.less";
+
+/* 涓烘秷鎭垪琛ㄧ殑drawer娣诲姞鍦嗚 */
+:deep(.el-drawer__header) {
+  padding: 20px;
+}
+
+:deep(.el-drawer__body) {
+  padding: 0 20px 20px 20px;
+}
+
+:deep(.el-drawer) {
+  border-radius: 12px 0 0 12px !important;
+  overflow: hidden;
+}
 </style>
 <script>
 import loading from "@/components/basic/RouterLoading";
@@ -297,7 +314,6 @@
     const theme = ref("blue2");
     const menuOptions = ref([]);
     const permissionInited = ref(false);
-    const messageList = reactive([]);
     let _config = getCurrentInstance().appContext.config.globalProperties;
     let router = useRouter();
     const toggleLeft = () => {
@@ -316,7 +332,8 @@
 
     const handleMessage = (e) => {
       let data = JSON.parse(e.data);
-      messageList.push(data);
+      // 浣跨敤store鐨刟ddMessage mutation娣诲姞娑堟伅
+      store.commit('addMessage', data);
       ElNotification({
         title: data.title,
         message: h("i", { style: "color: teal" }, data.message),
@@ -626,7 +643,8 @@
         //寮�鍚秷鎭帹閫侊紙main.js涓缃槸鍚﹀紑鍚痵ignalR锛�2022.05.05
         if (_config.$global.signalR) {
           MessageConfig(http, (result) => {
-            messageList.unshift(result);
+            // 浣跨敤store鐨刟ddMessage mutation娣诲姞娑堟伅
+            store.commit('addMessage', result);
             //    console.log(result)
           });
         }
@@ -654,6 +672,59 @@
       });
     };
     created();
+    // 澶勭悊鍒犻櫎鍗曟潯娑堟伅
+    const handleDeleteMessage = ({ item, index }) => {
+      // 浠庡叏灞�娑堟伅鍒楄〃涓垹闄よ娑堟伅
+      if (_config.$global.messageList && Array.isArray(_config.$global.messageList)) {
+        _config.$global.messageList = _config.$global.messageList.filter(msg => msg.id !== item.id);
+      }
+      
+      // 浠巗tore涓垹闄よ娑堟伅
+      if (store) {
+        // 浣跨敤mutation鍒犻櫎鍗曚釜娑堟伅
+        store.commit('removeMessage', item.id);
+      }
+      
+      // 灏嗗垹闄ょ殑娑堟伅ID娣诲姞鍒癿essageDeleted鏁扮粍锛岀敤浜庨�氱煡缁勪欢閲嶇疆瀹氭椂鍣�
+      if (_config.$global.messageDeleted && Array.isArray(_config.$global.messageDeleted)) {
+        _config.$global.messageDeleted.push(item.id);
+      }
+      
+      // 鏄剧ず鎴愬姛鎻愮ず
+      _config.$message.success('娑堟伅宸插垹闄�');
+      
+      // 寮哄埗缁勪欢鏇存柊锛岀‘淇濇秷鎭垪琛ㄧ珛鍗冲埛鏂�
+      proxy.$nextTick(() => {
+        // 瑙﹀彂閲嶆覆鏌�
+        _config.$forceUpdate && _config.$forceUpdate();
+      });
+    };
+    
+    // 娓呯悊鍏ㄩ儴娑堟伅
+    const clearAllMessages = () => {
+      // 鑾峰彇鎵�鏈夊綋鍓嶆秷鎭殑ID锛岀敤浜庨噸缃畾鏃跺櫒
+      const messageIds = _config.$global.messageList.map(msg => msg.id);
+      
+      // 鍏堟竻绌簊tore涓殑娑堟伅鍒楄〃
+      store.commit('clearMessages');
+      // 鐒跺悗娓呯┖鍏ㄥ眬娑堟伅鍒楄〃锛屼娇鐢ㄩ噸鏂拌祴鍊肩殑鏂瑰紡纭繚鍝嶅簲寮忔洿鏂�
+      _config.$global.messageList = [];
+      
+      // 灏嗘墍鏈夊垹闄ょ殑娑堟伅ID娣诲姞鍒癿essageDeleted鏁扮粍锛岀敤浜庨�氱煡缁勪欢閲嶇疆瀹氭椂鍣�
+      if (_config.$global.messageDeleted && Array.isArray(_config.$global.messageDeleted)) {
+        _config.$global.messageDeleted.push(...messageIds);
+      }
+      
+      // 鏄剧ず鎴愬姛鎻愮ず
+      _config.$message.success('娑堟伅宸插叏閮ㄦ竻闄�');
+      
+      // 寮哄埗缁勪欢鏇存柊锛岀‘淇濇秷鎭垪琛ㄧ珛鍗冲埛鏂�
+      proxy.$nextTick(() => {
+        // 瑙﹀彂閲嶆覆鏌�
+        _config.$forceUpdate && _config.$forceUpdate();
+      });
+    };
+
     return {
       menuWidth,
       isCollapse,
@@ -681,12 +752,17 @@
       to,
       toggleLeft,
       messageModel,
-      messageList,
+      // 浠庡叏灞�瀵硅薄涓幏鍙栨秷鎭垪琛�
+      get messageList() {
+        return _config.$global.messageList;
+      },
       contextMenuVisible,
       visibleItem,
       closeTabsMenu,
       closeTabs,
       currentMenuId,
+      clearAllMessages,
+      handleDeleteMessage,
     };
   },
   /**

--
Gitblit v1.9.3