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://cashier.sxczgkj.com/ # 正式
VITE_APP_API_URL=http://192.168.1.42/ # 本地
VITE_APP_API_URL=https://cashier.sxczgkj.com/ # 正式
# 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_IMPORT_URL=http://192.168.1.42:8789 #本地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
# VITE_APP_WS_ENDPOINT=wss://sockets.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=wss://czgeatws.sxczgkj.com/wss # 正式
# VITE_APP_WS_ENDPOINT=ws://192.168.1.42:2348 # 本地
# VITE_APP_API_PHP_URL=https://newblockwlx.sxczgkj.cn #php抖音美团正式环境
# 启用 Mock 服务

View File

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

View File

@@ -60,7 +60,8 @@
<myDialog ref="myDialogRefqs" title="记录" @confirm="confirmqs" width="30%">
<el-form-item label="选择用户">
<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-form-item>
<el-form-item label="数量">

View File

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

View File

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

View File

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