diff --git a/src/api/Instead.js b/src/api/Instead.js index 8be0623..296c793 100644 --- a/src/api/Instead.js +++ b/src/api/Instead.js @@ -53,4 +53,16 @@ export function $checkCoupon(data) { ...data } }); +} +//整体等叫/取消等叫 +export function $waitCall(data) { + return request({ + url: '/api/place/waitCall', + method: "put", + data:{ + useType:getUseType(), + shopId: localStorage.getItem("shopId"), + ...data + } + }); } \ No newline at end of file diff --git a/src/views/tool/Instead/components/cart-item.vue b/src/views/tool/Instead/components/cart-item.vue index 94cd126..d275783 100644 --- a/src/views/tool/Instead/components/cart-item.vue +++ b/src/views/tool/Instead/components/cart-item.vue @@ -4,8 +4,12 @@ :class="[isActive]" @click="itemClick" > - - 退 +
+ + + + 退 +
-
备注:{{ item.note || "" }}
+
备注:{{ item.note }}
备注: @@ -74,11 +78,23 @@ ¥{{ isShowVipPrice ? vipAllPrice : allPrice }}
+ @@ -1507,7 +1539,7 @@ import { } from "@/api/table"; import { tbShopCategoryGet } from "@/api/shop"; -import { $checkCoupon } from "@/api/Instead"; +import { $checkCoupon,$waitCall } from "@/api/Instead"; import { isCanBuy, arrayContainsAll, @@ -1524,7 +1556,7 @@ import { returnProductCoupAllPrice } from "./quan_util.js"; //商品数量从0到n每一个对应的价格 let $goodsPayPriceMap = {}; import { $status } from "@/utils/table.js"; -import PopupChooseGuazhang from './components/popup-choose-guazhang.vue'; +import PopupChooseGuazhang from "./components/popup-choose-guazhang.vue"; let $originTableList = []; export default { @@ -1549,6 +1581,8 @@ export default { }, data() { return { + //挂账人 + guazhangRen: "", disabledPayType: [], //积分抵扣 points: { @@ -1762,9 +1796,33 @@ export default { }, }, timer: null, + isAllWaitCall: false, }; }, computed: { + returnPrintText(){ + if (this.order.selIndex < 0) { + return "免厨打"; + } + return this.order.list[this.order.selIndex].isPrint + ? "免厨打" + : "打印"; + }, + returnWaingText() { + if (this.order.selIndex < 0) { + return "等叫"; + } + return this.order.list[this.order.selIndex].isWaitCall == 1 + ? "取消等叫" + : "等叫"; + }, + isHasWaiting() { + const waitingArr = this.order.list.filter((v) => v.isWaitCall == 1); + return waitingArr.length > 0 ? true : false; + }, + returnWaingAllText() { + return this.isAllWaitCall ? "取消全部等叫" : "整单等叫"; + }, pointsDiscountAmount() { if (this.points.selected) { return this.points.toMoney; @@ -1970,8 +2028,28 @@ export default { }, 0); return (oldMemberPrice + nowMemberprice).toFixed(2); }, + discountSaleAmount() { + const oldTotal = this.order.old.list.reduce((a, b) => { + const bTotal = b.info + .filter((v) => v.discountSaleAmount && v.discountSaleAmount > 0) + .reduce((prve, cur) => { + return prve + cur.number * cur.discountSaleAmount; + }, 0); + return a + bTotal; + }, 0); + const nowTotal = this.order.list + .filter((v) => v.discountSaleAmount && v.discountSaleAmount > 0) + .reduce((a, b) => { + return a + b.number * b.discountSaleAmount; + }, 0); + return (oldTotal + nowTotal).toFixed(2); + }, youhuiAllPrice() { - return (this.vipDiscountPrice * 1 + this.allGiftMoney * 1).toFixed(2); + return ( + this.vipDiscountPrice * 1 + + this.allGiftMoney * 1 + + this.discountSaleAmount * 1 + ).toFixed(2); }, allNumber() { const oldNumber = this.order.old.list.reduce((a, b) => { @@ -2246,8 +2324,16 @@ export default { this.open(this.$route.query); }, methods: { + //挂账人支付确认 + guazhangPayConfirm(guazhangren, price) { + this.guazhangRen = guazhangren; + this.pays({ + creditBuyerId: this.guazhangRen.id, + payType: "creditBuyer", + }); + }, //挂账 - guazhangShow(){ + guazhangShow() { this.$refs.refGuaZhang.open(); }, //团购券扫码弹窗 @@ -2261,7 +2347,8 @@ export default { //更新单品改价数据 updateCartItem(res) { if (res) { - this.order.list[this.order.selIndex] = res; + // this.order.list[this.order.selIndex] = res; + this.$set(this.order.list, this.order.selIndex, res) } }, // 单品改价 @@ -2972,7 +3059,7 @@ export default { this.pays(); }, // 支付订单 - async pays() { + async pays(par) { this.loading = true; const userCouponInfos = this.quansSelArr.reduce((prve, cur) => { const index = prve.findIndex((v) => v.userCouponId == cur.couponId); @@ -3004,8 +3091,9 @@ export default { vipUserId: this.createOrder.data.memberId || this.vipUser.id, discount: this.createOrder.discount, code: this.createOrder.code, - userCouponInfos, + userCouponInfos: userCouponInfos.length > 0 ? userCouponInfos : "", pointsNum: this.points.value, + ...par, }); this.loading = false; this.payOrderSuccess(); @@ -3133,7 +3221,16 @@ export default { updateOrder(par = {}) { let item = this.order.list[this.order.selIndex]; console.log(this.table); - const { productId, skuId, isPack, isGift, number, id } = item; + const { + productId, + skuId, + isPack, + isGift, + number, + id, + isPrint, + isWaitCall, + } = item; $updateCart({ cartId: id, masterId: this.masterId, @@ -3144,6 +3241,8 @@ export default { num: number, isPack: isPack === "true" ? true : false, isGift: isGift === "true" ? true : false, + isPrint, + isWaitCall, ...par, }).then((res) => { this.$set(this.order.list, this.order.selIndex, { @@ -3196,7 +3295,7 @@ export default { // }, //右侧控制按钮点击事件 - orderBtnsClick(key) { + async orderBtnsClick(key) { const orderGoods = this.order.list[this.order.selIndex]; if (this.key != "isJieZhang" && this.payAfter) { this.createOrderClose(); @@ -3221,6 +3320,27 @@ export default { if (key === "del") { return this.removeCart(); } + if (key === "print") { + const isPrint = orderGoods.isPrint; + this.updateOrder({ isPrint: !isPrint }); + return; + } + if (key === "isWaitCall") { + const isWaitCall = orderGoods.isWaitCall; + this.updateOrder({ isWaitCall: !isWaitCall }); + return; + } + if (key == "AllWaitCall") { + await $waitCall({ + orderId:this.createOrder.data.id, + masterId:this.masterId, + tableId:this.table.tableId, + isWaitCall: !this.isAllWaitCall?1:0 + }) + this.isAllWaitCall=!this.isAllWaitCall; + this.getCart() + return; + } if (key === "save") { this.prveOrder.list.push({ cart: this.order.list, @@ -3621,6 +3741,7 @@ export default { tableId: this.table.tableId, num: this.skuGoods.number, // 0会删除此商品 isPack: false, // 是否打包 + isWaitCall:this.isAllWaitCall //是否等叫 }); this.orderListPush({ ...res, specSnap: name }); // this.orderListPush({ @@ -3726,6 +3847,7 @@ export default { }, reset() { // this.goods.list = []; + this.guazhangRen = ""; this.order.status = ""; this.loading = false; this.table = ""; @@ -3922,6 +4044,7 @@ export default { tableId: this.table.tableId, num: item.specList[0].suit, // 0会删除此商品 isPack: false, // 是否打包 + isWaitCall:this.isAllWaitCall //是否等叫 }); this.orderListPush(res); }