feat: 接入下载桌台码接口,代客下单代码调整

This commit is contained in:
2025-02-26 14:09:04 +08:00
parent 98403f2acc
commit 2ee461a50f
15 changed files with 673 additions and 62 deletions

View File

@@ -27,12 +27,24 @@ export const useCartsStore = defineStore("carts", () => {
const isEmpty = computed(() => {
return list.value.length === 0 && giftList.value.length === 0
})
//当前购物车选中数据
const selCart = computed(() => {
if (isSelGift.value) {
return giftList.value[selListIndex.value] || defaultCart
}
return list.value[selListIndex.value] || defaultCart
})
//当前购物车选中对应商品数据
const selGoods = computed(() => {
return goodsMap[selCart.value.product_id]
})
//当前选中购物车数据是否是可选套餐商品
const isCanSelectGroup = computed(() => {
if (!selGoods.value) {
return false
}
return selGoods.value.type == 'package' && selGoods.value.groupType == 1
})
//赠菜总价
const giftMoney = computed(() => {
return giftList.value.reduce((acc: number, cur: any) => {
@@ -96,18 +108,30 @@ export const useCartsStore = defineStore("carts", () => {
}
}
const basic_msg = {
number: 1,
is_pack: 0,
is_gift: 0,
is_temporary: 0,
discount_sale_amount: 0,
discount_sale_note: "",
is_print: 0,
is_wait_call: 0,
product_name: "",
remark: "",
sku_id: '',
}
//当前购物车直接添加
function cartsPush(data: any) {
sendMessage('add', {
...basic_msg,
...data
});
}
function add(data: any) {
const msg = {
number: 1,
is_pack: 0,
is_gift: 0,
is_temporary: 0,
discount_sale_amount: 0,
discount_sale_note: "",
is_print: 0,
is_wait_call: 0,
product_name: "",
remark: "",
...basic_msg,
...data
}
const hasCart = list.value.find((cartItem) => {
@@ -116,10 +140,21 @@ export const useCartsStore = defineStore("carts", () => {
if (hasCart) {
update({ ...hasCart, ...msg, number: hasCart.number * 1 + msg.number * 1 })
} else {
console.log(msg);
sendMessage('add', msg);
}
}
// 换桌
function changeTable(newVal: string | number) {
if (table_code.value) {
sendMessage('rottable', {
new_table_code: newVal,
id: list.value[0].id
});
}
}
function del(data: any) {
sendMessage('del', data);
}
@@ -183,27 +218,40 @@ export const useCartsStore = defineStore("carts", () => {
return ElMessage.error(msg.message || '操作失败')
}
if (msg && msg.data) {
const tableCode = Array.isArray(msg.data) ? msg.data[0].table_code : msg.data.table_code
table_code.value = table_code.value ? table_code.value : tableCode
console.log(table_code.value)
if (Array.isArray(msg.data) && msg.data.length) {
table_code.value = msg.data[0].table_code
}
if (msg.data.table_code) {
table_code.value = table_code.value ? table_code.value : msg.data.table_code
}
}
// 初始化
if (msg.operate_type === "manage_init") {
// 设置单价
list.value = msg.data.filter((v: { is_gift: any; }) => !v.is_gift).map((v: Record<string, any>) => {
list.value = msg.data.filter((v: Record<string, any>) => {
const skuData = getProductDetails({ product_id: v.product_id, sku_id: v.sku_id })
return {
...skuData,
...v,
if (skuData) {
(Object.keys(skuData) as (keyof typeof skuData)[]).forEach((key) => {
v[key] = skuData[key];
});
} else {
del({ id: v.id })
return false
}
});
giftList.value = msg.data.filter((v: { is_gift: any; }) => v.is_gift).map((v: Record<string, any>) => {
return !v.is_gift
})
giftList.value = msg.data.filter((v: Record<string, any>) => {
const skuData = getProductDetails({ product_id: v.product_id, sku_id: v.sku_id })
return {
...skuData,
...v,
if (skuData) {
(Object.keys(skuData) as (keyof typeof skuData)[]).forEach((key) => {
v[key] = skuData[key];
});
} else {
del({ id: v.id })
return false
}
});
return v.is_gift
})
console.log(giftList.value)
}
//广播
@@ -211,6 +259,9 @@ export const useCartsStore = defineStore("carts", () => {
msg.operate_type = 'manage_' + msg.operate_type
}
if (msg.operate_type === "manage_add") {
if (list.value.find(v => v.id == msg.data.id)) {
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 })
return ElMessage.success(msg.message || '添加成功')
@@ -283,6 +334,9 @@ export const useCartsStore = defineStore("carts", () => {
WebSocketManager.sendMessage(msg);
}
return {
isCanSelectGroup,
selGoods,
cartsPush,
table_code,
updateTag,
list,
@@ -293,7 +347,8 @@ export const useCartsStore = defineStore("carts", () => {
changeNumber, isEmpty,
selCart, totalNumber,
changeSelCart, payMoney,
clear, yiyouhui, giftList
clear, yiyouhui, giftList,
changeTable
};
});