| | |
| | | methods: { |
| | | //ä¸é¢è¿äºæ¹æ³å¯ä»¥ä¿çä¹å¯ä»¥å é¤ |
| | | onInit() { |
| | | // let InOrder = this.buttons.find(x => x.value == 'StockOutbound'); |
| | | // if (InOrder) { |
| | | // InOrder.onClick = function () { |
| | | // let rows = this.$refs.table.getSelected(); |
| | | // if (rows.length == 0) return this.$error("è¯·éæ©æ°æ®!"); |
| | | // if (rows.length > 1) return this.$error("è¯·éæ©åæ¡æ°æ®!"); |
| | | // var keys = rows.map(x => { return x.stockId }); |
| | | // this.http |
| | | // .post("api/Task/Outbound?id="+keys[0], null, "æ°æ®å¤çä¸") |
| | | // .then((x) => { |
| | | // if (!x.status) return this.$message.error(x.message); |
| | | // this.$message.success("æä½æå"); |
| | | // this.refresh(); |
| | | // }); |
| | | // } |
| | | // } |
| | | |
| | | let SelectTake = this.buttons.find(x => x.value == 'SelectStockTake'); |
| | | if (SelectTake) { |
| | | SelectTake.onClick = function () { |
| | | let stockViews = this.$refs.table.getSelected(); |
| | | this.http |
| | | .post("api/Task/TakeOutbound",stockViews, "æ°æ®å¤çä¸") |
| | | .then((x) => { |
| | | if (!x.status) return this.$message.error(x.message); |
| | | this.$message.success("æä½æå"); |
| | | this.refresh(); |
| | | }); |
| | | } |
| | | } |
| | | this.columns.forEach(column => { |
| | | if (column.field == 'materielCode') { |
| | | column.formatter = (row) => { |
| | |
| | | return str = list[0] == "" ? "æ " : str; |
| | | } |
| | | } |
| | | if (column.field == 'materielInfo') { |
| | | const today = new Date() |
| | | column.formatter = (row) => { |
| | | if (row.details.length > 0) { |
| | | const today = new Date(); |
| | | const closestDate = row.details |
| | | if (column.field == 'materielInfo') { |
| | | const today = new Date() |
| | | column.formatter = (row) => { |
| | | if (row.details.length > 0) { |
| | | const today = new Date(); |
| | | const closestDate = row.details |
| | | .map(x => { |
| | | const date = new Date(x.effectiveDate); |
| | | const diffInDays = Math.ceil(Math.abs((today - date) / (1000 * 60 * 60 * 24))); |
| | | return { date, diffInDays }; |
| | | const date = new Date(x.effectiveDate); |
| | | const diffInDays = Math.ceil((date - today) / (1000 * 60 * 60 * 24)); // æ¹ä¸ºè®¡ç®å©ä½å¤©æ° |
| | | return { date, diffInDays }; |
| | | }) |
| | | .reduce((closest, current) => (current.diffInDays < closest.diffInDays ? current : closest)) |
| | | .date; |
| | | |
| | | const daysSinceClosest = Math.ceil(Math.abs((today - closestDate) / (1000 * 60 * 60 * 24))); |
| | | return '<span style="color: #F56C6C">' + daysSinceClosest + "天" + '</span>'; |
| | | const daysRemaining = Math.ceil((closestDate - today) / (1000 * 60 * 60 * 24)); |
| | | |
| | | row.expiryDays = daysRemaining; |
| | | |
| | | if (daysRemaining <= 0) { |
| | | return '<span style="color:rgb(30, 27, 27)">æ ä¿è´¨æ</span>'; |
| | | } else { |
| | | return '<span style="color: #F56C6C">' + "æ ä¿è´¨æ" + '</span>'; |
| | | return '<span style="color: #F56C6C">' + daysRemaining + "天" + '</span>'; |
| | | } |
| | | } else { |
| | | row.expiryDays = null; |
| | | return '<span style="color:rgb(24, 18, 18)">æ ä¿è´¨æ</span>'; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | if (column.field == 'sumStock') { |
| | | column.formatter = (row) => { |
| | |
| | | .map(x => { |
| | | sum += (x.stockQuantity) |
| | | }) |
| | | return '<span style="color: #F56C6C">' + sum + row.details[0].unit + '</span>'; |
| | | return '<span style="color: #F56C6C">' + sum.toFixed(3) + row.details[0].unit + '</span>'; |
| | | } else { |
| | | return '<span style="color: #F56C6C">' + "1个" + '</span>'; |
| | | } |
| | |
| | | } |
| | | } |
| | | }) |
| | | this.columns.forEach((column) => { |
| | | column.cellStyle = (row) => { |
| | | // åªå¤çæä¿è´¨ææ°æ®çæ
åµ |
| | | if (row.expiryDays !== null && row.expiryDays !== undefined) { |
| | | if (row.expiryDays <= 0) { |
| | | return { background: 'red' }; // 红è²èæ¯ï¼å·²è¿æï¼ |
| | | } else if (row.expiryDays <= 30) { |
| | | return { background: 'yellow' }; // é»è²èæ¯ï¼ä¸´æï¼ |
| | | } |
| | | } |
| | | return {}; // é»è®¤æ èæ¯è² |
| | | }; |
| | | |
| | | |
| | | |
| | | |
| | | //å¦ææ ¹æ®è¡çæä¸ªå¼è®¾ç½®æ´è¡é¢è² |
| | | //设置æ´è¡èæ¯é¢è² |
| | | // x.cellStyle = (row, rowIndex, columnIndex) => { |
| | | // if (row.ProductCode == '10044464880643') { |
| | | // return { background: '#ddecfd' }; |
| | | // } |
| | | // }; |
| | | }); |
| | | }, |
| | | onInited() { |
| | | //æ¡æ¶åå§åé
ç½®å |
| | | //妿è¦é
ç½®æç»è¡¨,卿¤æ¹æ³æä½ |
| | | //this.detailOptions.columns.forEach(column=>{ }); |
| | | this.detailOptions.summary = true; |
| | | this.detailOptions.columns.forEach(x => { |
| | | if (x.field == 'stockQuantity') { |
| | | x.summary = true; |
| | | //计ç®å¹³åå¼ |
| | | // x.summary = 'avg';//2023.05.03æ´æ°voltableæä»¶åæè½ä½¿ç¨ |
| | | //è®¾ç½®å°æ°æ¾ç¤ºä½æ°(é»è®¤2ä½) |
| | | // x.numberLength = 4; |
| | | } |
| | | }); |
| | | }, |
| | | searchBefore(param) { |
| | | //ç颿¥è¯¢å,å¯ä»¥ç»param.wheresæ·»å æ¥è¯¢åæ° |