feat: 代客下单更新,修复店铺列表编辑展示问题

This commit is contained in:
2025-03-04 10:34:19 +08:00
parent b71ca19c0d
commit bd59f05d26
19 changed files with 953 additions and 312 deletions

View File

@@ -20,10 +20,12 @@
</div>
<div>
<div class="u-flex">
<div class="ft-13 color-000">{{ user.nickName }}</div>
<div class="ft-13 color-000 no-wrap">{{ user.nickName }}</div>
<div class="vip" v-if="user.isVip">VIP{{ user.isVip }}</div>
</div>
<div style="margin-top: 2px" class="color-666 ft-12">余额{{ user.amount }}</div>
<div style="margin-top: 2px" class="no-wrap color-666 ft-12">
余额{{ user.amount }}
</div>
</div>
</div>
</div>
@@ -219,8 +221,12 @@ import productApi from "@/api/product/index";
import tableApi from "@/api/account/table";
import $status from "@/views/tool/table/status.js";
import orderApi from "@/api/order/order";
import shopUserApi from "@/api/account/shopUser";
import { useCartsStore } from "@/store/modules/carts";
import { useUserStore } from "@/store/modules/user";
import { ElLoading } from "element-plus";
const carts = useCartsStore();
const shopUser = useUserStore();
@@ -245,9 +251,8 @@ function showDinerNumber() {
let user = ref({});
const refChooseUser = ref();
function chooseUserConfirm(e) {
console.log(e);
user.value = e;
refCart.value.carts.changeUser(e);
user.value = e ? e : {};
refCart.value.carts.changeUser(e ? e : {});
}
function showChooseUser() {
refChooseUser.value.open();
@@ -258,42 +263,62 @@ const showOrder = ref(false);
function hideOrder() {
showOrder.value = false;
}
const oldOrder = ref({});
const oldOrder = ref({ detailMap: [] });
const orderInfo = ref({});
let createOrderTimer = null;
async function createOrder(key) {
console.log(refCart.value.carts.table_code);
const res = await orderApi.add({
orderId: oldOrder.value.id || "",
shopId: shopUser.userInfo.id,
userId: user.value.userId,
seatNum: 0,
packFee: refCart.value.carts.packFee * 1,
originAmount: refCart.value.carts.payMoney * 1,
tableCode: refCart.value.carts.table_code,
dineMode: diners.sel == 0 ? "dine-in" : "take-out",
remark: "",
seatNum: perpole.value * 1,
placeNum: 1,
waitCall: false,
vipPrice: user.value.id && user.value.isVip,
clearTimeout(createOrderTimer);
const loading = ElLoading.service({
lock: true,
text: "订单生成中,请稍等……",
background: "rgba(0, 0, 0, 0.7)",
});
if (res) {
refCart.value.carts.clear();
if (key == "only-create") {
router.replace(route.path);
return;
createOrderTimer = setTimeout(() => {
ElMessage.error("订单生成超时");
loading.close();
}, 1000 * 20);
try {
const res = await orderApi.add({
orderId: oldOrder.value.id || "",
shopId: shopUser.userInfo.id,
userId: user.value.userId,
seatNum: 0,
packFee: refCart.value.carts.packFee * 1,
originAmount: refCart.value.carts.payMoney * 1,
tableCode: refCart.value.carts.table_code,
dineMode: diners.sel == 0 ? "dine-in" : "take-out",
remark: "",
seatNum: perpole.value * 1,
placeNum: oldOrder.value.placeNum * 1 + 1,
waitCall: false,
vipPrice: user.value.id && user.value.isVip,
});
clearTimeout(createOrderTimer);
loading.close();
if (res) {
refCart.value.carts.clear();
if (key == "only-create") {
router.replace(route.path);
return;
}
if (res.id) {
// 获取历史订单数据
const res1 = await orderApi.getHistoryList({
orderId: res.id,
});
oldOrder.value = res1;
orderInfo.value = res1;
refCart.value.carts.init();
}
showOrder.value = true;
// oldOrder.value = res;
}
if (key == "to-pay" && oldOrder.value.id) {
// 获取历史订单数据
const res = await orderApi.getHistoryList({
orderId: oldOrder.value.id,
});
oldOrder.value = res;
}
orderInfo.value = res;
showOrder.value = true;
// oldOrder.value = res;
} catch (error) {
clearTimeout(createOrderTimer);
}
}
@@ -580,12 +605,21 @@ onMounted(async () => {
};
if (noPayStatus[res.status]) {
ElMessage.error(noPayStatus[res.status]);
refresh();
router.replace(route.path);
console.log(route.path);
setTimeout(() => {
refCart.value.carts.dataReset();
refresh();
}, 2000);
return;
}
if (res.tableCode) {
table.value = { tableCode: res.tableCode };
}
if (res.userId) {
const userRes = await shopUserApi.get({ userId: res.userId });
user.value = userRes;
}
if (res) {
oldOrder.value = res;
orderInfo.value = res;
@@ -599,7 +633,10 @@ onMounted(async () => {
});
function refresh() {
router.go(0);
router.replace(route.path);
setTimeout(() => {
router.go(1000);
}, 1500);
}
</script>