From 52fb5b9fb53b259f48d1da7942ad7d0a850b3ff0 Mon Sep 17 00:00:00 2001 From: YeMingfei666 <1619116647@qq.com> Date: Tue, 1 Apr 2025 13:25:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=A0=E9=99=A4=E5=8E=86=E5=8F=B2=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/modules/carts.ts | 25 +++++++++-- src/utils/websocket.ts | 2 +- .../tool/Instead/components/carts/list.vue | 8 ---- src/views/tool/Instead/index.vue | 44 +++++++++---------- 4 files changed, 43 insertions(+), 36 deletions(-) diff --git a/src/store/modules/carts.ts b/src/store/modules/carts.ts index 2c68133..12154fa 100644 --- a/src/store/modules/carts.ts +++ b/src/store/modules/carts.ts @@ -37,10 +37,14 @@ export const useCartsStore = defineStore("carts", () => { //当前购物车数据 const list = useStorage("carts", []); //历史订单数据 - const oldOrder = useStorage("Instead_olold_order", { + // const oldOrder = useStorage("Instead_olold_order", { + // detailMap: [], + // originAmount: 0 + // }); + const oldOrder = ref({ detailMap: [], originAmount: 0 - }); + }) //代客下单页面商品缓存 const goods = useStorage("Instead_goods", []); @@ -367,6 +371,10 @@ export const useCartsStore = defineStore("carts", () => { cart_id }); } + //清空历史订单 + function clearHistory() { + sendMessage('clearOrder', {}); + } function del(data: any) { @@ -447,8 +455,15 @@ export const useCartsStore = defineStore("carts", () => { //获取历史订单 async function getOldOrder(table_code: string | number) { const res = await orderApi.getHistoryList({ tableCode: table_code }) + console.log('getOldOrder'); + console.log(res); if (res) { setOldOrder(res) + } else { + oldOrder.value = { + detailMap: [], + originAmount: 0 + } } } @@ -551,7 +566,7 @@ export const useCartsStore = defineStore("carts", () => { if ($oldOrder) { setOldOrder($oldOrder) } else { - oldOrder.value = { detailMap: [] } + oldOrder.value = { detailMap: [], originAmount: 0 } } // console.log('oldOrder.detailMap', oldOrder.value.detailMap) @@ -690,6 +705,9 @@ export const useCartsStore = defineStore("carts", () => { if (msg.operate_type === "batch") { concocatSocket({ ...$initParams, table_code: table_code.value }) } + if (msg.operate_type === "manage_clearOrder") { + getOldOrder(msg.data.table_code) + } if (msg.operate_type === "product_update") { console.log('商品更新') init($initParams, oldOrder.value) @@ -711,6 +729,7 @@ export const useCartsStore = defineStore("carts", () => { WebSocketManager.sendMessage(msg); } return { + clearHistory, disconnect, dinnerType, changePack, diff --git a/src/utils/websocket.ts b/src/utils/websocket.ts index d6b0c30..24fc477 100644 --- a/src/utils/websocket.ts +++ b/src/utils/websocket.ts @@ -13,7 +13,7 @@ export interface ApifoxModel { [property: string]: string | number | undefined; // 限制额外属性类型 } -export type msgType = 'add' | 'reduce' | 'remove' | 'edit' | 'init' | 'cleanup' | 'del' | 'rottable' | 'batch' | 'disconnect'; +export type msgType = 'add' | 'reduce' | 'remove' | 'edit' | 'init' | 'cleanup' | 'del' | 'rottable' | 'batch' | 'disconnect' | 'clearOrder'; class WebSocketManager { private client: WebSocket | null = null; diff --git a/src/views/tool/Instead/components/carts/list.vue b/src/views/tool/Instead/components/carts/list.vue index 61f88ff..b9fbbc7 100644 --- a/src/views/tool/Instead/components/carts/list.vue +++ b/src/views/tool/Instead/components/carts/list.vue @@ -197,14 +197,6 @@ const props = defineProps({ type: Boolean, default: false, }, - oldOrder: { - type: Object, - default: () => { - return { - detailMap: [], - }; - }, - }, goodsList: { type: Array, default: () => [], diff --git a/src/views/tool/Instead/index.vue b/src/views/tool/Instead/index.vue index a907cf0..94cd09a 100644 --- a/src/views/tool/Instead/index.vue +++ b/src/views/tool/Instead/index.vue @@ -114,7 +114,6 @@ @clearOldOrder="clearOldOrder" :showOrder="showOrder" :goodsList="carts.goods" - :oldOrder="oldOrder" :dinerType="diners.sel" :perpole="perpole" :remark="remark" @@ -182,7 +181,7 @@ { refOrder.value.nowPayClick(key || ""); @@ -406,7 +403,7 @@ async function createOrder(key) { loading.close(); }, 1000 * 20); const res = await orderApi.add({ - orderId: oldOrder.value.id || "", + orderId: carts.oldOrder.id || "", shopId: shopUser.userInfo.id, userId: user.value.userId, packFee: carts.packFee * 1, @@ -415,7 +412,7 @@ async function createOrder(key) { dineMode: diners.sel == 0 ? "dine-in" : "take-out", remark: remark.value, seatNum: perpole.value * 1, - placeNum: oldOrder.value.placeNum * 1 + 1, + placeNum: carts.oldOrder.placeNum * 1 + 1, waitCall: false, vipPrice: user.value.id && user.value.isVip, }); @@ -436,9 +433,8 @@ async function createOrder(key) { orderId: res.id, }); if (res1) { - oldOrder.value = res1; + carts.setOldOrder(res1); } - carts.setOldOrder(res1); } if (key == "only-create") { return; @@ -467,13 +463,14 @@ async function clearOldOrder(params) { const res1 = params.placeNum ? await orderApi.rmPlaceOrder(params) : await orderApi.cancelOrder(params); + carts.clearHistory(); ElMessage({ type: res1 ? "success" : "error", message: res1 ? "删除成功" : "删除失败", }); // 获取历史订单数据 const res = await orderApi.getHistoryList({ - orderId: oldOrder.value.id, + orderId: carts.oldOrder.id, }); const noPayStatus = { cancelled: "订单已取消", @@ -481,15 +478,11 @@ async function clearOldOrder(params) { }; if (noPayStatus[res.status]) { // ElMessage.error(noPayStatus[res.status]); - oldOrder.value = { - detailMap: [], - }; - carts.oldOrder = oldOrder.value; + resetOldOrder(); showOrder.value = false; return; } if (res) { - oldOrder.value = res; carts.setOldOrder(res); } } @@ -559,7 +552,6 @@ async function tableClick(item) { // getTableDetail({ tableCode: item.tableCode }); const res = await orderApi.getHistoryList({ tableCode: item.tableCode }); if (res) { - oldOrder.value = res; carts.setOldOrder(res); } table.value = item; @@ -777,7 +769,7 @@ function init() { getTableList(); getCategoryList(); changeCartsDinerType(); - carts.init({ table_code: table.value.tableCode }, oldOrder.value); + carts.init({ table_code: table.value.tableCode }, carts.oldOrder); } onBeforeRouteLeave(() => { @@ -826,7 +818,7 @@ onMounted(async () => { } } if (res) { - oldOrder.value = res; + carts.setOldOrder(res); showOrder.value = key == "isPayOrder" ? true : false; perpole.value = res.seatNum || 0; } @@ -841,10 +833,14 @@ onMounted(async () => { init(); }); -function refresh() { - oldOrder.value = { +function resetOldOrder() { + carts.setOldOrder({ detailMap: [], - }; + originAmount: 0, + }); +} +function refresh() { + resetOldOrder(); showOrder.value = false; user.value = {}; table.value = {};