feat: 代客下单增加删除历史订单同步

This commit is contained in:
2025-04-01 13:25:24 +08:00
parent 5cb9943d2f
commit 52fb5b9fb5
4 changed files with 43 additions and 36 deletions

View File

@@ -37,10 +37,14 @@ export const useCartsStore = defineStore("carts", () => {
//当前购物车数据 //当前购物车数据
const list = useStorage<any[]>("carts", []); const list = useStorage<any[]>("carts", []);
//历史订单数据 //历史订单数据
const oldOrder = useStorage<any>("Instead_olold_order", { // const oldOrder = useStorage<any>("Instead_olold_order", {
// detailMap: [],
// originAmount: 0
// });
const oldOrder = ref({
detailMap: [], detailMap: [],
originAmount: 0 originAmount: 0
}); })
//代客下单页面商品缓存 //代客下单页面商品缓存
const goods = useStorage<any[]>("Instead_goods", []); const goods = useStorage<any[]>("Instead_goods", []);
@@ -367,6 +371,10 @@ export const useCartsStore = defineStore("carts", () => {
cart_id cart_id
}); });
} }
//清空历史订单
function clearHistory() {
sendMessage('clearOrder', {});
}
function del(data: any) { function del(data: any) {
@@ -447,8 +455,15 @@ export const useCartsStore = defineStore("carts", () => {
//获取历史订单 //获取历史订单
async function getOldOrder(table_code: string | number) { async function getOldOrder(table_code: string | number) {
const res = await orderApi.getHistoryList({ tableCode: table_code }) const res = await orderApi.getHistoryList({ tableCode: table_code })
console.log('getOldOrder');
console.log(res);
if (res) { if (res) {
setOldOrder(res) setOldOrder(res)
} else {
oldOrder.value = {
detailMap: [],
originAmount: 0
}
} }
} }
@@ -551,7 +566,7 @@ export const useCartsStore = defineStore("carts", () => {
if ($oldOrder) { if ($oldOrder) {
setOldOrder($oldOrder) setOldOrder($oldOrder)
} else { } else {
oldOrder.value = { detailMap: [] } oldOrder.value = { detailMap: [], originAmount: 0 }
} }
// console.log('oldOrder.detailMap', oldOrder.value.detailMap) // console.log('oldOrder.detailMap', oldOrder.value.detailMap)
@@ -690,6 +705,9 @@ export const useCartsStore = defineStore("carts", () => {
if (msg.operate_type === "batch") { if (msg.operate_type === "batch") {
concocatSocket({ ...$initParams, table_code: table_code.value }) concocatSocket({ ...$initParams, table_code: table_code.value })
} }
if (msg.operate_type === "manage_clearOrder") {
getOldOrder(msg.data.table_code)
}
if (msg.operate_type === "product_update") { if (msg.operate_type === "product_update") {
console.log('商品更新') console.log('商品更新')
init($initParams, oldOrder.value) init($initParams, oldOrder.value)
@@ -711,6 +729,7 @@ export const useCartsStore = defineStore("carts", () => {
WebSocketManager.sendMessage(msg); WebSocketManager.sendMessage(msg);
} }
return { return {
clearHistory,
disconnect, disconnect,
dinnerType, dinnerType,
changePack, changePack,

View File

@@ -13,7 +13,7 @@ export interface ApifoxModel {
[property: string]: string | number | undefined; // 限制额外属性类型 [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 { class WebSocketManager {
private client: WebSocket | null = null; private client: WebSocket | null = null;

View File

@@ -197,14 +197,6 @@ const props = defineProps({
type: Boolean, type: Boolean,
default: false, default: false,
}, },
oldOrder: {
type: Object,
default: () => {
return {
detailMap: [],
};
},
},
goodsList: { goodsList: {
type: Array, type: Array,
default: () => [], default: () => [],

View File

@@ -114,7 +114,6 @@
@clearOldOrder="clearOldOrder" @clearOldOrder="clearOldOrder"
:showOrder="showOrder" :showOrder="showOrder"
:goodsList="carts.goods" :goodsList="carts.goods"
:oldOrder="oldOrder"
:dinerType="diners.sel" :dinerType="diners.sel"
:perpole="perpole" :perpole="perpole"
:remark="remark" :remark="remark"
@@ -182,7 +181,7 @@
<!-- 订单信息展示 --> <!-- 订单信息展示 -->
<Order <Order
ref="refOrder" ref="refOrder"
:orderInfo="oldOrder" :orderInfo="carts.oldOrder"
@chooseUser="showChooseUser" @chooseUser="showChooseUser"
@paysuccess="refresh" @paysuccess="refresh"
:table="table" :table="table"
@@ -305,7 +304,7 @@ async function refReturnCartConfirm(e) {
console.log(e); console.log(e);
const res = await orderApi.refundOrder({ const res = await orderApi.refundOrder({
...e, ...e,
orderId: oldOrder.value.id, orderId: carts.oldOrder.id,
}); });
ElMessage({ ElMessage({
type: res ? "success" : "error", type: res ? "success" : "error",
@@ -314,12 +313,11 @@ async function refReturnCartConfirm(e) {
if (res) { if (res) {
// 获取历史订单数据 // 获取历史订单数据
const res1 = await orderApi.getHistoryList({ const res1 = await orderApi.getHistoryList({
orderId: oldOrder.value.id, orderId: carts.oldOrder.id,
}); });
if (res1) { if (res1) {
oldOrder.value = res1; carts.setOldOrder(res1);
} }
carts.setOldOrder(res1);
} }
} }
function refReturnCartShow(e) { function refReturnCartShow(e) {
@@ -361,7 +359,6 @@ const showOrder = ref(false);
function hideOrder() { function hideOrder() {
showOrder.value = false; showOrder.value = false;
} }
const oldOrder = ref({ detailMap: [] });
let loadingTimer = null; let loadingTimer = null;
let loading = undefined; let loading = undefined;
@@ -387,7 +384,7 @@ async function createOrder(key) {
// return; // return;
// } // }
const payArr = ["wx-aiplay", "cash", "to-pay"]; const payArr = ["wx-aiplay", "cash", "to-pay"];
if (payArr.includes(key) && carts.isEmpty && oldOrder.value.id) { if (payArr.includes(key) && carts.isEmpty && carts.oldOrder.id) {
showOrder.value = true; showOrder.value = true;
nextTick(() => { nextTick(() => {
refOrder.value.nowPayClick(key || ""); refOrder.value.nowPayClick(key || "");
@@ -406,7 +403,7 @@ async function createOrder(key) {
loading.close(); loading.close();
}, 1000 * 20); }, 1000 * 20);
const res = await orderApi.add({ const res = await orderApi.add({
orderId: oldOrder.value.id || "", orderId: carts.oldOrder.id || "",
shopId: shopUser.userInfo.id, shopId: shopUser.userInfo.id,
userId: user.value.userId, userId: user.value.userId,
packFee: carts.packFee * 1, packFee: carts.packFee * 1,
@@ -415,7 +412,7 @@ async function createOrder(key) {
dineMode: diners.sel == 0 ? "dine-in" : "take-out", dineMode: diners.sel == 0 ? "dine-in" : "take-out",
remark: remark.value, remark: remark.value,
seatNum: perpole.value * 1, seatNum: perpole.value * 1,
placeNum: oldOrder.value.placeNum * 1 + 1, placeNum: carts.oldOrder.placeNum * 1 + 1,
waitCall: false, waitCall: false,
vipPrice: user.value.id && user.value.isVip, vipPrice: user.value.id && user.value.isVip,
}); });
@@ -436,9 +433,8 @@ async function createOrder(key) {
orderId: res.id, orderId: res.id,
}); });
if (res1) { if (res1) {
oldOrder.value = res1; carts.setOldOrder(res1);
} }
carts.setOldOrder(res1);
} }
if (key == "only-create") { if (key == "only-create") {
return; return;
@@ -467,13 +463,14 @@ async function clearOldOrder(params) {
const res1 = params.placeNum const res1 = params.placeNum
? await orderApi.rmPlaceOrder(params) ? await orderApi.rmPlaceOrder(params)
: await orderApi.cancelOrder(params); : await orderApi.cancelOrder(params);
carts.clearHistory();
ElMessage({ ElMessage({
type: res1 ? "success" : "error", type: res1 ? "success" : "error",
message: res1 ? "删除成功" : "删除失败", message: res1 ? "删除成功" : "删除失败",
}); });
// 获取历史订单数据 // 获取历史订单数据
const res = await orderApi.getHistoryList({ const res = await orderApi.getHistoryList({
orderId: oldOrder.value.id, orderId: carts.oldOrder.id,
}); });
const noPayStatus = { const noPayStatus = {
cancelled: "订单已取消", cancelled: "订单已取消",
@@ -481,15 +478,11 @@ async function clearOldOrder(params) {
}; };
if (noPayStatus[res.status]) { if (noPayStatus[res.status]) {
// ElMessage.error(noPayStatus[res.status]); // ElMessage.error(noPayStatus[res.status]);
oldOrder.value = { resetOldOrder();
detailMap: [],
};
carts.oldOrder = oldOrder.value;
showOrder.value = false; showOrder.value = false;
return; return;
} }
if (res) { if (res) {
oldOrder.value = res;
carts.setOldOrder(res); carts.setOldOrder(res);
} }
} }
@@ -559,7 +552,6 @@ async function tableClick(item) {
// getTableDetail({ tableCode: item.tableCode }); // getTableDetail({ tableCode: item.tableCode });
const res = await orderApi.getHistoryList({ tableCode: item.tableCode }); const res = await orderApi.getHistoryList({ tableCode: item.tableCode });
if (res) { if (res) {
oldOrder.value = res;
carts.setOldOrder(res); carts.setOldOrder(res);
} }
table.value = item; table.value = item;
@@ -777,7 +769,7 @@ function init() {
getTableList(); getTableList();
getCategoryList(); getCategoryList();
changeCartsDinerType(); changeCartsDinerType();
carts.init({ table_code: table.value.tableCode }, oldOrder.value); carts.init({ table_code: table.value.tableCode }, carts.oldOrder);
} }
onBeforeRouteLeave(() => { onBeforeRouteLeave(() => {
@@ -826,7 +818,7 @@ onMounted(async () => {
} }
} }
if (res) { if (res) {
oldOrder.value = res; carts.setOldOrder(res);
showOrder.value = key == "isPayOrder" ? true : false; showOrder.value = key == "isPayOrder" ? true : false;
perpole.value = res.seatNum || 0; perpole.value = res.seatNum || 0;
} }
@@ -841,10 +833,14 @@ onMounted(async () => {
init(); init();
}); });
function refresh() { function resetOldOrder() {
oldOrder.value = { carts.setOldOrder({
detailMap: [], detailMap: [],
}; originAmount: 0,
});
}
function refresh() {
resetOldOrder();
showOrder.value = false; showOrder.value = false;
user.value = {}; user.value = {};
table.value = {}; table.value = {};