feat: 代客下单更新,修复店铺列表编辑展示问题
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
import { store } from "@/store";
|
||||
import WebSocketManager, { type ApifoxModel, msgType } from "@/utils/websocket";
|
||||
import orderApi from "@/api/order/order";
|
||||
import { useUserStore } from "@/store/modules/user";
|
||||
import { useUserStoreHook } from "@/store/modules/user";
|
||||
|
||||
const shopUser = useUserStore();
|
||||
const shopUser = useUserStoreHook();
|
||||
export interface CartsState {
|
||||
id: string | number;
|
||||
[property: string]: any;
|
||||
@@ -78,6 +78,12 @@ export const useCartsStore = defineStore("carts", () => {
|
||||
})
|
||||
//赠菜总价
|
||||
const giftMoney = computed(() => {
|
||||
let oldGiftMoney = 0
|
||||
for (let i in oldOrder.value.detailMap) {
|
||||
oldGiftMoney += oldOrder.value.detailMap[i].reduce((prve: number, cur: any) => {
|
||||
return prve + cur.number * cur.salePrice
|
||||
}, 0)
|
||||
}
|
||||
return giftList.value.reduce((acc: number, cur: any) => {
|
||||
return acc + cur.number * cur.salePrice
|
||||
}, 0)
|
||||
@@ -90,7 +96,13 @@ export const useCartsStore = defineStore("carts", () => {
|
||||
const giftNumber = giftList.value.reduce((acc: number, cur: any) => {
|
||||
return acc + cur.pack_number * 1
|
||||
}, 0)
|
||||
return nowCartNumber + giftNumber
|
||||
let oldNumber = 0
|
||||
for (let i in oldOrder.value.detailMap) {
|
||||
oldNumber += oldOrder.value.detailMap[i].reduce((prve: number, cur: any) => {
|
||||
return prve + cur.pack_number
|
||||
}, 0)
|
||||
}
|
||||
return nowCartNumber + giftNumber + oldNumber
|
||||
})
|
||||
//打包费
|
||||
const packFee = computed(() => {
|
||||
@@ -100,27 +112,73 @@ export const useCartsStore = defineStore("carts", () => {
|
||||
const giftPackFee = giftList.value.reduce((acc: number, cur: any) => {
|
||||
return acc + (cur.packFee || 0) * cur.pack_number
|
||||
}, 0)
|
||||
return nowPackFee + giftPackFee
|
||||
let oldPackfee = 0;
|
||||
for (let i in oldOrder.value.detailMap) {
|
||||
oldPackfee += oldOrder.value.detailMap[i].reduce((prve: number, cur: any) => {
|
||||
return prve + (cur.packFee || 0) * cur.pack_number
|
||||
}, 0)
|
||||
}
|
||||
return nowPackFee + giftPackFee + oldPackfee
|
||||
})
|
||||
//会员优惠
|
||||
const vipDiscount = computed(() => {
|
||||
if (!useVipPrice.value) {
|
||||
return 0
|
||||
}
|
||||
const listTotal = list.value.reduce((acc: number, cur: any) => {
|
||||
const n = (cur.salePrice * 1 - cur.memberPrice * 1) * cur.number
|
||||
return acc + (n <= 0 ? 0 : n)
|
||||
}, 0)
|
||||
|
||||
return listTotal
|
||||
})
|
||||
//单品改价优惠
|
||||
const singleDiscount = computed(() => {
|
||||
const listTotal = list.value.reduce((acc: number, cur: any) => {
|
||||
if (cur.discount_sale_amount * 1 <= 0) {
|
||||
return acc + 0
|
||||
}
|
||||
const originPrice = useVipPrice.value ? (cur.memberPrice || cur.salePrice) : cur.salePrice
|
||||
const n = (originPrice * 1 - cur.discount_sale_amount * 1) * cur.number
|
||||
return acc + (n <= 0 ? 0 : n)
|
||||
}, 0)
|
||||
return listTotal
|
||||
})
|
||||
|
||||
|
||||
// 优惠
|
||||
const yiyouhui = computed(() => {
|
||||
const youhui = giftMoney.value
|
||||
const youhui = giftMoney.value * 1 + vipDiscount.value * 1 + singleDiscount.value * 1
|
||||
if (youhui > 0) {
|
||||
return '已优惠¥' + youhui.toFixed(2)
|
||||
}
|
||||
return ''
|
||||
})
|
||||
|
||||
//历史订单价格
|
||||
const oldOrderMoney = computed(() => {
|
||||
let total = 0
|
||||
for (let i in oldOrder.value.detailMap) {
|
||||
console.log(oldOrder.value)
|
||||
total += oldOrder.value.detailMap[i].reduce((prve: number, cur: any) => {
|
||||
const discount_sale_amount = cur.discount_sale_amount * 1 || 0
|
||||
const memberPrice = cur.skuData ? (cur.skuData.memberPrice || cur.skuData.salePrice) : 0
|
||||
const price = (discount_sale_amount || cur.salePrice || 0)
|
||||
return prve + cur.number * (discount_sale_amount || (useVipPrice.value ? memberPrice : price))
|
||||
}, 0)
|
||||
}
|
||||
return total
|
||||
})
|
||||
|
||||
//支付总价
|
||||
const payMoney = computed(() => {
|
||||
const money = list.value.reduce((acc: number, cur: any) => {
|
||||
const discount_sale_amount = cur.discount_sale_amount * 1 || 0
|
||||
const memberPrice = cur.skuData ? (cur.skuData.memberPrice || cur.skuData.salePrice) : 0
|
||||
const price = (cur.discount_sale_amount * 1 || cur.salePrice || 0)
|
||||
return acc + cur.number * (useVipPrice.value ? memberPrice : price)
|
||||
return acc + cur.number * (discount_sale_amount || (useVipPrice.value ? memberPrice : price))
|
||||
}, 0)
|
||||
return (money + packFee.value).toFixed(2)
|
||||
return (money + packFee.value + oldOrderMoney.value * 1).toFixed(2)
|
||||
})
|
||||
//总计数量
|
||||
const totalNumber = computed(() => {
|
||||
@@ -130,7 +188,14 @@ export const useCartsStore = defineStore("carts", () => {
|
||||
const giftNumber = list.value.reduce((acc: number, cur: any) => {
|
||||
return acc + cur.number * 1
|
||||
}, 0)
|
||||
return cartNumber + giftNumber
|
||||
let oldNumber = 0
|
||||
|
||||
for (let i in oldOrder.value.detailMap) {
|
||||
oldNumber += oldOrder.value.detailMap[i].reduce((prve: number, cur: any) => {
|
||||
return prve + cur.number * 1
|
||||
}, 0)
|
||||
}
|
||||
return cartNumber + giftNumber + oldNumber
|
||||
})
|
||||
|
||||
|
||||
@@ -238,6 +303,10 @@ export const useCartsStore = defineStore("carts", () => {
|
||||
if (cart.number * 1 < cart.skuData.suitNum * 1) {
|
||||
return sendMessage('del', cart);
|
||||
}
|
||||
console.log(key, val)
|
||||
if (key == 'discount_sale_amount' && val * 1 <= 0) {
|
||||
return ElMessage.error('价格不能为0!')
|
||||
}
|
||||
sendMessage('edit', { ...cart, [key]: val });
|
||||
}
|
||||
|
||||
@@ -245,13 +314,12 @@ export const useCartsStore = defineStore("carts", () => {
|
||||
sendMessage('cleanup', {});
|
||||
}
|
||||
function dataReset() {
|
||||
list.value = [];
|
||||
giftList.value = [];
|
||||
selListIndex.value = -1
|
||||
selListIndex.value = -1;
|
||||
selPlaceNum.value = 1
|
||||
isOldOrder.value = false
|
||||
selListIndex.value = -1;
|
||||
isSelGift.value = false
|
||||
list.value = [];
|
||||
giftList.value = [];
|
||||
}
|
||||
|
||||
// 寻找套餐商品sku
|
||||
@@ -304,14 +372,15 @@ export const useCartsStore = defineStore("carts", () => {
|
||||
const newData: { [key: string]: any } = {}
|
||||
for (let i in data) {
|
||||
newData[i] = data[i].map((v: any) => {
|
||||
|
||||
const skuData = getProductDetails({ product_id: v.productId, sku_id: v.skuId })
|
||||
|
||||
console.log(v)
|
||||
return {
|
||||
...skuData,
|
||||
placeNum: v.placeNum,
|
||||
number: v.num,
|
||||
id: v.id
|
||||
id: v.id,
|
||||
pack_number: v.packNumber,
|
||||
discount_sale_amount: v.discountSaleAmount * 1 || 0
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -332,7 +401,7 @@ export const useCartsStore = defineStore("carts", () => {
|
||||
...$oldOrder,
|
||||
detailMap: returnDetailMap($oldOrder.detailMap)
|
||||
}
|
||||
console.log('initParams', initParams)
|
||||
console.log('oldOrder.detailMap', oldOrder.value.detailMap)
|
||||
|
||||
table_code.value = initParams && initParams.table_code ? initParams.table_code : '';
|
||||
|
||||
@@ -454,13 +523,7 @@ export const useCartsStore = defineStore("carts", () => {
|
||||
}
|
||||
}
|
||||
if (msg.operate_type === "manage_cleanup") {
|
||||
list.value = []
|
||||
giftList.value = []
|
||||
oldOrder.value = {
|
||||
detailMap: [],
|
||||
originAmount: 0
|
||||
}
|
||||
table_code.value = ''
|
||||
dataReset()
|
||||
}
|
||||
console.log(list.value)
|
||||
});
|
||||
@@ -478,6 +541,8 @@ export const useCartsStore = defineStore("carts", () => {
|
||||
WebSocketManager.sendMessage(msg);
|
||||
}
|
||||
return {
|
||||
singleDiscount,
|
||||
vipDiscount,
|
||||
dataReset,
|
||||
useVipPrice,
|
||||
changeUser,
|
||||
@@ -503,6 +568,6 @@ export const useCartsStore = defineStore("carts", () => {
|
||||
};
|
||||
});
|
||||
|
||||
export function useDictStoreHook() {
|
||||
export function useCartsStoreHook() {
|
||||
return useCartsStore(store);
|
||||
}
|
||||
|
||||
@@ -25,6 +25,10 @@ export const usePermissionStore = defineStore("permission", () => {
|
||||
*/
|
||||
function generateRoutes() {
|
||||
return new Promise<RouteRecordRaw[]>((resolve, reject) => {
|
||||
if (isTest) {
|
||||
isRoutesLoaded.value = true;
|
||||
resolve(constantRoutes);
|
||||
}
|
||||
MenuAPI.getRoutes()
|
||||
.then((data) => {
|
||||
if (!isTest) {
|
||||
|
||||
@@ -9,6 +9,8 @@ import UserAPI, { type UserInfo } from "@/api/system/user";
|
||||
import { setToken, setRefreshToken, getRefreshToken, clearToken } from "@/utils/auth";
|
||||
|
||||
export const useUserStore = defineStore("user", () => {
|
||||
// const isShopAdmin = ref(false) // 0商户 1员工
|
||||
const isShopAdmin = useStorage("isShopAdmin", false) // 0商户 1员工
|
||||
const userInfo = useStorage<UserInfo>("userInfo", {} as UserInfo);
|
||||
const promissionList = useStorage<string[]>("promissionList", [] as string[]);
|
||||
|
||||
@@ -26,6 +28,7 @@ export const useUserStore = defineStore("user", () => {
|
||||
return new Promise<void>((resolve, reject) => {
|
||||
AuthAPI.login(loginRequest)
|
||||
.then((data) => {
|
||||
isShopAdmin.value = data.loginType == 0 ? true : false;
|
||||
Object.assign(userInfo.value, { ...data.shopInfo, shopId: data.shopInfo.id });
|
||||
promissionList.value = data.promissionList;
|
||||
const token = data.tokenInfo.tokenValue;
|
||||
@@ -115,6 +118,7 @@ export const useUserStore = defineStore("user", () => {
|
||||
}
|
||||
|
||||
return {
|
||||
isShopAdmin,
|
||||
userInfo,
|
||||
promissionList,
|
||||
getUserInfo,
|
||||
|
||||
Reference in New Issue
Block a user