| | |
| | | methods: { |
| | | //ä¸é¢è¿äºæ¹æ³å¯ä»¥ä¿çä¹å¯ä»¥å é¤ |
| | | onInit() { |
| | | // åå§åç©ºææ£æ¥å®æ¶å¨ |
| | | // è®¾ç½®å®æ¶å¨ï¼æ¯60ç§æ£æ¥ä¸æ¬¡ |
| | | this.checkEmptyPalletTimer = setInterval(() => { |
| | | this.checkEmptyPalletWarning(); |
| | | }, 10000); // æ¯10ç§æ£æ¥ä¸æ¬¡ |
| | | |
| | | // åæä»£ç ... |
| | | // let InOrder = this.buttons.find(x => x.value == 'StockOutbound'); |
| | | // if (InOrder) { |
| | | // InOrder.onClick = function () { |
| | |
| | | const daysSinceClosest = Math.ceil(Math.abs((today - closestDate) / (1000 * 60 * 60 * 24))); |
| | | return '<span style="color: #F56C6C">' + daysSinceClosest + "天" + '</span>'; |
| | | } else { |
| | | return '<span style="color: #F56C6C">' + "æ ä¿è´¨æ" + '</span>'; |
| | | // 空æè®°å½ä¼è¿å
¥è¿ä¸ªåæ¯ï¼è¿å"1个"æ"10个"è¿æ ·çå符串 |
| | | // å¨è¿éè®°å½ç©ºææ°é |
| | | const emptyPalletCount = 1; // æ¯æ¡ç©ºæè®°å½ä»£è¡¨1个空æ |
| | | |
| | | // ä¿åå°rowå¯¹è±¡ï¼æ¹ä¾¿åç»checkEmptyPalletWarningæ¹æ³ä½¿ç¨ |
| | | row.emptyPalletCount = emptyPalletCount; |
| | | |
| | | return '<span style="color: #F56C6C">' + emptyPalletCount + "个" + '</span>'; |
| | | } |
| | | |
| | | } |
| | |
| | | }) |
| | | return '<span style="color: #F56C6C">' + sum + row.details[0].unit + '</span>'; |
| | | } else { |
| | | return '<span style="color: #F56C6C">' + "1个" + '</span>'; |
| | | // 空æè®°å½ä¼è¿å
¥è¿ä¸ªåæ¯ï¼è¿å"1个"æ"10个"è¿æ ·çå符串 |
| | | // å¨è¿éè®°å½ç©ºææ°é |
| | | const emptyPalletCount = 1; // æ¯æ¡ç©ºæè®°å½ä»£è¡¨1个空æ |
| | | |
| | | // ä¿åå°rowå¯¹è±¡ï¼æ¹ä¾¿åç»checkEmptyPalletWarningæ¹æ³ä½¿ç¨ |
| | | row.emptyPalletCount = emptyPalletCount; |
| | | |
| | | return '<span style="color: #F56C6C">' + emptyPalletCount + "个" + '</span>'; |
| | | } |
| | | |
| | | } |
| | |
| | | //(3)this.editFormFields.åæ®µ='xxx'; |
| | | //妿éè¦ç»ä¸ææ¡è®¾ç½®é»è®¤å¼ï¼è¯·éåthis.editFormOptionsæ¾å°å段é
置对åºdata屿§çkeyå¼ |
| | | //ç䏿就æè¾åºçï¼console.log(this.editFormOptions) |
| | | }, |
| | | |
| | | // æ£æ¥ç©ºææ°é |
| | | checkEmptyPalletWarning() { |
| | | // è·åå
¨å±å¯¹è±¡å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 === 'pallet_warning' && msg.type === 'warning' |
| | | ); |
| | | |
| | | if (hasExistingWarning) return; |
| | | |
| | | // è·åå½åææåºåæ°æ® |
| | | const stockData = this.$refs.table?.rowData || this.$refs.table?.tableData || []; |
| | | |
| | | // 计ç®ç©ºææ»æ°éï¼åªè®¡ç®proStockAttribute为5çè®°å½ |
| | | let totalEmptyPalletCount = 0; |
| | | |
| | | // éåææåºåè®°å½ï¼ç´¯å ç©ºææ°é |
| | | stockData.forEach(stock => { |
| | | const proStockAttribute = stock.proStockAttribute || stock.ProStockAttribute || 0; |
| | | if (proStockAttribute === 5) { |
| | | // è§£æsumStockçå¼ï¼æåæ°åé¨å |
| | | const sumStocks = stock.sumStocks || stock.sumStock || 0; |
| | | const stockQuantity = typeof sumStocks === 'string' |
| | | ? parseInt(sumStocks.match(/\d+/)?.[0] || 0) |
| | | : parseInt(sumStocks || 0); |
| | | totalEmptyPalletCount += stockQuantity; |
| | | } |
| | | }); |
| | | |
| | | // 空æé¢è¦éå¼ä¸º50个 |
| | | const warningThreshold = 50; |
| | | |
| | | // å¦æç©ºææ»æ°éå°äºéå¼ï¼åéè¦åæ¶æ¯ |
| | | if (totalEmptyPalletCount < warningThreshold) { |
| | | this.sendPalletWarningMessage(totalEmptyPalletCount, warningThreshold); |
| | | } |
| | | }, |
| | | |
| | | // åé空æè¦åæ¶æ¯ |
| | | sendPalletWarningMessage(emptyPalletCount, warningThreshold) { |
| | | // å建è¦åæ¶æ¯ |
| | | const warningMessage = { |
| | | id: Date.now(), |
| | | title: 'ç©ºææ°éé¢è¦', |
| | | message: `æååºç©ºææ°éä¸è¶³ï¼å½åæ»æ°éï¼${emptyPalletCount}ï¼ä½äºé¢è¦éå¼ï¼${warningThreshold}ï¼å»ºè®®åæ¶è¡¥å
ï¼`, |
| | | type: 'warning', |
| | | businessType: 'pallet_warning', |
| | | createTime: new Date().toLocaleString(), |
| | | relatedData: { |
| | | EmptyPalletCount: emptyPalletCount, |
| | | Threshold: warningThreshold |
| | | } |
| | | }; |
| | | |
| | | // è·åå
¨å±å¯¹è±¡åstore |
| | | const globalObj = this.$global || window.$global || {}; |
| | | const store = this.$store || window.$store; |
| | | |
| | | // æ·»å æ¶æ¯å°store |
| | | if (store) { |
| | | store.commit('addMessage', warningMessage); |
| | | } |
| | | |
| | | // æ·»å æ¶æ¯å°å
¨å±æ¶æ¯å表ï¼ç¡®ä¿å表åå¨ |
| | | if (!globalObj.messageList) { |
| | | globalObj.messageList = []; |
| | | } |
| | | globalObj.messageList.push(warningMessage); |
| | | |
| | | // æ¾ç¤ºæç¤ºæ¡ |
| | | // const $alert = this.$alert; |
| | | // const $message = this.$message; |
| | | |
| | | // if ($alert) { |
| | | // $alert(warningMessage.message, warningMessage.title, { |
| | | // confirmButtonText: 'ç¡®å®', |
| | | // type: warningMessage.type, |
| | | // closeOnClickModal: false, |
| | | // closeOnPressEscape: false, |
| | | // showCancelButton: false |
| | | // }); |
| | | // } else if ($message) { |
| | | // $message.warning(warningMessage.message); |
| | | // } else { |
| | | // alert(`${warningMessage.title}: ${warningMessage.message}`); |
| | | // } |
| | | }, |
| | | |
| | | // 卿¥è¯¢åå¤çæ°æ® |
| | | searchAfter(result) { |
| | | return true; |
| | | } |
| | | } |
| | | }; |