代客下单增加单品改价,挂账,等叫,免厨打等功能

This commit is contained in:
2024-11-28 17:50:27 +08:00
parent b0868703a5
commit 45eaccb9ac
5 changed files with 210 additions and 40 deletions

View File

@@ -399,11 +399,18 @@
<div slot="content">
<div
class="u-flex color-000 u-font-14 u-row-between"
v-if="vipDiscountPrice > 0"
v-if="vipDiscountPrice * 1 > 0"
>
<span class="font-bold">会员优惠 </span>
<span class="">{{ vipDiscountPrice }} </span>
</div>
<div
class="u-flex color-000 u-font-14 u-row-between"
v-if="discountSaleAmount * 1 > 0"
>
<span class="font-bold">单品改价优惠 </span>
<span class="">{{ discountSaleAmount }} </span>
</div>
</div>
<span> 已优惠{{ youhuiAllPrice }} </span>
<i class="el-icon-arrow-right"></i>
@@ -638,6 +645,14 @@
@click="orderBtnsClick('returnCart')"
>
退菜
</div>
<div
@click="orderBtnsClick('print')"
:class="{ disabled: order.selIndex < 0 }"
class="btn"
>
{{ returnPrintText }}
</div>
<div
@click="refPopChangePriceShow"
@@ -646,8 +661,21 @@
>
单品改价
</div>
<div class="btn">等叫</div>
<div class="btn no-wrap u-font-12">取消全部等叫</div>
<div
class="btn"
@click="orderBtnsClick('isWaitCall')"
:class="{ disabled: order.selIndex < 0 }"
>
{{ returnWaingText }}
</div>
<div
class="btn no-wrap u-font-12"
@click="orderBtnsClick('AllWaitCall')"
:class="{ disabled: isCreateOrder}"
>
{{ returnWaingAllText }}
</div>
<!-- <div
class="btn"
@@ -1041,7 +1069,7 @@
:disabledPayType="disabledPayType"
>
</pay-type>
<el-button @click="guazhangShow">挂账</el-button>
<el-button @click="guazhangShow" size="medium">挂账</el-button>
<div style="margin-top: 20px">
<el-button type="primary" size="medium" @click="payOrder">
<span>立即支付</span>
@@ -1450,7 +1478,11 @@
@confirm="tuanQuanConfirm"
></pop-tuan-quan>
<!-- 挂账 -->
<popup-choose-guazhang ref="refGuaZhang" :payMoney="yinFuJinE"></popup-choose-guazhang>
<popup-choose-guazhang
ref="refGuaZhang"
:payMoney="yinFuJinE"
@confirm="guazhangPayConfirm"
></popup-choose-guazhang>
</div>
</template>
@@ -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);
}