tablecode

This commit is contained in:
gyq
2026-03-19 17:25:24 +08:00
parent 392d4aa676
commit b3d153ab86
6 changed files with 91 additions and 102 deletions

View File

@@ -7,8 +7,8 @@ VITE_APP_BASE_API=/dev-api
# 接口地址 # 接口地址
# VITE_APP_API_URL=https://tapi.cashier.sxczgkj.cn/ # 测试 # VITE_APP_API_URL=https://tapi.cashier.sxczgkj.cn/ # 测试
# VITE_APP_API_URL=https://cashier.sxczgkj.com/ # 正式 VITE_APP_API_URL=https://cashier.sxczgkj.com/ # 正式
VITE_APP_API_URL=http://192.168.1.42/ # 本地 # VITE_APP_API_URL=http://192.168.1.42/ # 本地
VITE_APP_API_PHP_URL=http://192.168.1.42:8000 #php抖音美团测试环境 VITE_APP_API_PHP_URL=http://192.168.1.42:8000 #php抖音美团测试环境
VITE_APP_API_PHP_IMPORT_URL=http://192.168.1.42:8789 #本地php批量导入 VITE_APP_API_PHP_IMPORT_URL=http://192.168.1.42:8789 #本地php批量导入
# VITE_APP_API_PHP_IMPORT_URL=https://diftcs.sxczgkj.com #本地线上php批量导入 # VITE_APP_API_PHP_IMPORT_URL=https://diftcs.sxczgkj.com #本地线上php批量导入
@@ -16,8 +16,8 @@ VITE_APP_BASE_API=/dev-api
# WebSocket 端点(不配置则关闭),线上 ws://api.youlai.tech/ws ,本地 ws://localhost:8989/ws # WebSocket 端点(不配置则关闭),线上 ws://api.youlai.tech/ws ,本地 ws://localhost:8989/ws
# VITE_APP_WS_ENDPOINT=wss://sockets.sxczgkj.com/wss # VITE_APP_WS_ENDPOINT=wss://sockets.sxczgkj.com/wss
# VITE_APP_WS_ENDPOINT=wss://czgeatws.sxczgkj.com/wss # 正式 VITE_APP_WS_ENDPOINT=wss://czgeatws.sxczgkj.com/wss # 正式
VITE_APP_WS_ENDPOINT=ws://192.168.1.42:2348 # 本地 # VITE_APP_WS_ENDPOINT=ws://192.168.1.42:2348 # 本地
# VITE_APP_API_PHP_URL=https://newblockwlx.sxczgkj.cn #php抖音美团正式环境 # VITE_APP_API_PHP_URL=https://newblockwlx.sxczgkj.cn #php抖音美团正式环境
# 启用 Mock 服务 # 启用 Mock 服务

View File

