diff --git a/src/common/detail.js b/src/common/detail.js index 13a3a8b6..993f2fb8 100644 --- a/src/common/detail.js +++ b/src/common/detail.js @@ -5,7 +5,10 @@ import { import { Decimal } from 'decimal.js'; //引入 -export function getDataSource(dataList) { + + + +export function getTreeDataSource(dataList) { let items = []; let parentList = dataList.filter(r => r.parentPackingNumber == null || r @@ -31,14 +34,35 @@ export function getDataSource(dataList) { items.forEach(r => r.subList.forEach(s => { s.packList = childList.filter(c => c.parentPackingNumber == s.packingNumber) + s.packList.forEach(pac=>{ + pac.scaned=false; + }) }) - ) } return items; } +export function getDataSource(subList) { + let items = []; + subList.forEach(detail => { + var item = items.find(r => + r.itemCode == detail.itemCode) + if (item == undefined) { + item = createItemInfo(detail); + let newDetail = createDetailInfo(detail); // + item.subList.push(newDetail); + items.push(item) + } else { + item.qty = calc.add(item.qty, detail.qty) + let newDetail = createDetailInfo(detail); // + item.subList.push(newDetail); + } + }) + return items; + } + export function createItemInfo(detail) { let item = { itemCode: detail.itemCode, @@ -88,6 +112,27 @@ export function calcHandleQty(detailSource) { } } +export function calcTreeHandleQty(detailSource) { + for (let item of detailSource) { + item.handleQty = new Decimal(0).toNumber(); + + for (let detail of item.subList) { + if (detail != undefined && detail.scaned) { + detail.handleQty = new Decimal(0).toNumber(); + for (let pack of detail.packList){ + if(pack!=undefined&&pack.scaned){ + detail.handleQty = calc.add(detail.handleQty, pack.handleQty); + } + } + item.handleQty = calc.add(item.handleQty, detail.handleQty); + } + } + } +} + + + + export function getScanCount(subList) { let items = subList.filter(r => { diff --git a/src/mycomponents/item/itemCompareQty.vue b/src/mycomponents/item/itemCompareQty.vue index bce3ab2e..6d46301b 100644 --- a/src/mycomponents/item/itemCompareQty.vue +++ b/src/mycomponents/item/itemCompareQty.vue @@ -4,7 +4,7 @@ - + diff --git a/src/mycomponents/package/packageList.vue b/src/mycomponents/package/packageList.vue index f27035ae..82abcf13 100644 --- a/src/mycomponents/package/packageList.vue +++ b/src/mycomponents/package/packageList.vue @@ -20,7 +20,7 @@ import config from '@/static/config.js' import packageCard from '@/mycomponents/package/packageCard.vue' export default { - emits: ["refreshUI"], + emits: ["collapseChange"], components: { packageCard }, diff --git a/src/mycomponents/scan/winScanPack.vue b/src/mycomponents/scan/winScanPack.vue index 07d50872..c23e40d7 100644 --- a/src/mycomponents/scan/winScanPack.vue +++ b/src/mycomponents/scan/winScanPack.vue @@ -58,7 +58,7 @@ openScanPopup() { setTimeout(res => { this.$refs.popup.open('bottom') - }, 500) + }, 200) }, closeScanPopup() { diff --git a/src/pages/purchaseReceipt/job/receiptDetail.vue b/src/pages/purchaseReceipt/job/receiptDetail.vue index c83545cd..2d2f02e0 100644 --- a/src/pages/purchaseReceipt/job/receiptDetail.vue +++ b/src/pages/purchaseReceipt/job/receiptDetail.vue @@ -79,10 +79,11 @@ } from '@/common/balance.js'; import { - getDataSource, + getTreeDataSource, createRecordInfo, calcHandleQty, - getScanCount + getScanCount, + calcTreeHandleQty } from '@/common/detail.js'; @@ -200,10 +201,9 @@ that.toLocationTypeList = getDirectoryItemArray(that.jobContent.toLocationTypes); // that.jobContent.toLocationTypeList = that.toLocationTypeList; that.subList = res.data.subList; - that.subList[0].containerNumber = "CN-00000001"; that.jobStatus = res.data.status that.jobToLocationCode = that.subList[0].toLocationCode - that.detailSource = getDataSource( that.subList) + that.detailSource = getTreeDataSource(that.subList) console.log(JSON.stringify(this.detailSource)) } else { that.showMessage('列表数据为0'); @@ -219,7 +219,6 @@ getScanResult(result) { try { - var itemCode = result.label.itemCode; var detail = this.detailSource.find(r => r.itemCode == itemCode); if (detail == undefined) { @@ -254,12 +253,51 @@ if (detail == undefined) { this.showMessage("物料号【" + itemCode + "】不在列表中") } else { + //物料在列表中 + var itemDetail = detail.subList.find(r => r.packingNumber == packingNumber && r.batch == batch); if (itemDetail == undefined) { - this.showMessage("箱码【" + packingNumber + "】、批次【" + batch + "】不在列表中") + var isExit; + for (let subItem of detail.subList) { + var item; + for (let pack of subItem.packList) { + if (pack.packingNumber == packingNumber && + pack.batch == batch) { + item = pack; + isExit = pack; + break; + } + } + if (item != undefined) { + subItem.scaned = true + subItem.handleQty = 0; + item=undefined + } + } + + if (isExit == undefined) { + this.showMessage("箱码【" + packingNumber + "】、批次【" + batch + "】不在列表中") + } else { + if (isExit.scaned) { + this.showMessage("箱码【" + packingNumber + "】已经扫描") + } else { + isExit.scaned = true + isExit.handleQty = Number(result.label.qty); + isExit.toLocationCode = this.toLocationCode; + isExit.labelQty = Number(result.label.qty); + } + } + calcTreeHandleQty(this.detailSource); + this.$forceUpdate() } else { - if (itemDetail.scaned) { + var scanedLength =0; + itemDetail.packList.forEach(res=>{ + if(res.scaned){ + scanedLength++; + } + }) + if (itemDetail.scaned&&scanedLength==itemDetail.packList.length) { this.showMessage("箱码【" + packingNumber + "】已经扫描") } else { itemDetail.scaned = true; @@ -267,7 +305,13 @@ itemDetail.handleQty = Number(result.label.qty); itemDetail.toLocationCode = this.toLocationCode; itemDetail.labelQty = Number(result.label.qty); - calcHandleQty(this.detailSource); + itemDetail.packList.forEach(pac => { + pac.scaned = true + pac.handleQty = Number(pac.qty); + pac.toLocationCode = this.toLocationCode; + }) + + calcTreeHandleQty(this.detailSource); this.continueScan() this.$forceUpdate() } @@ -280,7 +324,6 @@ } }, - //继续扫描 continueScan() { this.scanCount = getScanCount(this.subList); diff --git a/src/static/config.js b/src/static/config.js index 76734df7..3f42814d 100644 --- a/src/static/config.js +++ b/src/static/config.js @@ -1,7 +1,7 @@ -// let request_url = "http://dev.ccwin-in.com:25300/api/admin-api" -let request_url = "http://192.168.0.211:12080/admin-api" +let request_url = "http://dev.ccwin-in.com:25300/api/admin-api" +// let request_url = "http://192.168.0.211:12080/admin-api" -let isDevelopment = false +let isDevelopment = true export default { request_url,