优化打包、订单云打印
This commit is contained in:
parent
64f539623f
commit
177d987769
|
|
@ -113,8 +113,8 @@ export default (data) => {
|
|||
`;
|
||||
|
||||
let tableBody = "";
|
||||
if (data.productDatalist && data.productDatalist.length) {
|
||||
for (let item of data.productDatalist) {
|
||||
if (data.productDataList && data.productDataList.length) {
|
||||
for (let item of data.productDataList) {
|
||||
tableBody += `
|
||||
<tr>
|
||||
<td style="font-size: 12px;width:75%;">
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
</div>
|
||||
<span class="title">{{ item.payName }}</span>
|
||||
</div>
|
||||
<div class="item" :class="{ active: payActive == 'buyer' }"
|
||||
<!-- <div class="item" :class="{ active: payActive == 'buyer' }"
|
||||
@click="payTypeChange('buyer', { payType: 'buyer' })">
|
||||
<div class="icon">
|
||||
<div class="img"
|
||||
|
|
@ -37,7 +37,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<span class="title">挂账</span>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="input_wrap">
|
||||
<div class="input" style="flex: 1">付款:¥{{ money }}</div>
|
||||
|
|
@ -255,11 +255,16 @@ const props = defineProps({
|
|||
orderList: {
|
||||
type: Array,
|
||||
default: []
|
||||
},
|
||||
isPrint: {
|
||||
type: [Number, String],
|
||||
default: 1,
|
||||
}
|
||||
});
|
||||
|
||||
watch(props, () => {
|
||||
money.value = formatDecimal(props.amount)
|
||||
payData.value.checkOrderPay.isPrint = props.isPrint
|
||||
})
|
||||
|
||||
const emit = defineEmits(["paySuccess", 'orderExpired']);
|
||||
|
|
@ -383,14 +388,18 @@ async function payTypeChange(index, item) {
|
|||
SelectVipUserRef.value.show()
|
||||
}
|
||||
}
|
||||
if (item.payType == "buyer") {
|
||||
if (item.payType == "arrears") {
|
||||
// 挂账支付
|
||||
showBuyerHandle();
|
||||
}
|
||||
if (payActive.value != "buyer") {
|
||||
if (payList.value[payActive.value].payType == "deposit") {
|
||||
scanModalRef.value.show();
|
||||
}
|
||||
if(item.payType == 'deposit'){
|
||||
scanModalRef.value.show();
|
||||
}
|
||||
// if (payActive.value != "buyer") {
|
||||
// if (payList.value[payActive.value].payType == "deposit") {
|
||||
|
||||
// }
|
||||
// }
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
|
|
@ -406,7 +415,7 @@ async function confirmOrder() {
|
|||
payData.value.checkOrderPay.couponList = [...couponResList1.value.map(item => item.id), ...couponResList2.value.map(item => item.id)];
|
||||
|
||||
// await staffPermission("yun_xu_shou_kuan");
|
||||
if (payActive.value == "buyer") {
|
||||
if (payList.value[payActive.value].payType == "arrears") {
|
||||
showBuyerHandle();
|
||||
return
|
||||
} else if (payList.value[payActive.value].payType == "scanCode") {
|
||||
|
|
@ -823,6 +832,7 @@ function reset() {
|
|||
roundAmount: 0, // 抹零金额 减免多少钱
|
||||
pointsDiscountAmount: 0, // 积分抵扣金额(tb_points_basic_setting表)
|
||||
pointsNum: 0, // 使用的积分数量 (扣除各类折扣 enable_deduction后使用)
|
||||
isPrint: props.isPrint
|
||||
},
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
<el-button plain type="info" style="width: 100%" @click="inputHandle(item)">{{ item }}</el-button>
|
||||
</div>
|
||||
<div>
|
||||
<el-button plain type="info" disabled style="width: 100%">.</el-button>
|
||||
<el-button plain type="info" style="width: 100%" @click="inputHandle('.')">.</el-button>
|
||||
</div>
|
||||
<div>
|
||||
<el-button plain type="info" style="width: 100%" @click="inputHandle(0)">0</el-button>
|
||||
|
|
@ -17,7 +17,8 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<el-button type="primary" style="width: 100%" :loading="loading" @click="confirmHandle">确认</el-button>
|
||||
<el-button type="primary" style="width: 100%" :disabled="number <= 0" :loading="loading"
|
||||
@click="confirmHandle">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
|
@ -25,6 +26,7 @@
|
|||
<script setup>
|
||||
import { ref } from "vue";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { clearNoNum } from '@/utils/index.js'
|
||||
|
||||
const props = defineProps({
|
||||
type: {
|
||||
|
|
@ -61,6 +63,7 @@ function opne() {
|
|||
// 输入
|
||||
function inputHandle(n) {
|
||||
number.value += n;
|
||||
number.value = clearNoNum({ value: number.value })
|
||||
}
|
||||
|
||||
// 删除
|
||||
|
|
@ -72,7 +75,7 @@ function delHandle() {
|
|||
const loading = ref(false)
|
||||
// 确认
|
||||
function confirmHandle() {
|
||||
if (!number.value) return
|
||||
if (!number.value || !number.value <= 0) return
|
||||
if (props.type == 2) {
|
||||
if (number.value.length < 6) {
|
||||
ElMessage.error('请输入正确的密码')
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ export const useGoods = defineStore("goods", {
|
|||
// tableCode: "66666666",
|
||||
// }, // 台桌信息
|
||||
tableInfo: {
|
||||
id: '',
|
||||
id: "",
|
||||
name: "",
|
||||
num: "",
|
||||
tableCode: "",
|
||||
|
|
@ -175,7 +175,6 @@ export const useGoods = defineStore("goods", {
|
|||
}),
|
||||
});
|
||||
}
|
||||
// val = this.completeGoodsInfo(val);
|
||||
this.orderList = arr;
|
||||
console.log("this.orderList===", this.orderList);
|
||||
}
|
||||
|
|
@ -189,15 +188,17 @@ export const useGoods = defineStore("goods", {
|
|||
await this.getGoodsList();
|
||||
|
||||
let tableCode = useStorage.get("tableCode");
|
||||
if (tableCode) this.historyOrderAjax(tableCode);
|
||||
if (tableCode) {
|
||||
await this.historyOrderAjax(tableCode);
|
||||
}
|
||||
},
|
||||
// 切换商品分类
|
||||
setCategoryIndex(index) {
|
||||
async setCategoryIndex(index) {
|
||||
this.categoryIndex = index;
|
||||
useStorage.set("categoryIndex", index);
|
||||
|
||||
if (index == 0) {
|
||||
// this.getGoodsList();
|
||||
await this.getGoodsList();
|
||||
this.goodsList = _.chunk(this.originGoodsList, 12);
|
||||
}
|
||||
// else if (this.categoryList[index].id == "off_sale") {
|
||||
|
|
@ -276,7 +277,11 @@ export const useGoods = defineStore("goods", {
|
|||
let packCount = 0;
|
||||
|
||||
arr.map((val, index) => {
|
||||
numCount += +val.number;
|
||||
if (val.product_type == "weight") {
|
||||
numCount++;
|
||||
} else {
|
||||
numCount += +val.number;
|
||||
}
|
||||
packCount += +val.pack_number;
|
||||
val = this.completeGoodsInfo(val);
|
||||
val.active = false;
|
||||
|
|
@ -315,6 +320,8 @@ export const useGoods = defineStore("goods", {
|
|||
},
|
||||
// 添加商品到购物车
|
||||
addCart(params) {
|
||||
console.log("添加商品到购物车===", params);
|
||||
|
||||
let tableCode = "";
|
||||
if (this.tableInfo.tableCode) {
|
||||
tableCode = this.tableInfo.tableCode;
|
||||
|
|
@ -325,12 +332,19 @@ export const useGoods = defineStore("goods", {
|
|||
tableCode = useStorage.get("tableCode");
|
||||
}
|
||||
}
|
||||
|
||||
let pack_number = 0;
|
||||
if (params.type == "weight") {
|
||||
pack_number = 1;
|
||||
} else {
|
||||
pack_number = params.number;
|
||||
}
|
||||
const sendData = {
|
||||
table_code: tableCode,
|
||||
product_id: params.productId || "",
|
||||
sku_id: params.id || "",
|
||||
number: params.number || 1,
|
||||
pack_number: this.allSelected ? params.number : 0,
|
||||
pack_number: this.allSelected ? pack_number : 0,
|
||||
is_gift: params.is_gift || 0,
|
||||
is_temporary: params.is_temporary || 0,
|
||||
discount_sale_amount: params.discount_sale_amount || 0,
|
||||
|
|
@ -342,6 +356,7 @@ export const useGoods = defineStore("goods", {
|
|||
sku_name: params.sku_name || "",
|
||||
pro_group_info: params.pro_group_info || [],
|
||||
goods_type: params.goods_type || "",
|
||||
product_type: params.type,
|
||||
};
|
||||
this.operateCart(sendData, "add");
|
||||
},
|
||||
|
|
@ -436,7 +451,7 @@ export const useGoods = defineStore("goods", {
|
|||
}
|
||||
|
||||
item.product_id = item.productId;
|
||||
item.lowPrice = val.lowPrice;
|
||||
item.lowPrice = val.lowPrice || 0;
|
||||
item.sku_name = sku && sku.specInfo;
|
||||
item.group_type = val.groupType;
|
||||
item.goods_type = val.type;
|
||||
|
|
@ -490,12 +505,25 @@ export const useGoods = defineStore("goods", {
|
|||
}
|
||||
this.operateCart({ table_code: tableCode }, "cleanup");
|
||||
},
|
||||
// 商品更新后,需要对购物车、订单进行更新
|
||||
async updateGoodsList() {
|
||||
const socket = useSocket();
|
||||
await this.getCategoryList();
|
||||
await this.getGoodsList();
|
||||
socket.cartInit();
|
||||
},
|
||||
// 清空购物车回执操作
|
||||
successClearCart() {
|
||||
async successClearCart() {
|
||||
this.cartList = [];
|
||||
this.cartInfo = {};
|
||||
this.orderList = [];
|
||||
this.orderListInfo = "";
|
||||
|
||||
// 存在真实台桌,需要拉取历史订单
|
||||
if (this.tableInfo.id) {
|
||||
await this.historyOrderAjax(this.tableInfo.tableCode);
|
||||
}
|
||||
|
||||
this.calcCartInfo();
|
||||
},
|
||||
// 下单成功清除购物车,重新加载订单
|
||||
|
|
|
|||
|
|
@ -143,6 +143,9 @@ export const useSocket = defineStore("socket", {
|
|||
this.orderList.push(data.data);
|
||||
this.startPrintInterval();
|
||||
}
|
||||
} else if (data.data_type == "product_update") {
|
||||
// 商品更新
|
||||
goodsStore.updateGoodsList();
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -182,7 +182,9 @@ export function commOrderPrintData(orderInfo) {
|
|||
skuName: item.skuName,
|
||||
salePrice: formatDecimal(item.price),
|
||||
totalAmount: formatDecimal(+item.payAmount),
|
||||
proGroupInfo: item.proGroupInfo.map((item) => item.goods).flat(),
|
||||
proGroupInfo: item.proGroupInfo
|
||||
? item.proGroupInfo.map((item) => item.goods).flat()
|
||||
: "",
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@
|
|||
</el-icon>
|
||||
<el-text class="t">赠送</el-text>
|
||||
</div>
|
||||
<div class="item" @click="packHandle">
|
||||
<div class="item" :class="{ disabled: goodsStore.allSelected }" @click="packHandle">
|
||||
<el-icon class="icon">
|
||||
<Box />
|
||||
</el-icon>
|
||||
|
|
@ -348,14 +348,14 @@ async function returnOrderItemAjax(num = 1) {
|
|||
// 显示打包
|
||||
function packHandle() {
|
||||
let item = goodsStore.cartList[goodsStore.cartActiveIndex]
|
||||
if (item && item.id) {
|
||||
if (item && item.id && !goodsStore.allSelected) {
|
||||
if (!item.pack_number || item.pack_number <= 0) {
|
||||
if (item.number > 1) {
|
||||
if (item.number > 1 && item.goods_type != 'weight') {
|
||||
// 大于1时需要编辑
|
||||
showPackModal.value = true
|
||||
} else {
|
||||
// 小于1时直接提交
|
||||
goodsStore.operateCart({ ...item, pack_number: item.number }, 'edit')
|
||||
goodsStore.operateCart({ ...item, pack_number: 1 }, 'edit')
|
||||
}
|
||||
} else {
|
||||
// 取消打包
|
||||
|
|
@ -400,12 +400,20 @@ function numberChange(t) {
|
|||
if (item.number < item.suitNum) {
|
||||
goodsStore.deleteCartItem()
|
||||
} else {
|
||||
goodsStore.operateCart(goodsStore.cartList[goodsStore.cartActiveIndex], 'edit')
|
||||
if (goodsStore.allSelected) {
|
||||
goodsStore.operateCart({ ...goodsStore.cartList[goodsStore.cartActiveIndex], pack_number: goodsStore.cartList[goodsStore.cartActiveIndex].number }, 'edit')
|
||||
} else {
|
||||
goodsStore.operateCart(goodsStore.cartList[goodsStore.cartActiveIndex], 'edit')
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'add':
|
||||
goodsStore.cartList[goodsStore.cartActiveIndex].number++
|
||||
goodsStore.operateCart(goodsStore.cartList[goodsStore.cartActiveIndex], 'edit')
|
||||
if (goodsStore.allSelected) {
|
||||
goodsStore.operateCart({ ...goodsStore.cartList[goodsStore.cartActiveIndex], pack_number: goodsStore.cartList[goodsStore.cartActiveIndex].number }, 'edit')
|
||||
} else {
|
||||
goodsStore.operateCart(goodsStore.cartList[goodsStore.cartActiveIndex], 'edit')
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
@ -415,7 +423,11 @@ function numberChange(t) {
|
|||
// 输入修改数量
|
||||
function updateNumber(num) {
|
||||
goodsStore.cartList[goodsStore.cartActiveIndex].number = num
|
||||
goodsStore.operateCart({ ...goodsStore.cartList[goodsStore.cartActiveIndex] }, 'edit')
|
||||
if (goodsStore.allSelected) {
|
||||
goodsStore.operateCart({ ...goodsStore.cartList[goodsStore.cartActiveIndex], pack_number: goodsStore.cartList[goodsStore.cartActiveIndex].number }, 'edit')
|
||||
} else {
|
||||
goodsStore.operateCart(goodsStore.cartList[goodsStore.cartActiveIndex], 'edit')
|
||||
}
|
||||
}
|
||||
|
||||
// 显示规格
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@
|
|||
<template v-else>
|
||||
<div class="li" @click.stop="goodEditor(item, 0)">下架</div>
|
||||
<div class="li" @click.stop="goodEditor(item, 1)">售罄</div>
|
||||
<div class="li" @click.stop="goodStockNumberHandle(item)">修改库存</div>
|
||||
<!-- <div class="li" @click.stop="goodStockNumberHandle(item)">修改库存</div> -->
|
||||
</template>
|
||||
<div class="li" @click.stop="item.showMore = false">取消</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@
|
|||
<div class="footer">
|
||||
<!-- <el-button icon="Edit"></el-button> -->
|
||||
<div class="button">
|
||||
<el-checkbox v-model="isPrint" border label="打印结算小票" style="width: 100%" />
|
||||
<el-checkbox v-model="isPrint" :true-value="1" :false-value="0" border label="打印结算小票" style="width: 100%" />
|
||||
</div>
|
||||
<!-- <div class="print">
|
||||
<el-button type="warning" :loading="discountLoading" @click="showStaffDiscountHandle">添加折扣</el-button>
|
||||
|
|
@ -47,7 +47,8 @@
|
|||
</div>
|
||||
<div class="pay_wrap">
|
||||
<payCard ref="payCardRef" :orderList="orderList" :amount="cartInfo.totalAmount"
|
||||
:orderId="goodsStore.orderListInfo.id" @paySuccess="paySuccess" @orderExpired="orderExpiredHnadle" />
|
||||
:orderId="goodsStore.orderListInfo.id" @paySuccess="paySuccess" @orderExpired="orderExpiredHnadle"
|
||||
:isPrint="0" />
|
||||
</div>
|
||||
</div>
|
||||
<!-- <el-dialog v-model="showStaffDiscount" title="员工折扣" @close="global.updateData(true)">
|
||||
|
|
@ -137,7 +138,7 @@ const props = defineProps({
|
|||
|
||||
const cartList = ref([])
|
||||
const orderList = ref([])
|
||||
const isPrint = ref(true);
|
||||
const isPrint = ref(1);
|
||||
const discountLoading = ref(false)
|
||||
|
||||
// 支付失败,订单已过期
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@
|
|||
<div class="left" v-else></div>
|
||||
<div class="right">
|
||||
共<el-text>
|
||||
{{ formatDecimal(goodsStore.cartInfo.total, 2, true) }}件
|
||||
{{ formatDecimal(goodsStore.cartInfo.total || 0, 2, true) }}件
|
||||
</el-text>,¥{{ formatDecimal(goodsStore.cartInfo.totalAmount || 0) }}
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -269,6 +269,8 @@ async function createOrderHandle(t = 0) {
|
|||
|
||||
if (t == 1) {
|
||||
settleAccountRef.value.show(t)
|
||||
} else {
|
||||
goodsStore.clearCart()
|
||||
}
|
||||
|
||||
// 清除购物车,更新历史订单
|
||||
|
|
@ -317,8 +319,28 @@ function giftPackHandle(key, item) {
|
|||
const allSelectedHandle = async () => {
|
||||
if (goodsStore.allSelected) {
|
||||
goodsStore.allSelected = 0
|
||||
|
||||
// 取消订单的全部外带
|
||||
if (goodsStore.orderList.length) {
|
||||
await goodsStore.historyOrderAjax(goodsStore.orderListInfo.tableCode)
|
||||
goodsStore.calcCartInfo()
|
||||
}
|
||||
} else {
|
||||
goodsStore.allSelected = 1
|
||||
|
||||
// 回复订单的外带数据
|
||||
if (goodsStore.orderList.length) {
|
||||
goodsStore.orderList.map(item => {
|
||||
item.goods.map(val => {
|
||||
if (val.goods_type == 'weight') {
|
||||
val.pack_number = 1
|
||||
} else {
|
||||
val.pack_number = val.number
|
||||
}
|
||||
})
|
||||
})
|
||||
goodsStore.calcCartInfo()
|
||||
}
|
||||
}
|
||||
|
||||
if (goodsStore.cartList.length) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue