diff --git a/src/api/order.js b/src/api/order.js
index f0d3ac2..289041a 100644
--- a/src/api/order.js
+++ b/src/api/order.js
@@ -220,3 +220,16 @@ export function queryPayStatus(params) {
params,
});
}
+
+/**
+ * 订单转桌
+ * @param {*} data
+ * @returns
+ */
+export function mergeOrder(data) {
+ return request({
+ method: "post",
+ url: "/order/admin/order/mergeOrder",
+ data,
+ });
+}
diff --git a/src/components/lodop/refundPrint.js b/src/components/lodop/refundPrint.js
index dc17566..a612834 100644
--- a/src/components/lodop/refundPrint.js
+++ b/src/components/lodop/refundPrint.js
@@ -77,6 +77,9 @@ export default (data) => {
+ 备注:${
+ data.remark
+ }
打印时间:${data.printTime}
diff --git a/src/components/payCard/payCard.vue b/src/components/payCard/payCard.vue
index 2ef7f89..26834c8 100644
--- a/src/components/payCard/payCard.vue
+++ b/src/components/payCard/payCard.vue
@@ -68,7 +68,8 @@
+ :selecttype="props.selecttype" :payType="payType" :payData="payData" @success="scanCodeSuccess"
+ @orderExpired="emit('orderExpired')" />
@@ -261,7 +262,7 @@ watch(props, () => {
money.value = formatDecimal(props.amount)
})
-const emit = defineEmits(["paySuccess"]);
+const emit = defineEmits(["paySuccess", 'orderExpired']);
const money = ref("0");
const discountRateVlaue = ref(0)
@@ -444,6 +445,10 @@ async function confirmOrder() {
emit("paySuccess");
}
} catch (error) {
+ if (error.code == 701) {
+ // 订单已过期需刷新购物车和订单
+ emit('orderExpired')
+ }
console.log(error);
payLoading.value = false;
scanModalRef.value.loading = false;
diff --git a/src/components/payCard/scanModal.vue b/src/components/payCard/scanModal.vue
index 4e7a4bd..4fb9f1a 100644
--- a/src/components/payCard/scanModal.vue
+++ b/src/components/payCard/scanModal.vue
@@ -59,17 +59,11 @@ import { useUser } from "@/store/user.js";
import { useGlobal } from '@/store/global.js'
import { formatDecimal } from '@/utils'
import { microPay, queryOrderStatus, microPayVip, vipPay, queryPayStatus } from '@/api/order.js'
+import { ElMessage } from "element-plus";
const store = useUser();
const global = useGlobal()
-import {
- queryMembermember,
- createMembermember,
- membermemberScanPay,
- accountPaymember,
-} from "@/api/member/index.js";
-import { ElMessage } from "element-plus";
-const emits = defineEmits(["success"]);
+const emits = defineEmits(["success", 'orderExpired']);
const props = defineProps({
amount: {
@@ -181,6 +175,9 @@ async function submitHandle() {
userPayWait.value = true;
fastOrder.value = error.data
autoCheckOrder()
+ } else if (error.code == 701) {
+ // 订单已过期需刷新购物车和订单
+ emits('orderExpired')
} else {
scanCode.value = "";
loading.value = false;
diff --git a/src/store/goods.js b/src/store/goods.js
index 083d743..332b16c 100644
--- a/src/store/goods.js
+++ b/src/store/goods.js
@@ -7,7 +7,6 @@ import { useUser } from "@/store/user.js";
import { useSocket } from "@/store/socket.js";
import useStorage from "@/utils/useStorage.js";
import { formatDecimal } from "@/utils/index.js";
-import { ElMessage } from "element-plus";
// 商品store + 购物车store
export const useGoods = defineStore("goods", {
@@ -21,6 +20,7 @@ export const useGoods = defineStore("goods", {
// tableCode: "66666666",
// }, // 台桌信息
tableInfo: {
+ id: '',
name: "",
num: "",
tableCode: "",
@@ -392,6 +392,8 @@ export const useGoods = defineStore("goods", {
let group_text = "";
if (val.type == "package" && item.pro_group_info) {
group_text = JSON.parse(item.pro_group_info)
+ .flat()
+ .map((item) => item.goods)
.flat()
.map((item) => item.proName)
.join("、");
@@ -548,7 +550,11 @@ export const useGoods = defineStore("goods", {
if (+val.pack_number && !val.is_temporary) {
packFeeNumber += +val.pack_number;
- packFee += +val.pack_number * +val.packFee;
+ if (+val.pack_number > number) {
+ packFee += number * +val.packFee;
+ } else {
+ packFee += +val.pack_number * +val.packFee;
+ }
}
if (val.is_temporary) {
diff --git a/src/store/socket.js b/src/store/socket.js
index 8941af6..e9c87bb 100644
--- a/src/store/socket.js
+++ b/src/store/socket.js
@@ -120,7 +120,14 @@ export const useSocket = defineStore("socket", {
goodsStore.successClearCart();
break;
case "batch":
- // 打包
+ // 整单打包
+ this.cartInit();
+ break;
+ case "rottable":
+ // 转桌
+ useStorage.set("tableCode", data.data.new_table_code);
+ goodsStore.successClearCart();
+ goodsStore.historyOrderAjax(data.data.new_table_code);
this.cartInit();
break;
default:
diff --git a/src/utils/index.js b/src/utils/index.js
index 70983c2..e3ccbaa 100644
--- a/src/utils/index.js
+++ b/src/utils/index.js
@@ -18,7 +18,7 @@ export function RandomNumBoth(Max, Min = 0) {
* 去除字符串中除了数字和点以外的其他字符
* @param {Object} obj
*/
-export function clearNoNum(obj) {
+export function clearNoNum(obj) {
// 如果用户第一位输入的是小数点,则重置输入框内容
if (obj.value != "" && obj.value.substr(0, 1) == ".") {
obj.value = "";
@@ -182,7 +182,7 @@ export function commOrderPrintData(orderInfo) {
skuName: item.skuName,
salePrice: formatDecimal(item.price),
totalAmount: formatDecimal(+item.payAmount),
- proGroupInfo: item.proGroupInfo,
+ proGroupInfo: item.proGroupInfo.map((item) => item.goods).flat(),
});
});
diff --git a/src/views/home/components/goods.vue b/src/views/home/components/goods.vue
index 6a57cb8..1170999 100644
--- a/src/views/home/components/goods.vue
+++ b/src/views/home/components/goods.vue
@@ -414,21 +414,24 @@ function searchHandle() {
// 确认选择规格回调
function skuConfirm(params) {
- // console.log(params);
+ console.log(params);
let goodsItem = goodsStore.cartList.find(goods => goods.product_id == params.productId && goods.sku_id == params.id)
if (goodsItem && goodsItem.id) {
// 编辑新增
- if (params.type && params.type == 'weight') {
+ if (params.goods_type == 'weight') {
// 称重商品
+ console.log('编辑称重商品');
goodsStore.operateCart({ ...goodsItem, number: params.number }, 'edit')
- } else if (params.type && params.type == 'package') {
+ } else if (params.goods_type == 'package') {
// 添加
+ console.log('添加套餐商品');
goodsStore.addCart({ ...params })
} else {
goodsStore.operateCart({ ...goodsItem, number: +goodsItem.number + 1 }, 'edit')
}
} else {
// 添加
+ console.log('直接添加');
if (params.type == 'weight') {
goodsStore.addCart({ ...params, number: params.number })
} else {
@@ -522,7 +525,7 @@ function showSkuHandle(item) {
goodsStore.addCart({
...item.skuList[0], lowPrice: item.skuList[0].salePrice, type: item.type,
goods_type: 'package',
- pro_group_info: item.groupSnap.map((item) => item.goods),
+ pro_group_info: item.groupSnap,
number: item.skuList[0].suitNum
})
}
diff --git a/src/views/home/components/groupModal.vue b/src/views/home/components/groupModal.vue
index d4a9e43..15cca29 100644
--- a/src/views/home/components/groupModal.vue
+++ b/src/views/home/components/groupModal.vue
@@ -87,7 +87,7 @@ function show(item, type = 'add') {
setTimeout(() => {
goodsItem.value.groupSnap.map((item, index) => {
item.goods.map((val, i) => {
- selectGroup[index].map(sg => {
+ selectGroup[index].goods.map(sg => {
if (val.proId == sg.proId) {
tabRefs.value[index].toggleRowSelection(val, true)
}
@@ -158,8 +158,9 @@ function confirmHandle() {
let goodIds = []
goodsItem.value.groupSnap.map((item, index) => {
- let selectNum = tabRefs.value[index].getSelectionRows()
- goodIds.push(selectNum)
+ let obj = { ...item }
+ obj.goods = tabRefs.value[index].getSelectionRows()
+ goodIds.push(obj)
})
// 将商品数据转为一维数组返回
diff --git a/src/views/home/components/settleAccount.vue b/src/views/home/components/settleAccount.vue
index f492901..5131378 100644
--- a/src/views/home/components/settleAccount.vue
+++ b/src/views/home/components/settleAccount.vue
@@ -47,7 +47,7 @@
+ :orderId="goodsStore.orderListInfo.id" @paySuccess="paySuccess" @orderExpired="orderExpiredHnadle" />
+
-
+
¥
最多可退¥{{ formatDecimal(item.payAmount - item.refundAmount, 2) }}
@@ -58,7 +58,7 @@
-
@@ -105,13 +105,20 @@
{{ item }}
+
+
+
+
+ 清空
+