diff --git a/src/views/supermarketerp/stockTaking/form.vue b/src/views/supermarketerp/stockTaking/form.vue index 46d961a..45fdbf2 100644 --- a/src/views/supermarketerp/stockTaking/form.vue +++ b/src/views/supermarketerp/stockTaking/form.vue @@ -99,40 +99,43 @@ - + + {{ item.unit }} + - {{ (item.realNumber ? item.realNumber : "__") + " " + item.unit }} + {{ item.realNumber ? item.realNumber + " " + item.unit : "" }} - - {{ - (item.realNumber - item.accountNumber) * item.packageNum > 0 ? (item.realNumber - item.accountNumber) * item.packageNum : 0 - }} - + + {{ item }} + - - {{ - (item.realNumber - item.accountNumber) * item.packageNum < 0 - ? Math.abs((item.realNumber - item.accountNumber) * item.packageNum) - : 0 - }} - + + {{ item }} + {{ - row.unitPrice - ? displayPrice(row.unitPrice) - : displayPrice(row.erpUnitVos?.find((item: any) => item.id == row.unitId)?.unitPrice) + displayPrice( + row.erpUnitVos.reduce((pre: any, cur: any) => pre + cur.purchasePrice * Number(cur.accountNumber), 0), + "", + ) }} @@ -142,13 +145,15 @@ - - + + {{ row.erpUnitVos.reduce((pre: any, cur: any) => pre + Number(cur.realNumber) * cur.packageNum, 0) || 0 }} - {{ parseFloat(row.pdPrice) * parseFloat(row.pdTotalNum) }} + {{ + parseFloat(row.pdPrice) * row.erpUnitVos.reduce((pre: any, cur: any) => pre + Number(cur.realNumber) * cur.packageNum, 0) || 0 + }} @@ -286,14 +291,53 @@ const formatterAccountNumber = (row: any) => { }) .sort((a: any, b: any) => b.packageNum - a.packageNum) .map((item: any, index: number) => { - item.accountNumber = Math.floor(stock / item.packageNum) - stock = stock % item.packageNum + if (row.erpUnitVos.length - 1 === index) { + item.accountNumber = stock + } else { + item.accountNumber = Math.floor(stock / item.packageNum) + } + stock = (stock % item.packageNum).toFixed(2) return item }) .sort((a: any, b: any) => a.oriIndex - b.oriIndex) } return row._cachedAccountNumber } +// 计算盈 +const computedProfit = (row: any) => { + if (!row._cachedProfit) { + console.log("cccc") + + const diff = + row.erpUnitVos.reduce((pre: any, cur: any) => { + return pre + (Number(cur.realNumber) || 0) * cur.packageNum + }, 0) - (Number(row.stock) || 0) + + row._cachedProfit = [diff > 0 ? diff : 0] + } + return row._cachedProfit +} +// 计算亏 +const computedLoss = (row: any) => { + if (!row._cachedLoss) { + console.log("cccc") + + const diff = + (Number(row.stock) || 0) - + row.erpUnitVos.reduce((pre: any, cur: any) => { + return pre + (Number(cur.realNumber) || 0) * cur.packageNum + }, 0) + + row._cachedLoss = [diff > 0 ? diff : 0] + } + return row._cachedLoss +} + +// 在编辑实际数量时需要清除缓存使其重新计算 +const handleRealNumberChange = (row: any) => { + row._cachedProfit = null + row._cachedLoss = null +} // 顶部表格行新增 const addEvent = () => {