订单详情完善

This commit is contained in:
wwz
2025-03-11 16:42:37 +08:00
parent 5342133cbd
commit cab9f836af
16 changed files with 506 additions and 126 deletions

View File

@@ -16,11 +16,19 @@ export const useCartStore = defineStore('cart', () => {
// const isTableFee = uni.cache.get('ordershopUserInfo').isTableFee //此店是否免桌位费
// const tableFee = uni.cache.get('ordershopUserInfo').tableFee //一个餐位费多钱
// 计算单个商品的打包费用(向下取整并保留两位小数)
const itemSinglePackFee = (item) => {
const fee = item.packFee * item.cartNumber;
// 先将结果乘以 100向下取整再除以 100 以保留两位小数
return Math.floor(fee * 100) / 100
// 计算向上取整
const roundUpToTwoDecimals = (num, i) => {
// 先将数字乘以 100 并转换为字符串保留足够的小数位
let temp = (num * 100).toFixed(10);
// 向上取整
let rounded = null
if (i == 'upward') {
rounded = Math.ceil(parseFloat(temp));
} else {
rounded = Math.floor(parseFloat(temp));
}
// 再除以 100 得到保留两位小数的结果
return rounded / 100;
};
// 计算购物车商品总价格
@@ -43,7 +51,8 @@ export const useCartStore = defineStore('cart', () => {
}
}, 0);
// 向上取整并保留两位小数
return cart = Math.ceil(cart * 100) / 100;
let result = roundUpToTwoDecimals(cart, 'upward')
return result;
});
// 计算商品卷所选择的总价格
@@ -64,34 +73,33 @@ export const useCartStore = defineStore('cart', () => {
}
}, 0);
// 向上取整并保留两位小数
return cart = Math.ceil(cart * 100) / 100;
let result = roundUpToTwoDecimals(cart, 'upward')
return result;
});
// 桌位置
const getTotalSeatcharge = (seatNum) => computed(() => {
// 是否免除桌位费 0 否 1 是
let tableFeeTotals = 0
let cart = 0
if (uni.cache.get('ordershopUserInfo').isTableFee == 0 && (seatNum || uni.cache.get('dinersNum'))) {
tableFeeTotals = Math.ceil(parseFloat((seatNum || uni.cache.get('dinersNum'))) * parseFloat(
if (uni.cache.get('ordershopUserInfo').isTableFee == 0 && seatNum) {
cart = Math.ceil(parseFloat(seatNum) * parseFloat(
uni.cache.get('ordershopUserInfo').tableFee) * 100) / 100;
}
console.log(uni.cache.get('ordershopUserInfo').isTableFee,seatNum,22222)
return Math.floor(tableFeeTotals * 100) / 100;
// 向下取整并保留两位小数
let result = roundUpToTwoDecimals(cart, 'downward')
return result;
});
// 计算购物车总打包费用(向下取整并保留两位小数)
const getTotalPackFee = (cartList) => computed(() => {
let total = 0;
for (const item of cartList) {
total += itemSinglePackFee(item);
}
return Math.floor(total * 100) / 100 ? Math.floor(total * 100) / 100 : 0;
// 同样对总费用进行向下取整并保留两位小数处理
const total = cartList.reduce((sum, item) => {
return sum + item.packAmount * (item.packNumber || (item.num - item.returnNum));
}, 0);
return Math.floor(total * 100) / 100;
});
return {
itemSinglePackFee,
getTotalPackFee,
getTotalSeatcharge,
getTotalTotalPrices,