import { calc } from '@/common/calc' 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, itemName: detail.itemName, stdPackQty: Number(detail.stdPackQty) || undefined, stdPackUnit: detail.stdPackUnit, qty: Number(detail.qty), handleQty: 0, uom: detail.uom, subList: [] } return item; } export function createDetailInfo(data) { data.scaned = false; // data.record = {}; let detail = data; return detail; } //根据明细创建记录 export function createRecordInfo(detail, balance) { var record = {} // let record = JSON.parse(JSON.stringify(detail)); //克隆对象,深度克隆,防止双向绑定同一个变量 Object.assign(record, detail) detail.scaned = true; detail.balance = balance; detail.recommendInventoryStatus = detail.inventoryStatus; detail.inventoryStatus = balance.inventoryStatus; record.qty = Number(balance.qty); return record; } //计算实际数量 export function calcHandleQty(detailSource) { for (let item of detailSource) { item.handleQty = 0; for (let detail of item.subList) { if (detail != undefined && detail.scaned) { item.handleQty = calc.add(item.handleQty, detail.handleQty) } } } } export function getScanCount(subList) { let items = subList.filter(r => { if (r.scaned) { return r; } }) let scanCount = items != null ? items.length : 0; return scanCount; }