代客下单页面修改,增加店铺配置页面

This commit is contained in:
2025-02-25 13:37:24 +08:00
parent ffcaaf9e41
commit 4eb7744111
22 changed files with 2181 additions and 123 deletions

View File

@@ -77,7 +77,7 @@ export const useCartsStore = defineStore("carts", () => {
return;
}
const newNumber = item.number * 1 + step * 1;
update({ ...item, number: step * 1, pack_number: newNumber < item.pack_number ? (item.pack_number * 1 + step * 1) : item.pack_number });
update({ ...item, number: item.number * 1 + step * 1, pack_number: newNumber < item.pack_number ? (item.pack_number * 1 + step * 1) : item.pack_number });
}
function changeSelCart(cart: CartsState) {
@@ -95,8 +95,29 @@ export const useCartsStore = defineStore("carts", () => {
selListIndex.value = list.value.findIndex((item: CartsState) => item.id === cart.id);
}
}
function add(data: any) {
sendMessage('add', data);
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: "",
...data
}
const hasCart = list.value.find((cartItem) => {
return cartItem.product_id == msg.product_id && cartItem.sku_id == msg.sku_id;
});
if (hasCart) {
update({ ...hasCart, ...msg, number: hasCart.number * 1 + msg.number * 1 })
} else {
sendMessage('add', msg);
}
}
function del(data: any) {
@@ -108,14 +129,39 @@ export const useCartsStore = defineStore("carts", () => {
sendMessage('edit', data);
}
function updateTag(key: string, val: any, cart: CartsState) {
sendMessage('edit', { ...cart || selCart.value, number: 0, [key]: val });
sendMessage('edit', { ...cart || selCart.value, [key]: val });
}
function clear() {
sendMessage('cleanup', {});
}
// 寻找套餐商品sku
interface GroupSnap {
goods: { [key: string]: any }[];
}
function findInGroupSnapSku(groupSnap: GroupSnap[], sku_id: string | number) {
for (let i in groupSnap) {
const sku = groupSnap[i].goods.find(v => v.sku_id == sku_id)
if (sku) {
return sku
}
}
}
function getProductDetails(v: { product_id: string, sku_id: string }) {
const goods = goodsMap[v.product_id]
const skuData = goods?.skuList.find((sku: { id: string, salePrice: number }) => sku.id == v.sku_id);
if (!goods) {
return undefined
}
let skuData = undefined;
if (goods.type == 'package') {
//套餐商品
const SnapSku = findInGroupSnapSku(goods.groupSnap, v.sku_id)
skuData = { ...SnapSku, salePrice: SnapSku ? SnapSku.price : 0 }
} else {
skuData = goods?.skuList.find((sku: { id: string, salePrice: number }) => sku.id == v.sku_id);
}
if (skuData) {
return {
salePrice: skuData ? skuData.salePrice : 0,
@@ -136,8 +182,10 @@ export const useCartsStore = defineStore("carts", () => {
if (msg.hasOwnProperty('status') && msg.status != 1) {
return ElMessage.error(msg.message || '操作失败')
}
if (msg && msg.data && msg.data[0]) {
table_code.value = table_code.value ? table_code.value : msg.data[0].table_code
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 (msg.operate_type === "manage_init") {
@@ -158,17 +206,21 @@ export const useCartsStore = defineStore("carts", () => {
});
console.log(giftList.value)
}
//广播
if (msg.type === "bc") {
msg.operate_type = 'manage_' + msg.operate_type
}
if (msg.operate_type === "manage_add") {
const skuData = getProductDetails({ product_id: msg.data[0].product_id, sku_id: msg.data[0].sku_id })
list.value.push({ ...skuData, ...msg.data[0] })
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 || '添加成功')
}
if (msg.operate_type === "manage_edit") {
const newCart = msg.data[0]
const newCart = msg.data
const index = list.value.findIndex((item) => item.id === newCart.id)
const giftIndex = giftList.value.findIndex((item) => item.id === newCart.id)
const cartItem = list.value[index];
const cartItem = list.value[index] || { is_gift: false };
const giftItem = giftList.value[giftIndex];
if (isSelGift.value) {
//操作赠菜
@@ -227,10 +279,11 @@ export const useCartsStore = defineStore("carts", () => {
});
}
function sendMessage(operate_type: msgType, message: any) {
console.log({ ...message, operate_type: operate_type, table_code: table_code.value })
WebSocketManager.sendMessage({ ...message, operate_type: operate_type, table_code: table_code.value });
const msg = { ...message, operate_type: operate_type, table_code: table_code.value }
WebSocketManager.sendMessage(msg);
}
return {
table_code,
updateTag,
list,
add,