Merge branch 'master' of https://codeup.aliyun.com/bsdtec/biz-pc-cloud
This commit is contained in:
commit
de4edb8f86
1 file changed
+38
-4
@@ -81,6 +81,7 @@
|
|||||||
border
|
border
|
||||||
:loading="loading"
|
:loading="loading"
|
||||||
show-overflow
|
show-overflow
|
||||||
|
show-footer
|
||||||
max-height="410"
|
max-height="410"
|
||||||
:edit-config="{
|
:edit-config="{
|
||||||
trigger: 'click',
|
trigger: 'click',
|
||||||
@@ -99,13 +100,14 @@
|
|||||||
:resizable-config="{ dragMode: 'fixed' }"
|
:resizable-config="{ dragMode: 'fixed' }"
|
||||||
:data="vxeTableData"
|
:data="vxeTableData"
|
||||||
:edit-rules="validRules"
|
:edit-rules="validRules"
|
||||||
|
:footer-data="footerData"
|
||||||
@checkbox-all=""
|
@checkbox-all=""
|
||||||
@checkbox-change=""
|
@checkbox-change=""
|
||||||
size="mini"
|
size="mini"
|
||||||
align="center"
|
align="center"
|
||||||
>
|
>
|
||||||
<vxe-column type="checkbox" width="40" fixed="left" />
|
<vxe-column type="checkbox" width="40" fixed="left" />
|
||||||
<vxe-column type="seq" width="50" fixed="left" />
|
<vxe-column field="seq" type="seq" width="50" fixed="left" />
|
||||||
<vxe-column field="productName" title="库存商品">
|
<vxe-column field="productName" title="库存商品">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<span v-if="row.productName">{{ row.productName }}</span>
|
<span v-if="row.productName">{{ row.productName }}</span>
|
||||||
@@ -167,7 +169,13 @@
|
|||||||
</span> -->
|
</span> -->
|
||||||
</template>
|
</template>
|
||||||
<template #edit="{ row }">
|
<template #edit="{ row }">
|
||||||
<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="updateFootEvent"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
</vxe-column>
|
</vxe-column>
|
||||||
<vxe-column field="remark" title="备注" :edit-render="{ autoFocus: 'input', placeholder: '请输入' }">
|
<vxe-column field="remark" title="备注" :edit-render="{ autoFocus: 'input', placeholder: '请输入' }">
|
||||||
@@ -249,6 +257,7 @@ const baseDataForm = reactive<any>({
|
|||||||
})
|
})
|
||||||
const vxeTableData = ref<any>([])
|
const vxeTableData = ref<any>([])
|
||||||
const erpSpuSimpleAll = ref<any>([])
|
const erpSpuSimpleAll = ref<any>([])
|
||||||
|
const footerData = ref([{ seq: "合计", totalAmount: "0" }])
|
||||||
|
|
||||||
// 基本信息表单校验规则
|
// 基本信息表单校验规则
|
||||||
const dataRules = ref({
|
const dataRules = ref({
|
||||||
@@ -263,8 +272,9 @@ const validRules = ref<VxeTablePropTypes.EditRules<any>>({
|
|||||||
quantity: [{ required: true, type: "number", min: 1, message: "必需大于等于0" }],
|
quantity: [{ required: true, type: "number", min: 1, message: "必需大于等于0" }],
|
||||||
})
|
})
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(async () => {
|
||||||
getInitData()
|
await getInitData()
|
||||||
|
updateFootCount(vxeTableData.value)
|
||||||
})
|
})
|
||||||
|
|
||||||
// 初始化数据
|
// 初始化数据
|
||||||
@@ -361,6 +371,8 @@ const getSelectedRows = (selectionRows: any) => {
|
|||||||
// vxeTableData.value = vxeTableData.value.filter(
|
// vxeTableData.value = vxeTableData.value.filter(
|
||||||
// (item: any) => !removedItems.some((removeItem: any) => removeItem.erpSpuId === item.erpSpuId),
|
// (item: any) => !removedItems.some((removeItem: any) => removeItem.erpSpuId === item.erpSpuId),
|
||||||
// )
|
// )
|
||||||
|
updateFootCount(vxeTableData.value)
|
||||||
|
|
||||||
console.log("vxeTableData.value", vxeTableData.value)
|
console.log("vxeTableData.value", vxeTableData.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -371,6 +383,7 @@ const removeRow = () => {
|
|||||||
const selectRecords = $table.getCheckboxRecords()
|
const selectRecords = $table.getCheckboxRecords()
|
||||||
if (selectRecords.length > 0) {
|
if (selectRecords.length > 0) {
|
||||||
vxeTableData.value = vxeTableData.value.filter((item: any) => !selectRecords.some((row) => row.erpSpuId === item.erpSpuId))
|
vxeTableData.value = vxeTableData.value.filter((item: any) => !selectRecords.some((row) => row.erpSpuId === item.erpSpuId))
|
||||||
|
updateFootEvent()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -378,6 +391,27 @@ const removeRow = () => {
|
|||||||
// 重新计算累计总金额
|
// 重新计算累计总金额
|
||||||
const reComputeTotalAmount = (row: any, index: number) => {
|
const reComputeTotalAmount = (row: any, index: number) => {
|
||||||
vxeTableData.value[index].selectedUnitObj.totalAmount = Number((row.quantity * parseFloat(row.selectedUnitObj.realPrice || 0)).toFixed(2))
|
vxeTableData.value[index].selectedUnitObj.totalAmount = Number((row.quantity * parseFloat(row.selectedUnitObj.realPrice || 0)).toFixed(2))
|
||||||
|
updateFootEvent()
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新尾行合计
|
||||||
|
const updateFootEvent = () => {
|
||||||
|
const $table = vxeTableRef.value
|
||||||
|
if ($table) {
|
||||||
|
const fullData = $table.getFullData()
|
||||||
|
updateFootCount(fullData)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const updateFootCount = (list: any[]) => {
|
||||||
|
const [sumNObj] = footerData.value
|
||||||
|
sumNObj.totalAmount = sumNum(list, "totalAmount")
|
||||||
|
}
|
||||||
|
const sumNum = (list: any[], field: string) => {
|
||||||
|
let count = 0
|
||||||
|
list.forEach((item) => {
|
||||||
|
count += Number(item.selectedUnitObj[field])
|
||||||
|
})
|
||||||
|
return count.toFixed(2)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 整理table数据
|
// 整理table数据
|
||||||
|
|||||||
Reference in new issue
Block a user