@@ -227,8 +227,8 @@ export const useCartsStore = defineStore("carts", () => {
// 当前购物车数据(现在 getAllGoodsList 能直接访问) // 当前购物车数据(现在 getAllGoodsList 能直接访问)
const list = useStorage<any[]>("carts", []); const list = useStorage<any[]>("carts", []);
// 历史订单数据(现在 getAllGoodsList 能直接访问) // 历史订单数据(现在 getAllGoodsList 能直接访问),不从本地缓存获取,改为从接口获取
const oldOrder = useStorage<any>("Instead_olold_order", { const oldOrder = ref<any>({
detailMap: [], detailMap: [],
originAmount: 0 originAmount: 0
}); });
@@ -833,8 +833,9 @@ export const useCartsStore = defineStore("carts", () => {
} }
// 初始话订单信息/补全历史订单信息 // 初始话订单信息/补全历史订单信息
async function setOldOrder(data: any) { async function setOldOrder(data: any, t: number) {
console.log('补全订单信息', data); console.log('补全历史订单信息来源', t);
// console.log('补全订单信息', data);
oldOrder.value = { oldOrder.value = {
...data, ...data,
detailMap: returnDetailMap(data.detailMap) detailMap: returnDetailMap(data.detailMap)
@@ -849,10 +850,12 @@ export const useCartsStore = defineStore("carts", () => {
let $initParams = {} as ApifoxModel; let $initParams = {} as ApifoxModel;
async function init(initParams: ApifoxModel, $oldOrder: any | undefined) { async function init(initParams: ApifoxModel | undefined, $oldOrder: any | undefined) {
await getGoods({}); console.log('cart.init.initParams', initParams);
if ($oldOrder) setOldOrder($oldOrder); console.log('cart.init.$oldOrder', $oldOrder);
else oldOrder.value = { detailMap: [] };
if (initParams) { if (initParams) {
initParams.table_code = initParams.table_code || ''; initParams.table_code = initParams.table_code || '';
@@ -860,6 +863,16 @@ export const useCartsStore = defineStore("carts", () => {
$initParams = initParams; $initParams = initParams;
} }
await getGoods({});
if ($oldOrder) {
await setOldOrder($oldOrder);
} else if (table_code.value) {
await getOldOrder(table_code.value);
} else {
oldOrder.value = { detailMap: [] };
}
concocatSocket($initParams); concocatSocket($initParams);
} }
@@ -978,7 +991,7 @@ export const useCartsStore = defineStore("carts", () => {
} }
if (msg.operate_type === "product_update") { if (msg.operate_type === "product_update") {
init($initParams, oldOrder.value); init($initParams, oldOrder.value,);
} }
if (msg.type === "bc") { if (msg.type === "bc") {

View File

@@ -60,7 +60,8 @@
<myDialog ref="myDialogRefqs" title="记录" @confirm="confirmqs" width="30%"> <myDialog ref="myDialogRefqs" title="记录" @confirm="confirmqs" width="30%">
<el-form-item label="选择用户"> <el-form-item label="选择用户">
<el-select v-model="datas.DialogForm.userId" filterable placeholder="请选择选择用户" style="width: 240px"> <el-select v-model="datas.DialogForm.userId" filterable placeholder="请选择选择用户" style="width: 240px">
<el-option v-for="item in datas.options" :key="item.userId" :label="item.nickName" :value="item.userId" /> <el-option v-for="item in datas.options" :key="item.userId" :label="`${item.nickName}/${item.phone}`"
:value="item.userId" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="数量"> <el-form-item label="数量">

View File

@@ -4,38 +4,22 @@
<template v-if="carts.list && carts.list.length >= 1"> <template v-if="carts.list && carts.list.length >= 1">
<!-- 当前购物车 --> <!-- 当前购物车 -->
<div v-for="(item, index) in carts.list" :key="index"> <div v-for="(item, index) in carts.list" :key="index">
<carts-item <carts-item :item="item" :useVipPrice="carts.useVipPrice" @changeNumber="changeNumber"
:item="item" :selCart="carts.selCart" @itemClick="itemClick(item)" @editNote="editNote"></carts-item>
:useVipPrice="carts.useVipPrice"
@changeNumber="changeNumber"
:selCart="carts.selCart"
@itemClick="itemClick(item)"
@editNote="editNote"
></carts-item>
</div> </div>
</template> </template>
<!-- 赠菜 --> <!-- 赠菜 -->
<div class="cart-title" v-if="carts.giftList.length > 0"><span>以下是优惠菜品</span></div> <div class="cart-title" v-if="carts.giftList.length > 0"><span>以下是优惠菜品</span></div>
<div v-for="(item, index) in carts.giftList" :key="index"> <div v-for="(item, index) in carts.giftList" :key="index">
<carts-item <carts-item :item="item" @changeNumber="changeNumber" :useVipPrice="carts.useVipPrice" :selCart="carts.selCart"
:item="item" @itemClick="itemClick(item)" @editNote="editNote"></carts-item>
@changeNumber="changeNumber"
:useVipPrice="carts.useVipPrice"
:selCart="carts.selCart"
@itemClick="itemClick(item)"
@editNote="editNote"
></carts-item>
</div> </div>
<el-empty :image-size="60" v-if="carts.isEmpty" description="点餐列表为空" /> <el-empty :image-size="60" v-if="carts.isEmpty" description="点餐列表为空" />
<!-- 打包费 --> <!-- 打包费 -->
<template v-if="carts.packNum > 0"> <template v-if="carts.packNum > 0">
<div class="cart-title"><span>打包费</span></div> <div class="cart-title"><span>打包费</span></div>
<extra-fee <extra-fee name="打包费" :number="carts.packNum" :price="carts.orderCostSummary.packFee"></extra-fee>
name="打包费"
:number="carts.packNum"
:price="carts.orderCostSummary.packFee"
></extra-fee>
</template> </template>
<!-- 餐位费 --> <!-- 餐位费 -->
<template v-if="perpole >= 1 && carts.dinnerType == 'dine-in'"> <template v-if="perpole >= 1 && carts.dinnerType == 'dine-in'">
@@ -56,17 +40,9 @@
</div> </div>
<div v-for="(detaiItem, index) in item" :key="index"> <div v-for="(detaiItem, index) in item" :key="index">
<carts-item <carts-item :useVipPrice="carts.useVipPrice" :canChangeNumber="false" isOld :dinerType="dinerType"
:useVipPrice="carts.useVipPrice" :item="detaiItem" @changeNumber="changeNumber" :selCart="carts.selCart" @itemClick="itemClick(detaiItem)"
:canChangeNumber="false" @editNote="editNote"></carts-item>
isOld
:dinerType="dinerType"
:item="detaiItem"
@changeNumber="changeNumber"
:selCart="carts.selCart"
@itemClick="itemClick(detaiItem)"
@editNote="editNote"
></carts-item>
</div> </div>
</template> </template>
@@ -74,14 +50,9 @@
</div> </div>
<div class="bottom"> <div class="bottom">
<div class="u-flex u-row-right"> <div class="u-flex u-row-right">
<el-tooltip <el-tooltip placement="top" effect="light" popper-class="youhui-tips" :popper-options="{
placement="top" 'background-color': '#fff',
effect="light" }">
popper-class="youhui-tips"
:popper-options="{
'background-color': '#fff',
}"
>
<template #content> <template #content>
<div class="u-flex color-000 u-font-14 u-row-between"> <div class="u-flex color-000 u-font-14 u-row-between">
<span class="font-bold">会员优惠</span> <span class="font-bold">会员优惠</span>
@@ -111,28 +82,13 @@
</div> </div>
</div> </div>
<div class="btn-group" v-if="isXianFuKuan"> <div class="btn-group" v-if="isXianFuKuan">
<el-button <el-button type="primary" size="large" :disabled="!disabledMorePay" @click="createOrder('wx-aiplay')">
type="primary"
size="large"
:disabled="!disabledMorePay"
@click="createOrder('wx-aiplay')"
>
微信/支付宝 微信/支付宝
</el-button> </el-button>
<el-button <el-button type="primary" size="large" :disabled="!disabledMorePay" @click="createOrder('cash')">
type="primary"
size="large"
:disabled="!disabledMorePay"
@click="createOrder('cash')"
>
现金 现金
</el-button> </el-button>
<el-button <el-button type="primary" size="large" :disabled="!disabledMorePay" @click="createOrder('more-pay')">
type="primary"
size="large"
:disabled="!disabledMorePay"
@click="createOrder('more-pay')"
>
更多支付 更多支付
</el-button> </el-button>
</div> </div>
@@ -145,31 +101,20 @@
<el-button type="primary" size="large" :disabled="disabledMorePay" @click="createOrder('to-pay')"> <el-button type="primary" size="large" :disabled="disabledMorePay" @click="createOrder('to-pay')">
去结账 去结账
</el-button> --> </el-button> -->
<el-button <el-button type="primary" size="large"
type="primary"
size="large"
:disabled="carts.list.length == 0 || carts.oldOrder.detailMap.length == 0" :disabled="carts.list.length == 0 || carts.oldOrder.detailMap.length == 0"
@click="createOrder('only-create')" @click="createOrder('only-create')">
>
仅下单 仅下单
</el-button> </el-button>
<el-button <el-button type="primary" size="large"
type="primary"
size="large"
:disabled="carts.list.length == 0 && isEmptyObject(carts.oldOrder.detailMap)" :disabled="carts.list.length == 0 && isEmptyObject(carts.oldOrder.detailMap)"
@click="createOrder('to-pay')" @click="createOrder('to-pay')">
>
去结账 去结账
</el-button> </el-button>
</template> </template>
<template v-else> <template v-else>
<el-button type="default" size="large" @click="hideOrder()">加菜/返回</el-button> <el-button type="default" size="large" @click="hideOrder()">加菜/返回</el-button>
<el-button <el-button type="primary" size="large" :disabled="!carts.isLinkFinshed" @click="createOrder('to-pay')">
type="primary"
size="large"
:disabled="!carts.isLinkFinshed"
@click="createOrder('to-pay')"
>
立即支付 立即支付
</el-button> </el-button>
</template> </template>

View File

@@ -672,6 +672,7 @@ function returnPayParams() {
newCustomerDiscountAmount: newCustomerDiscountAmount:
carts.newUserDiscount !== null ? carts.newUserDiscount.amount : 0, // 新客立减金额 carts.newUserDiscount !== null ? carts.newUserDiscount.amount : 0, // 新客立减金额
vipDiscountAmount: carts.orderCostSummary.vipDiscountAmount, // 超级会员折扣 vipDiscountAmount: carts.orderCostSummary.vipDiscountAmount, // 超级会员折扣
remark: cashRemark.value, // 现金支付备注
}, },
}; };
} }
@@ -700,15 +701,19 @@ async function getPaytype() {
payTypes.sel = payTypes.list.findIndex((v) => v.payType == "cash"); payTypes.sel = payTypes.list.findIndex((v) => v.payType == "cash");
} }
} }
const cashRemark = ref("");
function nowPayClick(payType) { function nowPayClick(payType) {
payType = payType || payTypes.list[payTypes.sel].payType; payType = payType || payTypes.list[payTypes.sel].payType;
if (payType === "cash") { if (payType === "cash") {
ElMessageBox.confirm("是否确认已现金收款:" + currentpayMoney.value + "元", "快捷支付", { ElMessageBox.prompt("是否确认已现金收款:" + currentpayMoney.value + "元", "快捷支付", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning", type: "warning",
inputPlaceholder: '请输入现金支付备注(选填)',
}) })
.then(() => { .then(({ value }) => {
cashRemark.value = value || "";
payOrder("cash"); payOrder("cash");
}) })
.catch(() => { }); .catch(() => { });

View File

@@ -246,7 +246,8 @@ async function refReturnCartConfirm(e) {
if (res) { if (res) {
// 获取历史订单数据 // 获取历史订单数据
const res1 = await orderApi.getHistoryList({ const res1 = await orderApi.getHistoryList({
orderId: carts.oldOrder.id, // orderId: carts.oldOrder.id,
tableCode: carts.table_code,
}); });
if (res1) { if (res1) {
carts.setOldOrder(res1); carts.setOldOrder(res1);
@@ -370,7 +371,8 @@ async function createOrder(key) {
if (res.id) { if (res.id) {
// 获取历史订单数据 // 获取历史订单数据
const res1 = await orderApi.getHistoryList({ const res1 = await orderApi.getHistoryList({
orderId: res.id, // orderId: carts.oldOrder.id,
tableCode: carts.table_code,
}); });
if (res1) { if (res1) {
carts.setOldOrder(res1); carts.setOldOrder(res1);
@@ -403,7 +405,8 @@ async function clearOldOrderCallback() {
try { try {
// 获取历史订单数据 // 获取历史订单数据
const res = await orderApi.getHistoryList({ const res = await orderApi.getHistoryList({
orderId: carts.oldOrder.id, // orderId: carts.oldOrder.id,
tableCode: carts.table_code,
}); });
const noPayStatus = { const noPayStatus = {
cancelled: "订单已取消", cancelled: "订单已取消",
@@ -415,8 +418,23 @@ async function clearOldOrderCallback() {
showOrder.value = false; showOrder.value = false;
return; return;
} }
if (res) { console.log('清空历史订单回调', res);
if (res.data !== null) {
console.log('还有历史订单数据');
carts.setOldOrder(res); carts.setOldOrder(res);
} else {
console.log('历史订单没数据了');
carts.oldOrder = {
detailMap: [],
originAmount: 0,
};
carts.setOldOrder({
detailMap: [],
originAmount: 0,
}, 9);
// carts.clearHistory();
// resetOldOrder();
} }
} catch (error) { } catch (error) {
console.log(error); console.log(error);
@@ -748,7 +766,7 @@ function init() {
getTableList(); getTableList();
getCategoryList(); getCategoryList();
changeCartsDinerType(); changeCartsDinerType();
carts.init({ table_code: carts.tableInfo.tableCode }, carts.oldOrder); carts.init({ table_code: carts.tableInfo.tableCode });
} }
onBeforeRouteLeave(() => { onBeforeRouteLeave(() => {
@@ -760,13 +778,18 @@ onMounted(async () => {
const { id, tableCode, key } = route.query; const { id, tableCode, key } = route.query;
if (id || tableCode) { if (id || tableCode) {
// 获取历史订单数据 // 获取历史订单数据
const res = id // const res = id
? await orderApi.getHistoryList({ // ? await orderApi.getHistoryList({
orderId: id, // orderId: id,
}) // })
: await orderApi.getHistoryList({ // : await orderApi.getHistoryList({
tableCode, // tableCode,
}); // });
const res = await orderApi.getHistoryList({
// orderId: carts.oldOrder.id,
tableCode: carts.table_code,
});
const noPayStatus = { const noPayStatus = {
cancelled: "订单已取消", cancelled: "订单已取消",
done: "订单已关闭", done: "订单已关闭",
@@ -799,6 +822,8 @@ onMounted(async () => {
} }
} }
if (res) { if (res) {
console.log('res31231231331-=====--', res);
carts.setOldOrder(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;