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

This commit is contained in:
YeMingfei666 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 });
}

View File

@ -6,6 +6,10 @@
<span class="number">{{ item.product_type == "weight" ? 1 : item.num * 1 }}</span>
</span>
<span class="pack" v-if="dinerType == 0 && item.pack_number * 1 > 0">
<span class="number">{{ item.product_type == "weight" ? 1 : item.num * 1 }}</span>
</span>
</template>
<template v-else>
<span class="pack" v-if="item.pack_number * 1 > 0">

View File

@ -474,6 +474,7 @@ function returnPayParams() {
fullCouponDiscountAmount: fullCouponDiscountAmount.value * 1,
couponList: quansSelArr.value.map((v) => v.id),
userId: props.user.userId || "",
allPack: carts.dinnerType == "take-out" ? 1 : 0,
},
};
}

View File

@ -584,6 +584,10 @@ const diners = reactive({
function changeDinersSel(index) {
diners.sel = index;
changeCartsDinerType();
}
function changeCartsDinerType() {
carts.dinnerType = diners.sel == 0 ? "dine-in" : "take-out";
}
@ -729,6 +733,7 @@ watch(
function init() {
getTableList();
getCategoryList();
changeCartsDinerType();
carts.init({ table_code: table.tableCode }, oldOrder.value);
}