fix: 代客下单增加转台功能,修复临时菜价格展示问题,增加就餐类型切换为打包时,加菜默认为打包

This commit is contained in:
2025-03-13 18:31:36 +08:00
parent dc5dc45893
commit a3f8c8c012
11 changed files with 268 additions and 52 deletions

View File

@@ -16,6 +16,11 @@ export const useCartsStore = defineStore("carts", () => {
vipUser.value = user;
}
//就餐类型 dine-in take-out
let dinnerType = ref<string>('dine-in');
//是否启用会员价
const useVipPrice = computed(() => {
return (shopUser.userInfo.isMemberPrice && vipUser.value.id && vipUser.value.isVip) ? true : false
@@ -174,9 +179,7 @@ export const useCartsStore = defineStore("carts", () => {
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) => {
console.log(cur)
if (cur.isGift) {
return prve + 0
}
@@ -236,7 +239,11 @@ export const useCartsStore = defineStore("carts", () => {
return;
}
const newNumber = item.number * 1 + step * 1;
update({ ...item, number: item.number * 1 + step * 1, pack_number: newNumber < item.pack_number ? (item.pack_number * 1 + step * 1) : item.pack_number });
let pack_number = newNumber < item.pack_number ? (item.pack_number * 1 + step * 1) : item.pack_number;
if (dinnerType.value == 'take-out') {
pack_number = newNumber
}
update({ ...item, number: newNumber, pack_number });
}
function changeSelCart(cart: CartsState) {
@@ -270,6 +277,7 @@ export const useCartsStore = defineStore("carts", () => {
}
}
const basic_msg = {
number: 1,
is_gift: 0,
@@ -325,10 +333,12 @@ export const useCartsStore = defineStore("carts", () => {
function update(data: any) {
console.log(data);
if (data.number * 1 < data.skuData.suitNum * 1) {
const suitNum = data.skuData ? (data.skuData.suitNum || 1) : 1;
if (data.number * 1 < suitNum * 1) {
return sendMessage('del', data);
}
sendMessage('edit', data);
const pack_number = dinnerType.value == 'take-out' ? data.number : data.pack_number
sendMessage('edit', { ...data, pack_number });
}
function updateTag(key: string, val: any, cart: CartsState = selCart.value) {
if (cart.number * 1 < cart.skuData.suitNum * 1) {
@@ -338,7 +348,16 @@ export const useCartsStore = defineStore("carts", () => {
if (key == 'discount_sale_amount' && val * 1 <= 0) {
return ElMessage.error('价格不能为0')
}
sendMessage('edit', { ...cart, [key]: val });
const msg = { ...cart, [key]: val }
if (key == 'number' && dinnerType.value == 'take-out') {
msg.pack_number == val
}
sendMessage('edit', msg);
}
// 更改全部商品打包状态
function changePack(is_pack: number | string) {
sendMessage('batch', { is_pack });
}
function clear() {
@@ -358,6 +377,14 @@ export const useCartsStore = defineStore("carts", () => {
vipUser.value = {}
}
function nowCartsClear() {
if (selPlaceNum.value == 1) {
selListIndex.value = -1;
}
list.value = [];
giftList.value = [];
}
// 寻找套餐商品sku
interface GroupSnap {
goods: { [key: string]: any }[];
@@ -439,6 +466,9 @@ export const useCartsStore = defineStore("carts", () => {
}
}
let $initParams = {} as ApifoxModel
/**
*
* @param initParams 购物车初始化参数
@@ -446,6 +476,8 @@ export const useCartsStore = defineStore("carts", () => {
* @param oldOrder 历史订单数据
*/
function init(initParams: ApifoxModel, $goodsMap: any, $oldOrder: any) {
// 商品id对应的数据map
if ($goodsMap) {
@@ -461,16 +493,22 @@ export const useCartsStore = defineStore("carts", () => {
if (initParams) {
initParams.table_code = initParams.table_code ? initParams.table_code : ''
table_code.value = initParams.table_code
$initParams = initParams;
}
console.log($initParams)
// localStorage.setItem('cache_table_code', table_code.value);
concocatSocket($initParams)
}
function concocatSocket(initParams = $initParams) {
console.log("初始化参数", initParams);
WebSocketManager.subscribeToTopic(initParams, (msg) => {
console.log("收到消息:", msg);
if (msg.hasOwnProperty('status') && msg.status != 1) {
return ElMessage.error(msg.message || '操作失败')
}
if (msg && msg.data) {
if (Array.isArray(msg.data) && msg.data.length) {
if (Array.isArray(msg.data) && msg.data.length && msg.data[0].table_code) {
table_code.value = msg.data[0].table_code
}
if (msg.data.table_code) {
@@ -528,7 +566,9 @@ export const useCartsStore = defineStore("carts", () => {
return ElMessage.warning(msg.message || '该商品已存在')
}
const skuData = getProductDetails({ product_id: msg.data.product_id, sku_id: msg.data.sku_id })
list.value.push({ ...skuData, ...msg.data })
const newGoods = { ...skuData, ...msg.data }
console.log('newGoods', newGoods)
list.value.push(newGoods)
return ElMessage.success(msg.message || '添加成功')
}
@@ -588,9 +628,11 @@ export const useCartsStore = defineStore("carts", () => {
}
}
if (msg.operate_type === "manage_cleanup") {
dataReset()
nowCartsClear()
}
if (msg.operate_type === "batch") {
concocatSocket({ ...$initParams, table_code: table_code.value })
}
console.log(list.value)
});
}
@@ -606,6 +648,8 @@ export const useCartsStore = defineStore("carts", () => {
WebSocketManager.sendMessage(msg);
}
return {
dinnerType,
changePack,
giftMoney,
goodsTotal,
isLinkFinshed,

View File

@@ -34,7 +34,6 @@ export const usePermissionStore = defineStore("permission", () => {
if (!isTest) {
const dynamicRoutes = parseDynamicRoutes(data.filter(v => v.type == 0));
routes.value = [...constantRoutes, ...dynamicRoutes];
console.log(routes.value)
isRoutesLoaded.value = true;
resolve(dynamicRoutes);
} else {