fix:退货单输入数量和总金额,实际进价会自动变更

This commit is contained in:
weiwei committed 2025-09-28 17:23:44 +08:00
1 parent 7c6cc51751
commit c1ee5ea960
3 files changed
+35 -23

No files matched your search

@@ -124,26 +124,26 @@
v-model="row.quantity"
:min="0"
:precision="0"
@change="onRowValueChange(row, $rowIndex)"
@change="onQuantityChange(row, $rowIndex)"
/>
<el-input-number v-else v-model="row.quantity" :min="0" :precision="2" @change="onRowValueChange(row, $rowIndex)" />
<el-input-number v-else v-model="row.quantity" :min="0" :precision="2" @change="onQuantityChange(row, $rowIndex)" />
</template>
</vxe-column>
<vxe-column field="purchasePrice" title="零售价">
<template #default="{ row }">
{{ displayPrice(row.selectedUnitObj?.retailPrice || 0) }}
</template>
</vxe-column>
<vxe-column field="purchasePrice" title="零售价">
<template #default="{ row }">
{{ displayPrice(row.selectedUnitObj?.retailPrice || 0) }}
</template>
</vxe-column>
<vxe-column field="purchasePrice" title="原进价">
<template #default="{ row }">
{{ displayPrice(row.selectedUnitObj?.purchasePrice || 0) }}
</template>
</vxe-column>
<vxe-column field="realPrice" title="实际进价" :edit-render="{ autoFocus: 'input', placeholder: '请输入' }">
<vxe-column field="realPrice" title="实际进价">
<template #default="{ row }">
{{ row?.selectedUnitObj?.realPrice || 0 }}
</template>
<template #edit="{ row, $rowIndex }">
<!-- <template #edit="{ row, $rowIndex }">
<el-input-number
v-if="row.selectedUnitObj"
v-model="row.selectedUnitObj.realPrice"
@@ -151,14 +151,20 @@
:precision="2"
@change="onRowValueChange(row, $rowIndex)"
/>
</template>
</template> -->
</vxe-column>
<vxe-column field="totalAmount" title="累计总金额" :edit-render="{ autoFocus: 'input', placeholder: '请输入' }">
<template #default="{ row }">
{{ row?.selectedUnitObj?.totalAmount }}
</template>
<template #edit="{ row, $rowIndex }">
<el-input-number v-if="row.selectedUnitObj" v-model="row.selectedUnitObj.totalAmount" :min="0" :precision="2" />
<el-input-number
v-if="row.selectedUnitObj"
v-model="row.selectedUnitObj.totalAmount"
:min="0"
:precision="2"
@change="onTotalAmountChange(row, $rowIndex)"
/>
</template>
<template #footer="{ row }">
<span style="color: #2e5cf6; font-weight: bold">{{ total.totalAmount }}元</span>
@@ -253,7 +259,7 @@ const total = computed(() => {
const purchasePrice = displayPrice(
vxeTableData.value.reduce((sum: any, row: any) => sum + Number(row.selectedUnitObj?.purchasePrice || 0), 0),
)
const realPrice = vxeTableData.value.reduce((sum: any, row: any) => sum + Number(row.selectedUnitObj?.realPrice || 0), 0)
const realPrice = vxeTableData.value.reduce((sum: any, row: any) => sum + Number(row.selectedUnitObj?.realPrice || 0), 0).toFixed(2)
const totalAmount = vxeTableData.value.reduce((sum: any, row: any) => sum + Number(row.selectedUnitObj?.totalAmount || 0), 0).toFixed(2)
return { quantity, purchasePrice, realPrice, totalAmount }
})
@@ -355,9 +361,15 @@ const onUnitChange = (row: any) => {
row.selectedUnitObj.totalAmount = Number((row.quantity * Number(row.selectedUnitObj.realPrice || 0)).toFixed(2))
}
// 数量、进价变动联动
const onRowValueChange = (row: any, $rowIndex: number) => {
row.selectedUnitObj.totalAmount = Number((row.quantity * Number(row.selectedUnitObj.realPrice || 0)).toFixed(2))
// 数量变动
const onQuantityChange = (row: any, $rowIndex: number) => {
row.selectedUnitObj.totalAmount = Number(displayPrice(row.quantity * Number(row.selectedUnitObj.purchasePrice || 0), ""))
row.selectedUnitObj.realPrice = (row.selectedUnitObj.totalAmount / row.quantity).toFixed(2)
}
// 累计总金额变动
const onTotalAmountChange = (row: any, $rowIndex: number) => {
row.selectedUnitObj.realPrice = (row.selectedUnitObj.totalAmount / row.quantity).toFixed(2)
}
// 整理数据
@@ -64,11 +64,11 @@
<el-table-column type="index" label="#" width="50" />
<el-table-column prop="inventoryCode" label="单据编号" show-overflow-tooltip />
<el-table-column prop="inventoryDate" label="单据日期" show-overflow-tooltip />
<el-table-column prop="inventoryDate" label="入库商品" show-overflow-tooltip />
<el-table-column prop="productName" label="退货商品" show-overflow-tooltip />
<!-- <el-table-column prop="handlerUserName" label="经办人" show-overflow-tooltip /> -->
<el-table-column prop="supplierName" label="货商" show-overflow-tooltip />
<el-table-column prop="remark" label="备注" show-overflow-tooltip />
<el-table-column prop="totalAmount" label="出库总金额" show-overflow-tooltip>
<el-table-column prop="totalAmount" label="退货总金额" show-overflow-tooltip>
<template #default="{ row }">
{{ displayPrice(row.totalAmount) }}
</template>
@@ -157,11 +157,11 @@
<el-input-number v-else v-model="row.quantity" :min="0" :precision="2" @change="onQuantityChange(row, $rowIndex)" />
</template>
</vxe-column>
<vxe-column field="purchasePrice" title="零售价">
<template #default="{ row }">
{{ displayPrice(row.selectedUnitObj?.retailPrice || 0) }}
</template>
</vxe-column>
<vxe-column field="purchasePrice" title="零售价">
<template #default="{ row }">
{{ displayPrice(row.selectedUnitObj?.retailPrice || 0) }}
</template>
</vxe-column>
<vxe-column field="purchasePrice" title="原进价">
<template #default="{ row }">
{{ displayPrice(row.selectedUnitObj?.purchasePrice || 0) }}
@@ -392,7 +392,7 @@ const onUnitChange = (row: any) => {
// 数量变动
const onQuantityChange = (row: any, $rowIndex: number) => {
row.selectedUnitObj.totalAmount = Number(displayPrice(row.quantity * Number(row.selectedUnitObj.purchasePrice || 0), ""))
row.selectedUnitObj.realPrice = row.selectedUnitObj.totalAmount / row.quantity
row.selectedUnitObj.realPrice = (row.selectedUnitObj.totalAmount / row.quantity).toFixed(2)
}
// 累计总金额变动