fix: 修改代客下单逻辑,收到清空购物车消息和切换台桌时获取该台桌订单

This commit is contained in:
YeMingfei666 2025-03-18 09:22:55 +08:00
parent 61607fcc44
commit 259d6db77f
2 changed files with 18 additions and 12 deletions

View File

@ -3,6 +3,7 @@ import WebSocketManager, { type ApifoxModel, msgType } from "@/utils/websocket";
import orderApi from "@/api/order/order"; import orderApi from "@/api/order/order";
import { useUserStoreHook } from "@/store/modules/user"; import { useUserStoreHook } from "@/store/modules/user";
import { customTruncateToTwoDecimals } from '@/utils/tools' import { customTruncateToTwoDecimals } from '@/utils/tools'
const shopUser = useUserStoreHook(); const shopUser = useUserStoreHook();
export interface CartsState { export interface CartsState {
id: string | number; id: string | number;
@ -409,6 +410,12 @@ export const useCartsStore = defineStore("carts", () => {
} }
} }
//获取历史订单
async function getOldOrder(table_code: string | number) {
const res = await orderApi.getHistoryList({ tableCode: table_code })
setOldOrder(res)
}
function getProductDetails(v: { product_id: string, sku_id: string }) { function getProductDetails(v: { product_id: string, sku_id: string }) {
const goods = goodsMap[v.product_id] const goods = goodsMap[v.product_id]
if (!goods) { if (!goods) {
@ -625,6 +632,7 @@ export const useCartsStore = defineStore("carts", () => {
} }
if (msg.operate_type === "manage_cleanup") { if (msg.operate_type === "manage_cleanup") {
nowCartsClear() nowCartsClear()
getOldOrder(msg.data.table_code)
} }
if (msg.operate_type === "batch") { if (msg.operate_type === "batch") {
concocatSocket({ ...$initParams, table_code: table_code.value }) concocatSocket({ ...$initParams, table_code: table_code.value })

View File

@ -176,7 +176,7 @@
<!-- 订单信息展示 --> <!-- 订单信息展示 -->
<Order <Order
ref="refOrder" ref="refOrder"
:orderInfo="orderInfo" :orderInfo="oldOrder"
@chooseUser="showChooseUser" @chooseUser="showChooseUser"
@paysuccess="refresh" @paysuccess="refresh"
:table="table" :table="table"
@ -273,8 +273,7 @@ function rottableShow() {
} }
async function rottableSuccess(tableCode) { async function rottableSuccess(tableCode) {
const res = await getTableDetail({ tableCode: tableCode }); const res = await getTableDetail({ tableCode: tableCode });
table.value = res; tableClick(res);
carts.changeTable(tableCode);
} }
// //
@ -301,7 +300,6 @@ async function refReturnCartConfirm(e) {
orderId: oldOrder.value.id, orderId: oldOrder.value.id,
}); });
oldOrder.value = res1; oldOrder.value = res1;
orderInfo.value = res1;
carts.setOldOrder(res1); carts.setOldOrder(res1);
} }
} }
@ -346,8 +344,6 @@ function hideOrder() {
} }
const oldOrder = ref({ detailMap: [] }); const oldOrder = ref({ detailMap: [] });
const orderInfo = ref({});
let loadingTimer = null; let loadingTimer = null;
let loading = undefined; let loading = undefined;
@ -410,7 +406,6 @@ async function createOrder(key) {
orderId: res.id, orderId: res.id,
}); });
oldOrder.value = res1; oldOrder.value = res1;
orderInfo.value = res1;
carts.setOldOrder(res1); carts.setOldOrder(res1);
} }
if (key == "only-create") { if (key == "only-create") {
@ -491,10 +486,14 @@ function returnTableLabel(key) {
const item = $status[key]; const item = $status[key];
return item ? item.label : ""; return item ? item.label : "";
} }
function tableClick(item) { async function tableClick(item) {
console.log(item); console.log(item);
getTableDetail({ tableCode: item.tableCode }); // getTableDetail({ tableCode: item.tableCode });
const res = await orderApi.getHistoryList({ tableCode: item.tableCode });
if (res) {
oldOrder.value = res;
carts.setOldOrder(res);
}
table.value = item; table.value = item;
carts.changeTable(item.tableCode); carts.changeTable(item.tableCode);
refTable.value.hide(); refTable.value.hide();
@ -747,7 +746,6 @@ onMounted(async () => {
} }
if (res) { if (res) {
oldOrder.value = res; oldOrder.value = res;
orderInfo.value = res;
showOrder.value = true; showOrder.value = true;
perpole.value = res.seatNum || 0; perpole.value = res.seatNum || 0;
} }
@ -765,7 +763,7 @@ function refresh() {
oldOrder.value = { oldOrder.value = {
detailMap: [], detailMap: [],
}; };
orderInfo.value = {}; oldOrder.value = {};
showOrder.value = false; showOrder.value = false;
user.value = {}; user.value = {};
table.value = {}; table.value = {};