账面数量和盈亏的计算

This commit is contained in:
weiwei committed 2025-03-12 23:07:16 +08:00
1 parent 61fc2873d1
commit cf3c545617
1 file changed
+38 -7
+38 -7
View File
@@ -90,29 +90,41 @@
<div v-for="(item, index) in row.erpUnitVos" :key="index">单位:{{ item.unit }} &nbsp; 装数:{{ item.packageNum }}</div>
</template>
</vxe-column>
<vxe-column field="" title="账面数量">
<vxe-column field="accountNumber" title="账面数量">
<template #default="{ row }">
{{ row.stock }}
<div v-for="(item, index) in formatterAccountNumber(row)" :key="index">
{{ item.accountNumber + " " + item.unit }}
</div>
</template>
</vxe-column>
<vxe-column field="currentStock" title="实际数量" :edit-render="{ autoFocus: 'input', placeholder: '请输入' }" min-width="30">
<vxe-column field="realNumber" title="实际数量" :edit-render="{ autoFocus: 'input', placeholder: '请输入' }" min-width="30">
<template #edit="{ row }">
<el-input size="small" v-model="row.erpUnitVos[index].currentStock" v-for="(item, index) in row.erpUnitVos" :key="index" />
<el-input size="small" v-model="row.erpUnitVos[index].realNumber" v-for="(item, index) in row.erpUnitVos" :key="index" />
</template>
<template #default="{ row }">
<div v-for="(item, index) in row.erpUnitVos" :key="index">
{{ (item.currentStock ? item.currentStock : "__") + " " + item.unit }}
{{ (item.realNumber ? item.realNumber : "__") + " " + item.unit }}
</div>
</template>
</vxe-column>
<vxe-column field="profit" title="盈">
<template #default="{ row }">
<div v-for="(item, index) in row.erpUnitVos" :key="index">{{ 777 - +item.currentStock || 0 }}</div>
<div v-for="(item, index) in row.erpUnitVos" :key="index">
{{
(item.realNumber - item.accountNumber) * item.packageNum > 0 ? (item.realNumber - item.accountNumber) * item.packageNum : 0
}}
</div>
</template>
</vxe-column>
<vxe-column field="loss" title="亏">
<template #default="{ row }">
<div v-for="(item, index) in row.erpUnitVos" :key="index">{{ 777 - +item.currentStock || 0 }}</div>
<div v-for="(item, index) in row.erpUnitVos" :key="index">
{{
(item.realNumber - item.accountNumber) * item.packageNum < 0
? Math.abs((item.realNumber - item.accountNumber) * item.packageNum)
: 0
}}
</div>
</template>
</vxe-column>
<vxe-column field="unitPrice" title="账面进价">
@@ -261,6 +273,25 @@ const getInitData = async () => {
planCode && planCode.code === 0 && (baseDataForm.inventoryCode = planCode.data)
}
// 计算账面数量
const formatterAccountNumber = (row: any) => {
let stock = row.stock
console.log("xxx", stock)
return row.erpUnitVos
.map((item: any, index: number) => {
item.oriIndex = index
return item
})
.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
return item
})
.sort((a: any, b: any) => a.oriIndex - b.oriIndex)
}
// 顶部表格行新增
const addEvent = () => {
const newRow: any = {