From 35b1af99c388b5f03b8bf8de53852e5b5e9e60c4 Mon Sep 17 00:00:00 2001
From: liulijun <liulijun@hnkhzn.com>
Date: 星期二, 31 三月 2026 14:08:21 +0800
Subject: [PATCH] 调整了货位详细信息悬浮窗的显示位置

---
 项目代码/WMS/WMSClient/src/extension/taskinfo/task.js |  375 ++++++++++++++---------------------------------------
 1 files changed, 101 insertions(+), 274 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/taskinfo/task.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/taskinfo/task.js"
index 495f876..a14069a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/taskinfo/task.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/taskinfo/task.js"
@@ -2,22 +2,22 @@
 //姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
 import gridHeader from './extend/relocationTask.vue'
 let extension = {
-    components: {
-      //鏌ヨ鐣岄潰鎵╁睍缁勪欢
-      gridHeader: gridHeader,
-      gridBody: '',
-      gridFooter: '',
-      //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
-      modelHeader: '',
-      modelBody: '',
-      modelFooter: ''
-    },
-    tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
-    buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
-    methods: {
-       //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
-      onInit() {  
-        let TaskHandCancelBtn = this.buttons.find(x => x.value == 'TaskHandCancel');
+  components: {
+    //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+    gridHeader: gridHeader,
+    gridBody: '',
+    gridFooter: '',
+    //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+    modelHeader: '',
+    modelBody: '',
+    modelFooter: ''
+  },
+  tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+  buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+  methods: {
+    //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+    onInit() {
+      let TaskHandCancelBtn = this.buttons.find(x => x.value == 'TaskHandCancel');
       if (TaskHandCancelBtn) {
         TaskHandCancelBtn.onClick = function () {
           let rows = this.$refs.table.getSelected();
@@ -25,7 +25,7 @@
           if (rows.length > 1) return this.$error("璇烽�夋嫨涓�鏉℃暟鎹�!");
           var param = rows[0].taskNum;
           this.http
-            .post("api/Task/TaskCancel?taskNum="+param, "鏁版嵁澶勭悊涓�...")
+            .post("api/Task/TaskCancel?taskNum=" + param, "鏁版嵁澶勭悊涓�...")
             .then((x) => {
               if (x.status) {
                 this.$Message.success('浠诲姟鍙栨秷鎴愬姛.');
@@ -39,53 +39,53 @@
       let TaskHandCompletedBtn = this.buttons.find(x => x.value == 'TaskHandCompleted');
       if (TaskHandCompletedBtn) {
         TaskHandCompletedBtn.onClick = function () {
-          this.$confirm("鏄惁纭瀹屾垚浠诲姟","鎵嬪姩浠诲姟瀹屾垚璀﹀憡",{
-              confirmButtonText: "纭畾",
-              cancelButtonText: "鍙栨秷",
-              type: "warning",
-              center: true,
-              }).then(() => {
-                let rows = this.$refs.table.getSelected();
-                if (rows.length == 0) return this.$error("璇烽�夋嫨鏁版嵁!");
-                if (rows.length > 1) return this.$error("璇烽�夋嫨涓�鏉℃暟鎹�!");
-                var param = rows[0].taskNum;
-                this.http
-                .post("api/Task/TaskCompleted?taskNum="+param, "")
-                .then((x) => {
-                    if (x.status) {
-                    this.$Message.success('浠诲姟鎵嬪姩瀹屾垚');
-                    this.refresh();
-                  } else {
-                    return this.$error(x.message);
-                  }
-                });
+          this.$confirm("鏄惁纭瀹屾垚浠诲姟", "鎵嬪姩浠诲姟瀹屾垚璀﹀憡", {
+            confirmButtonText: "纭畾",
+            cancelButtonText: "鍙栨秷",
+            type: "warning",
+            center: true,
+          }).then(() => {
+            let rows = this.$refs.table.getSelected();
+            if (rows.length == 0) return this.$error("璇烽�夋嫨鏁版嵁!");
+            if (rows.length > 1) return this.$error("璇烽�夋嫨涓�鏉℃暟鎹�!");
+            var param = rows[0].taskNum;
+            this.http
+              .post("api/Task/TaskCompleted?taskNum=" + param, "")
+              .then((x) => {
+                if (x.status) {
+                  this.$Message.success('浠诲姟鎵嬪姩瀹屾垚');
+                  this.refresh();
+                } else {
+                  return this.$error(x.message);
+                }
               });
+          });
         }
       }
       let ResendTaskBtn = this.buttons.find(x => x.value == 'ResendTask');
       if (ResendTaskBtn) {
         ResendTaskBtn.onClick = function () {
-          this.$confirm("鏄惁纭閲嶆柊涓嬪彂浠诲姟","閲嶆柊涓嬪彂浠诲姟璀﹀憡",{
-              confirmButtonText: "纭畾",
-              cancelButtonText: "鍙栨秷",
-              type: "warning",
-              center: true,
-              }).then(() => {
-                let rows = this.$refs.table.getSelected();
-                if (rows.length == 0) return this.$error("璇烽�夋嫨鏁版嵁!");
-                if (rows.length > 1) return this.$error("璇烽�夋嫨涓�鏉℃暟鎹�!");
-                var param = rows[0].taskNum;
-                this.http
-                .post("api/Task/ResendTask?taskNum="+param, "")
-                .then((x) => {
-                    if (x.status) {
-                    this.$Message.success('浠诲姟閲嶆柊涓嬪彂');
-                    this.refresh();
-                  } else {
-                    return this.$error(x.message);
-                  }
-                });
+          this.$confirm("鏄惁纭閲嶆柊涓嬪彂浠诲姟", "閲嶆柊涓嬪彂浠诲姟璀﹀憡", {
+            confirmButtonText: "纭畾",
+            cancelButtonText: "鍙栨秷",
+            type: "warning",
+            center: true,
+          }).then(() => {
+            let rows = this.$refs.table.getSelected();
+            if (rows.length == 0) return this.$error("璇烽�夋嫨鏁版嵁!");
+            if (rows.length > 1) return this.$error("璇烽�夋嫨涓�鏉℃暟鎹�!");
+            var param = rows[0].taskNum;
+            this.http
+              .post("api/Task/ResendTask?taskNum=" + param, "")
+              .then((x) => {
+                if (x.status) {
+                  this.$Message.success('浠诲姟閲嶆柊涓嬪彂');
+                  this.refresh();
+                } else {
+                  return this.$error(x.message);
+                }
               });
+          });
         }
       }
       let relocationBtn = this.buttons.find(x => x.value == 'Relocation');
@@ -94,221 +94,48 @@
           this.$refs.gridHeader.open();
         }
       }
-      
-      // 鍒濆鍖栦换鍔$姸鎬佹鏌ュ畾鏃跺櫒
-      this.taskStatusMap = {}; // 瀛樺偍浠诲姟鐘舵�佸紑濮嬫椂闂�
-      this.taskTimeoutMinutes = 1; // 浠诲姟瓒呮椂鏃堕棿锛屽崟浣嶄负鍒嗛挓
-      this.checkTaskStatusTimer = setInterval(() => {
-        this.checkTaskStatus();
-      }, 1000); // 姣�1绉掓鏌ヤ竴娆★紝鎻愰珮妫�鏌ョ簿搴︼紝鍑忓皯寤惰繜
-      },
-      
-      // 妫�鏌ヤ换鍔$姸鎬�
-      checkTaskStatus() {
-        // 鑾峰彇褰撳墠鎵�鏈変换鍔℃暟鎹�
-        const taskData = this.$refs.table?.rowData || this.$refs.table?.tableData || [];
-        const now = new Date();
-        
-        // 鑾峰彇鍏ㄥ眬瀵硅薄鍜宻tore
-        const globalObj = this.$global || window.$global || {};
-        const store = this.$store || window.$store;
-        
-        // 澶勭悊娑堟伅鍒犻櫎閫昏緫锛岄噸缃搴斾换鍔$殑瀹氭椂鍣�
-        const deletedMessages = globalObj.messageDeleted || [];
-        
-        if (deletedMessages.length > 0) {
-          const storeMessageList = store?.state?.messageList || [];
-          
-          // 閬嶅巻琚垹闄ょ殑娑堟伅ID锛岄噸缃搴斾换鍔$殑瀹氭椂鍣�
-          deletedMessages.forEach(deletedId => {
-            const deletedMessage = storeMessageList.find(msg => msg.id === deletedId);
-            if (deletedMessage?.businessType === 'task_timeout' && deletedMessage.taskNum && this.taskStatusMap[deletedMessage.taskNum]) {
-              this.taskStatusMap[deletedMessage.taskNum] = now;
-            }
-          });
-          
-          // 娓呯┖宸插鐞嗙殑鍒犻櫎娑堟伅鍒楄〃
-          globalObj.messageDeleted = [];
-        }
-        
-        // 鑾峰彇褰撳墠鎵�鏈変换鍔″彿鍜岀姸鎬�
-        const currentTaskStatuses = {};
-        taskData.forEach(task => {
-          currentTaskStatuses[task.taskNum] = task.taskStatus;
-        });
-        
-        // 妫�鏌ヤ换鍔$姸鎬�
-        taskData.forEach(task => {
-          if (task.taskStatus === 210) {
-            // 鍫嗗灈鏈烘墽琛屼腑鐘舵��
-            if (!this.taskStatusMap[task.taskNum]) {
-              this.taskStatusMap[task.taskNum] = now;
-            } else {
-              // 璁$畻鎸佺画鏃堕棿锛堝垎閽燂級
-              const duration = (now - this.taskStatusMap[task.taskNum]) / 60000;
-              if (duration >= this.taskTimeoutMinutes) {
-                this.sendTaskWarningMessage(task, duration);
-                delete this.taskStatusMap[task.taskNum];
-              }
-            }
-          } else {
-            // 浠诲姟鐘舵�佸凡鏀瑰彉锛屾竻闄よ褰�
-            delete this.taskStatusMap[task.taskNum];
-          }
-        });
-        
-        // 娓呴櫎宸茶В鍐崇殑浠诲姟瓒呮椂娑堟伅
-        this.clearResolvedTaskMessages(currentTaskStatuses);
-      },
-      
-      // 娓呴櫎宸茶В鍐崇殑浠诲姟瓒呮椂娑堟伅
-      clearResolvedTaskMessages(currentTaskStatuses) {
-        // 鑾峰彇鍏ㄥ眬瀵硅薄鍜宻tore
-        const globalObj = this.$global || window.$global || {};
-        const store = this.$store || window.$store;
-        
-        // 鑾峰彇鎵�鏈夋秷鎭垪琛�
-        const globalMessageList = globalObj.messageList || [];
-        const storeMessageList = store?.state?.messageList || [];
-        
-        // 鍚堝苟鎵�鏈夋秷鎭紝鎵惧嚭闇�瑕佹竻闄ょ殑浠诲姟瓒呮椂娑堟伅
-        const allMessages = [...globalMessageList, ...storeMessageList];
-        const taskTimeoutMessages = allMessages.filter(msg => msg.businessType === 'task_timeout');
-        
-        // 閬嶅巻鎵�鏈変换鍔¤秴鏃舵秷鎭�
-        taskTimeoutMessages.forEach(msg => {
-          const taskNum = msg.taskNum;
-          // 妫�鏌ヨ浠诲姟鏄惁浠嶇劧澶勪簬鍫嗗灈鏈烘墽琛屼腑鐘舵��
-          if (currentTaskStatuses[taskNum] && currentTaskStatuses[taskNum] !== 210) {
-            // 浠诲姟宸蹭笉鍐嶅浜庡爢鍨涙満鎵ц涓姸鎬侊紝娓呴櫎璇ユ秷鎭�
-            this.handleDeleteTaskMessage(msg);
-          }
-        });
-      },
-      
-      // 澶勭悊鍒犻櫎鍗曚釜浠诲姟娑堟伅
-      handleDeleteTaskMessage(message) {
-        // 鑾峰彇鍏ㄥ眬瀵硅薄鍜宻tore
-        const globalObj = this.$global || window.$global || {};
-        const store = this.$store || window.$store;
-        
-        // 浠庡叏灞�娑堟伅鍒楄〃涓垹闄よ娑堟伅
-        if (globalObj.messageList) {
-          const index = globalObj.messageList.findIndex(msg => msg.id === message.id);
-          if (index !== -1) {
-            globalObj.messageList.splice(index, 1);
-          }
-        }
-        
-        // 浠巗tore涓垹闄よ娑堟伅
-        if (store) {
-          store.commit('removeMessage', message.id);
-        }
-      },
-      
-      // 鍙戦�佷换鍔¤鍛婃秷鎭�
-      sendTaskWarningMessage(task, duration) {
-        // 鍒涘缓璀﹀憡娑堟伅
-        const warningMessage = {
-          id: Date.now(),
-          title: '浠诲姟寮傚父璀﹀憡',
-          message: `浠诲姟鍙� ${task.taskNum} 宸插湪鍫嗗灈鏈烘墽琛屼腑鐘舵�佽秴杩�${Math.round(duration)}鍒嗛挓锛岃鍙婃椂澶勭悊锛乣,
-          type: 'warning',
-          businessType: 'task_timeout',
-          taskNum: task.taskNum,
-          createTime: new Date().toLocaleString()
-        };
-        
-        // 鑾峰彇鍏ㄥ眬瀵硅薄鍜宻tore锛屾鏌ユ槸鍚﹀瓨鍦ㄧ浉鍚岀殑璀﹀憡娑堟伅
-        const globalObj = this.$global || window.$global || {};
-        const store = this.$store || window.$store;
-        const globalMessageList = globalObj.messageList || [];
-        const storeMessageList = store?.state?.messageList || [];
-        
-        // 妫�鏌ユ槸鍚﹀凡缁忓瓨鍦ㄧ浉鍚岀殑浠诲姟瓒呮椂璀﹀憡
-        const hasExistingWarning = [...globalMessageList, ...storeMessageList].some(msg => 
-          msg.businessType === 'task_timeout' && msg.taskNum === task.taskNum
-        );
-        
-        if (hasExistingWarning) return;
-        
-        // 鍙戦�佹秷鎭埌娑堟伅鍒楄〃
-        try {
-          // 娣诲姞娑堟伅鍒皊tore
-          const $store = this.$store || window.$store;
-          if ($store) {
-            $store.commit('addMessage', warningMessage);
-          }
-          
-          // 娣诲姞娑堟伅鍒板叏灞�娑堟伅鍒楄〃
-          if (globalObj.messageList) {
-            globalObj.messageList.push(warningMessage);
-          }
-          
-          // 鏄剧ず璀﹀憡瀵硅瘽妗嗭紝浼樺厛浣跨敤$alert
-          // const $global = this.$global || window.$global;
-          // const alertOptions = {
-          //   confirmButtonText: '纭畾',
-          //   type: warningMessage.type,
-          //   closeOnClickModal: false,
-          //   closeOnPressEscape: false,
-          //   showCancelButton: false
-          // };
-          
-          // if (this.$alert || window.$alert) {
-          //   const $alert = this.$alert || window.$alert;
-          //   $alert(warningMessage.message, warningMessage.title, alertOptions);
-          // } else if (this.$confirm || window.$confirm) {
-          //   const $confirm = this.$confirm || window.$confirm;
-          //   $confirm(warningMessage.message, warningMessage.title, alertOptions);
-          // } else {
-          //   // 浣跨敤娴忚鍣ㄥ師鐢焌lert浣滀负澶囬��
-          //   alert(`${warningMessage.title}: ${warningMessage.message}`);
-          // }
-        } catch (error) {
-          // 鍑洪敊鏃朵娇鐢ㄦ祻瑙堝櫒鍘熺敓alert浣滀负鏈�缁堝閫�
-          try {
-            alert(`浠诲姟寮傚父璀﹀憡: 浠诲姟鍙� ${task.taskNum} 宸插湪鍫嗗灈鏈烘墽琛屼腑鐘舵�佽秴杩�${Math.round(duration)}鍒嗛挓锛岃鍙婃椂澶勭悊锛乣);
-          } catch (e) {
-            // 蹇界暐鎵�鏈夐敊璇�
-          }
-        }
-      },
-      onInited() {
-        //妗嗘灦鍒濆鍖栭厤缃悗
-        //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
-        //this.detailOptions.columns.forEach(column=>{ });
-      },
-      searchBefore(param) {
-        //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
-        //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
-        return true;
-      },
-      searchAfter(result) {
-        // 鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
-        return true;
-      },
-      addBefore(formData) {
-        //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
-        return true;
-      },
-      updateBefore(formData) {
-        //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
-        return true;
-      },
-      rowClick({ row, column, event }) {
-        //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
-        this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
-      },
-      modelOpenAfter(row) {
-        //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
-        //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
-        //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
-        //(3)this.editFormFields.瀛楁='xxx';
-        //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
-        //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
-      }
+
+      // 涓嶅啀闇�瑕佹敞鍐屼换鍔℃暟鎹簮锛屽叏灞�浠诲姟瓒呮椂鏈嶅姟宸叉敼涓虹洿鎺ヤ粠API鑾峰彇鏁版嵁
+    },
+    onInited() {
+      //妗嗘灦鍒濆鍖栭厤缃悗
+      //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
+      //this.detailOptions.columns.forEach(column=>{ });
+    },
+    searchBefore(param) {
+      //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
+      //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
+      return true;
+    },
+    searchAfter(result) {
+      // 鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
+      return true;
+    },
+    addBefore(formData) {
+      //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
+      return true;
+    },
+    updateBefore(formData) {
+      //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
+      return true;
+    },
+    rowClick({ row, column, event }) {
+      //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
+      this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
+    },
+    modelOpenAfter(row) {
+      //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
+      //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
+      //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
+      //(3)this.editFormFields.瀛楁='xxx';
+      //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
+      //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
+    },
+    
+    // 缁勪欢閿�姣佹椂娓呯悊璧勬簮
+    onDestroyed() {
+      // 涓嶅啀闇�瑕佹竻鐞嗕换鍔℃暟鎹簮锛屽叏灞�浠诲姟瓒呮椂鏈嶅姟宸叉敼涓虹洿鎺ヤ粠API鑾峰彇鏁版嵁
     }
-  };
-  export default extension;
-  
\ No newline at end of file
+  }
+};
+export default extension;

--
Gitblit v1.9.3