fix: 修复称重商品切换就餐模式时打包数量展示不对问题
This commit is contained in:
@@ -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 });
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user