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

This commit is contained in:
YeMingfei666 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 oldOrder = useStorage<any>("Instead_olold_order", {
// const oldOrder = useStorage<any>("Instead_olold_order", {
// detailMap: [],
// originAmount: 0
// });
const oldOrder = ref({
detailMap: [],
originAmount: 0
});
})
//代客下单页面商品缓存
const goods = useStorage<any[]>("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,

View File

@ -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;

View File

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

View File

@ -114,7 +114,6 @@
@clearOldOrder="clearOldOrder"
:showOrder="showOrder"
:goodsList="carts.goods"
:oldOrder="oldOrder"
:dinerType="diners.sel"
:perpole="perpole"
:remark="remark"
@ -182,7 +181,7 @@
<!-- 订单信息展示 -->
<Order
ref="refOrder"
:orderInfo="oldOrder"
:orderInfo="carts.oldOrder"
@chooseUser="showChooseUser"
@paysuccess="refresh"
:table="table"
@ -305,7 +304,7 @@ async function refReturnCartConfirm(e) {
console.log(e);
const res = await orderApi.refundOrder({
...e,
orderId: oldOrder.value.id,
orderId: carts.oldOrder.id,
});
ElMessage({
type: res ? "success" : "error",
@ -314,12 +313,11 @@ async function refReturnCartConfirm(e) {
if (res) {
//
const res1 = await orderApi.getHistoryList({
orderId: oldOrder.value.id,
orderId: carts.oldOrder.id,
});
if (res1) {
oldOrder.value = res1;
carts.setOldOrder(res1);
}
carts.setOldOrder(res1);
}
}
function refReturnCartShow(e) {
@ -361,7 +359,6 @@ const showOrder = ref(false);
function hideOrder() {
showOrder.value = false;
}
const oldOrder = ref({ detailMap: [] });
let loadingTimer = null;
let loading = undefined;
@ -387,7 +384,7 @@ async function createOrder(key) {
// return;
// }
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;
nextTick(() => {
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 = {};