问题修复

This commit is contained in:
2025-12-01 10:50:08 +08:00
parent 0c5ba4b092
commit d2ba7af340
14 changed files with 346 additions and 201 deletions

View File

@@ -52,7 +52,7 @@
<!-- 转桌 -->
<Modal
v-model="modalData.show"
:width="modalData.key != 'editPersonCount' ? '800rpx' : ''"
:width="modalData.key == 'btnClick' ? '800rpx' : ''"
:title="modalData.title"
confirmText="确定"
@confirm="modalConfirm"
@@ -68,6 +68,17 @@
></up-number-box>
</view>
</template>
<template v-if="modalData.key == 'pack'">
<view class="u-p-40 u-font-32 color-333 u-flex u-flex-x-center">
<up-number-box
v-model="modalData.form.packNumber"
integer
:min="0"
:max="packNumberMax"
inputWidth="200"
></up-number-box>
</view>
</template>
<template v-if="modalData.key == 'btnClick'">
<view class="u-p-40 u-font-32 color-333">
<view class="u-flex">
@@ -80,22 +91,23 @@
></chooseTables>
</view>
</view>
<view class="u-flex u-m-t-44">
<text class="font-bold u-m-r-52">转入类型</text>
<up-radio-group v-model="modalData.form.type" placement="row">
<up-radio
:key="1"
label="转桌(部分商品转入)"
:name="1"
></up-radio>
<up-radio
:key="2"
label="并桌(全部商品转入)"
:name="2"
></up-radio>
</up-radio-group>
</view>
<template v-if="modalData.form.type == 1">
<!-- <view class="u-flex u-m-t-44">
<text class="font-bold u-m-r-52">转入类型</text>
<up-radio-group v-model="modalData.form.type" placement="row">
<up-radio
:key="1"
label="转桌(部分商品转入)"
:name="1"
></up-radio>
<up-radio
:key="2"
label="并桌(全部商品转入)"
:name="2"
></up-radio>
</up-radio-group>
</view> -->
<view class="u-flex u-m-t-44">
<text class="font-bold u-m-r-52">购物车商品</text>
</view>
@@ -130,13 +142,14 @@ import * as areaApi from "@/http/api/area.js";
import yskUtils from "ysk-utils";
import go from "@/commons/utils/go.js";
import { reactive, ref, provide, computed,inject } from "vue";
const websocketUtil=inject("websocketUtil")
import { reactive, ref, provide, computed, inject } from "vue";
const websocketUtil = inject("websocketUtil");
const cartStore = useCartStore();
const accountStore = useAccountStore();
cartStore.shopInfo=accountStore.shopInfo;
cartStore.shopInfo = accountStore.shopInfo;
websocketUtil.offMessage();
websocketUtil.onMessage((data) => {
cartStore.onMessage(data);
});
@@ -145,6 +158,7 @@ const modalData = reactive({
key: "",
title: "",
form: {
packNumber: 0,
personCount: 0,
targetTableCode: "",
checks: [],
@@ -192,35 +206,69 @@ async function transferTable() {
targetTableCode: modalData.form.targetTableCode,
detailIds,
});
if (!res) {
uni.showModal({
title: "转桌失败",
icon: "none",
});
return;
}
uni.showToast({
title: "转桌成功",
icon: "none",
});
if (modalData.form.type == 2) {
await orderApi.cancelOrder({
orderId: cartStore.order.id,
shopId: cartStore.order.shopId,
});
const orderRes = await orderApi.getHistoryOrder({
tableCode: modalData.form.targetTableCode,
});
if (orderRes) {
options.orderId = orderRes.id;
getOrderById();
modalData.show = false;
modalData.form.targetTableCode = [];
modalData.form.checks = [];
modalData.form.type = 1;
const tableRes = await tableApi.getShopTableDetail({
tableCode: modalData.form.targetTableCode,
});
if (tableRes && tableRes.id) {
uni.$emit("choose-table", tableRes);
}
const orderRes = await orderApi.getHistoryOrder({
tableCode: modalData.form.targetTableCode,
});
if (orderRes) {
options.orderId = orderRes.id;
}
}
getOrderById();
modalData.show = false;
modalData.form.targetTableCode = [];
modalData.form.checks = [];
modalData.form.type = 1;
}
async function editPersonCount() {
cartStore.personCount = modalData.form.personCount;
modalData.show = false;
}
function editPackNumber() {
const par = {
id: selCart.value.id,
product_id: selCart.value.product_id,
sku_id: selCart.value.sku_id,
pack_number: modalData.form.packNumber,
};
modalData.show = false;
modalData.form.packNumber = 0;
updateCart(par);
}
async function modalConfirm(key) {
if (modalData.key == "transferTable") {
if (modalData.key == "btnClick") {
transferTable();
}
if (modalData.key == "editPersonCount") {
editPersonCount();
}
if (modalData.key == "pack") {
editPackNumber();
}
}
provide("cartStore", cartStore);
@@ -229,6 +277,13 @@ provide("accountStore", accountStore);
const selCart = ref(null);
const packNumberMax = computed(() => {
if (selCart.value) {
return selCart.value.num;
}
return 0;
});
function back() {
uni.navigateBack();
}
@@ -282,9 +337,19 @@ async function getTablelist() {
tableList.value = res.records || [];
}
async function shopTableClear() {
const res = await tableApi.shopTableClear({
id: cartStore.table.id,
const res = await orderApi.cancelOrder({
orderId: cartStore.order.id,
shopId: accountStore.shopInfo.id,
});
if (res) {
uni.showToast({
title: "清台成功",
icon: "none",
});
setTimeout(() => {
uni.navigateBack();
}, 1500);
}
}
async function btnClick(type) {
if (type == "editPersonCount") {
@@ -300,7 +365,7 @@ async function btnClick(type) {
if (type == "clearTable") {
uni.showModal({
title: "提示",
content: "是否清空该桌订单",
content: "该操作会取消未支付的订单,且无法恢复,是否确认清空该桌订单",
success(res) {
if (res.confirm) {
console.log("清空该桌订单");
@@ -310,15 +375,14 @@ async function btnClick(type) {
});
}
if (type == "transfer") {
modalData.form.type == 1;
modalData.form.type = 1;
modalData.title = "转桌";
modalData.show = true;
}
if (type == "changeTable") {
modalData.form.type == 2;
modalData.form.type = 2;
modalData.title = "转桌";
modalData.show = true;
}
if (type == "serveAll") {
@@ -332,6 +396,15 @@ async function btnClick(type) {
if (!selCart.value) {
return;
}
selCart.value = cartStore.allCartList.find((v) => v.id == selCart.value.id);
if (type === "pack") {
modalData.title = "打包";
modalData.key = "pack";
modalData.show = true;
console.log(selCart.value);
modalData.form.packNumber = selCart.value.packNumber;
}
if (type == "changePrice") {
showModel("discount");
return;