fix: 修复称重商品切换就餐模式时打包数量展示不对问题

This commit is contained in:
2025-03-18 18:18:42 +08:00
parent 8bcc5b8c71
commit 2837711105
4 changed files with 27 additions and 7 deletions

View File

@@ -127,35 +127,42 @@ export const useCartsStore = defineStore("carts", () => {
}, 0)
return (nowTotal + oldGiftMoney)
})
//返回打包数量称重商品打包数量最大为1
function returnCartPackNumber(cur: any) {
console.log(cur)
let pack_number = (dinnerType.value == 'take-out' ? cur.number : cur.pack_number * 1)
pack_number = (cur.product_type == 'weight' && pack_number > 1) ? 1 : pack_number;
return pack_number * 1
}
//打包数量
const packNum = computed(() => {
const nowCartNumber = list.value.reduce((acc: number, cur: any) => {
return acc + cur.pack_number * 1
return acc + returnCartPackNumber(cur)
}, 0)
const giftNumber = giftList.value.reduce((acc: number, cur: any) => {
return acc + cur.pack_number * 1
return acc + returnCartPackNumber(cur)
}, 0)
let oldNumber = 0
for (let i in oldOrder.value.detailMap) {
oldNumber += oldOrder.value.detailMap[i].reduce((prve: number, cur: any) => {
return prve + (dinnerType.value == 'take-out' ? cur.number : cur.pack_number * 1)
return prve + returnCartPackNumber(cur)
}, 0)
}
return nowCartNumber + giftNumber + oldNumber
})
//打包费
const packFee = computed(() => {
const nowPackFee = list.value.reduce((acc: number, cur: any) => {
return acc + (cur.packFee || 0) * cur.pack_number
return acc + (cur.packFee || 0) * returnCartPackNumber(cur)
}, 0)
const giftPackFee = giftList.value.reduce((acc: number, cur: any) => {
return acc + (cur.packFee || 0) * cur.pack_number
return acc + (cur.packFee || 0) * returnCartPackNumber(cur)
}, 0)
let oldPackfee = 0;
for (let i in oldOrder.value.detailMap) {
oldPackfee += oldOrder.value.detailMap[i].reduce((prve: number, cur: any) => {
const number = (dinnerType.value == 'take-out' ? cur.number : cur.pack_number * 1)
return prve + (cur.packFee || 0) * number
return prve + (cur.packFee || 0) * returnCartPackNumber(cur)
}, 0)
}
return nowPackFee + giftPackFee + oldPackfee
@@ -273,6 +280,9 @@ export const useCartsStore = defineStore("carts", () => {
if (dinnerType.value == 'take-out') {
pack_number = newNumber
}
if (item.product_type == 'weight') {
pack_number = 1
}
update({ ...item, number: newNumber, pack_number });
}