| | |
| | | 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(); |
| | | |
| | | // è·åå
¨å±å¯¹è±¡åstore |
| | | 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) { |
| | | // è·åå
¨å±å¯¹è±¡åstore |
| | | 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) { |
| | | // è·åå
¨å±å¯¹è±¡åstore |
| | | 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); |
| | | } |
| | | } |
| | | |
| | | // ä»storeä¸å é¤è¯¥æ¶æ¯ |
| | | 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() |
| | | }; |
| | | |
| | | // è·åå
¨å±å¯¹è±¡åstoreï¼æ£æ¥æ¯å¦åå¨ç¸åçè¦åæ¶æ¯ |
| | | 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 { |
| | | // æ·»å æ¶æ¯å°store |
| | | 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 { |
| | | // // ä½¿ç¨æµè§å¨åçalertä½ä¸ºå¤é |
| | | // alert(`${warningMessage.title}: ${warningMessage.message}`); |
| | | // } |
| | | } catch (error) { |
| | | // åºéæ¶ä½¿ç¨æµè§å¨åçalertä½ä¸ºæç»å¤é |
| | | try { |
| | | alert(`ä»»å¡å¼å¸¸è¦å: ä»»å¡å· ${task.taskNum} å·²å¨å åæºæ§è¡ä¸ç¶æè¶
è¿${Math.round(duration)}åéï¼è¯·åæ¶å¤çï¼`); |
| | | } catch (e) { |
| | | // å¿½ç¥ææé误 |
| | | } |
| | | } |
| | | }, |
| | | onInited() { |
| | | //æ¡æ¶åå§åé
ç½®å |
| | |
| | | return true; |
| | | }, |
| | | searchAfter(result) { |
| | | //æ¥è¯¢åï¼resultè¿åçæ¥è¯¢æ°æ®,å¯ä»¥å¨æ¾ç¤ºå°è¡¨æ ¼åå¤çè¡¨æ ¼çå¼ |
| | | // æ¥è¯¢åï¼resultè¿åçæ¥è¯¢æ°æ®,å¯ä»¥å¨æ¾ç¤ºå°è¡¨æ ¼åå¤çè¡¨æ ¼çå¼ |
| | | return true; |
| | | }, |
| | | addBefore(formData) { |