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