打包费
@@ -1718,6 +1713,22 @@ export default {
};
},
computed: {
+ pointsDiscountAmount() {
+ if (this.points.selected) {
+ return this.points.toMoney;
+ } else {
+ return 0;
+ }
+ },
+ gaijia() {
+ const disCountOriginPrice =
+ this.createOrder.data.amount - this.coupdiscount;
+ const disocunt = (1 - this.createOrder.discount) * disCountOriginPrice;
+ return disocunt.toFixed(2);
+ },
+ pointsCanDicountMoney() {
+ return (this.yinFuJinE - this.points.toMoney).toFixed(2);
+ },
isShowVipPrice() {
if (!this.shopInfo.isMemberPrice) {
return false;
@@ -1725,44 +1736,22 @@ export default {
return this.vipUser.isVip ? true : false;
},
coupdiscount() {
- return (this.createOrder.discount*returnCouponAllPrice(
- this.quansSelArr,
- this.createOrder.data.detailList || [],
- this.vipUser
- )).toFixed(2)
+ const n = this.quansSelArr.reduce((prve, cur) => {
+ return prve + cur.discountAmount * 1;
+ }, 0);
+ return n;
},
- goodsDisCount() {
- const goodsQuanArr = this.quansSelArr.filter((v) => v.type == 2);
- let result = 0;
- if (goodsQuanArr.length < 0) {
- result = 0;
- } else {
- result = goodsQuanArr.reduce((a, b) => {
- const item = this.createOrder.data.detailList.find(
- (v) => v.productId == b.proId
- );
- const memberPrice = item.memberPrice ? item.memberPrice : item.price;
- const price = item
- ? this.vipUser.isVip
- ? memberPrice
- : item.price
- : 0;
- return a + price;
- }, 0);
- }
- return result.toFixed(2);
- },
-
currentPayMoney() {
const amount = this.createOrder.data.amount || 0;
const discount = this.createOrder.discount || 1;
// const total=((amount - this.coupdiscount) * this.createOrder.discount - this.points.toMoney)
- const total = (amount) * this.createOrder.discount - this.coupdiscount;
+ const total = amount - this.gaijia - this.coupdiscount;
return total <= 0 ? 0 : total;
},
yinFuJinE() {
- const total = this.currentPayMoney - (this.points.toMoney || 0);
- console.log(total)
+ const total =
+ this.currentPayMoney - (this.points.selected ? this.points.toMoney : 0);
+ console.log(total);
if (this.isCreateOrder) {
return total.toFixed(2);
} else {
@@ -1886,13 +1875,20 @@ export default {
const seatFee =
this.order.seatFee.totalAmount *
(returnStatus.includes(this.order.seatFee.status) ? 0 : 1);
+ // return (
+ // (oldPrice + price + +packFee + seatFee - this.youhuiAllPrice) *
+ // this.createOrder.discount
+ // ).toFixed(2);
return (
- (oldPrice + price + +packFee + seatFee - this.youhuiAllPrice) *
- this.createOrder.discount
+ oldPrice +
+ price +
+ +packFee +
+ seatFee -
+ this.youhuiAllPrice
).toFixed(2);
},
vipDiscountPrice() {
- if (!this.vipUser.isVip) {
+ if (!this.vipUser.isVip || !this.shopInfo.isMemberPrice) {
return 0;
}
const oldMemberPrice = this.order.old.list.reduce((a, b) => {
@@ -1990,10 +1986,15 @@ export default {
this.goods.status = "loadmore";
this.getGoods();
},
+ pointsCanDicountMoney: function (newval) {
+ this.getCalcUsablePoints();
+ },
currentPayMoney: function (newval) {
if (this.createOrder.data.memberId || this.vipUser.id) {
this.getCalcUsablePoints().then((res) => {
- this.pointsValueChange(this.points.value);
+ if (this.points.selected) {
+ this.pointsValueChange(this.points.value);
+ }
});
}
},
@@ -2054,8 +2055,12 @@ export default {
if (this.order.status == "finish") {
return;
}
- if(!this.table.tableId&&(this.order.list.length<=0&&this.order.old.list.length<=0)){
- return ;
+ if (
+ !this.table.tableId &&
+ this.order.list.length <= 0 &&
+ this.order.old.list.length <= 0
+ ) {
+ return;
}
$setUser({
tableId: this.table.tableId,
@@ -2194,13 +2199,18 @@ export default {
//相同商品抵扣券数组
const arr = this.quansSelArr.filter((v) => v.proId == row.proId);
const index = arr.findIndex((v) => v.id == row.id);
+ const item = this.createOrder.data.detailList.find(
+ (v) => v.productId == row.proId
+ );
+
if (index != -1) {
- const n=returnProductCoupAllPrice(
+ const n = returnProductCoupAllPrice(
$goodsPayPriceMap[row.proId],
index,
- row.num
- )
- return (n*this.createOrder.discount).toFixed(2);
+ row.num,
+ item.isMember
+ );
+ return (n * this.createOrder.discount).toFixed(2);
} else {
return 0;
}
@@ -2213,6 +2223,13 @@ export default {
console.log(index);
if (index != -1) {
this.quansSelArr.splice(index, 1);
+ this.quansSelArr
+ .map((v, index) => {
+ return {
+ ...v,
+ discountAmount:v.type==2?this.returnProDiscount(v):v.discountAmount,
+ };
+ });
}
},
async getCalcUsablePoints() {
@@ -2232,6 +2249,9 @@ export default {
this.vipUser.accountPoints,
this.points.res.maxUsablePoints || 0
);
+ if(!pointsRes.usable){
+ this.points.selected=false
+ }
}
return pointsRes;
},
@@ -2266,13 +2286,21 @@ export default {
id: this.createOrder.data.id,
memberId: this.createOrder.data.memberId || this.vipUser.id,
orderPrice: (this.yinFuJinE * 1 + this.coupdiscount * 1).toFixed(2),
- discount:this.createOrder.discount
+ discount: this.createOrder.discount,
},
[...this.quansSelArr]
);
},
quansConfirm(e, goodsPayPriceMap) {
console.log(e);
+ this.createOrder.discount = 1;
+ this.points.selected = "";
+ e.map((v, index) => {
+ return {
+ ...v,
+ discountAmount:v.type==2? this.returnProDiscount(v):v.discountAmount,
+ };
+ });
this.quansSelArr = [...e];
$goodsPayPriceMap = goodsPayPriceMap;
},
@@ -2320,7 +2348,7 @@ export default {
// return
// }
await this.returnCreateOrderData();
- this.payBeforeClear();
+ // this.payBeforeClear();
// this.order.payType = "";
},
async cashPayClick() {
@@ -2413,10 +2441,13 @@ export default {
if (!canJiesuan) {
return;
}
- const order = await this.returnCreateOrderData();
- this.order.payType = "scanCode";
- this.payTypeItemClick({ payType: "scanCode", order });
- this.payBeforeClear();
+ if (!this.isCreateOrder) {
+ const order = await this.returnCreateOrderData();
+ this.order.payType = "scanCode";
+ this.payTypeItemClick({ payType: "scanCode", order });
+ return;
+ }
+ this.payTypeItemClick({ payType: "scanCode" });
},
async changeOrderUseType(useType) {
if (useType && this.order.list.length) {
@@ -2553,10 +2584,11 @@ export default {
},
//退菜
async refReturnCartConfirm(e) {
- console.log(this.order.selGoods);
const res = await $returnCart({
...e,
- cartId: this.order.selGoods.cartId,
+ cartId: this.isCreateOrder
+ ? this.order.selGoods.id
+ : this.order.selGoods.cartId,
tableId: this.table.tableId,
});
this.order.selGoods.status = "return";
@@ -2675,14 +2707,41 @@ export default {
}
},
ChangeDiscount(discount) {
+ const fullCoupIndex = this.quansSelArr.findIndex((v) => v.type == 1);
+ const fullCoup = this.quansSelArr[fullCoupIndex];
this.createOrder.discount = discount;
+ if (fullCoup && this.yinFuJinE < fullCoup.fullAmount) {
+ return this.$confirm(
+ "改价后价格不满足满减券最低满减需求" + fullCoup.fullAmount + "元",
+ "提示",
+ {
+ confirmButtonText: "删除满减券",
+ cancelButtonText: "取消改价",
+ type: "warning",
+ }
+ )
+ .then(() => {
+ this.quansSelArr.splice(fullCoupIndex, 1);
+ this.createOrder.discount = discount;
+ })
+ .catch((action) => {
+ this.createOrder.discount = 1;
+ this.$message({
+ type: "info",
+ message: "已取消改价",
+ });
+ });
+ }
},
async disCountShow() {
const canDiscount = await hasPermission("允许打折");
if (!canDiscount) {
return;
}
- const amount = this.createOrder.data.amount;
+ const amount = (this.createOrder.data.amount - this.coupdiscount).toFixed(
+ 2
+ );
+ console.log(amount);
this.refToggle("refDiscount", true, {
amount,
discount: this.createOrder.discount * 100,
@@ -4516,11 +4575,13 @@ input[type="number"]::-webkit-outer-spin-button {
font-weight: 600;
}
::v-deep input[aria-hidden="true"] {
- display: none !important;
+ display: none !important;
}
-
-::v-deep .el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner {
- box-shadow: none !important;
+
+::v-deep
+ .el-radio:focus:not(.is-focus):not(:active):not(.is-disabled)
+ .el-radio__inner {
+ box-shadow: none !important;
}
::v-deep .categorys .el-tag--plain.el-tag--info {
diff --git a/src/views/tool/Instead/quan_util.js b/src/views/tool/Instead/quan_util.js
index 78360d7..14b4747 100644
--- a/src/views/tool/Instead/quan_util.js
+++ b/src/views/tool/Instead/quan_util.js
@@ -91,11 +91,12 @@ export function returnProductPayPrice(goods,vipUser){
return price
}
//返回商品券抵扣的商品价格
-export function returnProductCoupAllPrice(productPriceArr,startIndex,num){
+export function returnProductCoupAllPrice(productPriceArr,startIndex,num,isMember=true){
+ console.log(productPriceArr);
return productPriceArr.slice(startIndex,startIndex+num).reduce((prve,cur)=>{
let curPrice=0
if(typeof cur==='object'){
- curPrice=cur.memberPrice*1
+ curPrice=isMember?cur.memberPrice*1:cur.price
}else{
curPrice=cur*1
}
@@ -216,9 +217,9 @@ export function returnCouponAllPrice(coupArr, goodsArr, vipUser) {
export function returnCanUseFullReductionCoupon(coupArr, payPrice, selCoup) {
return coupArr.map(v => {
if (v.id == selCoup.id) {
- return v
+ return {...v,use:true}
}
- const isfullAmount = payPrice >= v.fullAmount * 1
+ const isfullAmount = payPrice*1 >= v.fullAmount * 1
if(payPrice<=0){
return {
...v,
@@ -229,5 +230,21 @@ export function returnCanUseFullReductionCoupon(coupArr, payPrice, selCoup) {
...v,
use: v.use && isfullAmount
}
- })
+ }).filter(v => v.use)
+}
+
+//根据商品数量还有商品券数量返回优惠券可以使用的数量数组
+export function returnCanUseNumProductCoup(coupArr,){
+ let productCoup = coupArr.filter(v => v.type == 2)
+ //商品券分组
+ let coupMap={}
+ for(let i in productCoup){
+ const coup=productCoup[i]
+ if(coupMap.hasOwnProperty(coup.proId)){
+ coupMap[coup.proId].push(coup)
+ }else{
+ coupMap[coup.proId]=[coup]
+ }
+ }
+ return arr
}
\ No newline at end of file
From 56b9c1ebf719f7c57c9765b65176d24db0bb9538 Mon Sep 17 00:00:00 2001
From: YeMingfei666 <1619116647@qq.com>
Date: Sat, 23 Nov 2024 17:58:53 +0800
Subject: [PATCH 2/5] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=90=88=E5=B9=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.env.development | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.env.development b/.env.development
index fdeba2f..98c3e63 100644
--- a/.env.development
+++ b/.env.development
@@ -5,9 +5,9 @@ ENV = 'development'
# VUE_APP_BASE_API = 'http://192.168.2.42:8000'
# VUE_APP_BASE_API = 'http://192.168.2.133:8000'
# 测试
-VUE_APP_BASE_API = 'https://admintestpapi.sxczgkj.cn'
+# VUE_APP_BASE_API = 'https://admintestpapi.sxczgkj.cn'
#预发布
-# VUE_APP_BASE_API = 'https://pre-cashieradmin.sxczgkj.cn'
+VUE_APP_BASE_API = 'https://pre-cashieradmin.sxczgkj.cn'
# 生产
# VUE_APP_BASE_API = 'https://cashieradmin.sxczgkj.cn'
From ae03b5b9f34f557eaf888ff1a315e6353f14d35e Mon Sep 17 00:00:00 2001
From: YeMingfei666 <1619116647@qq.com>
Date: Sat, 23 Nov 2024 18:13:01 +0800
Subject: [PATCH 3/5] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=90=88=E5=B9=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.env.production | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.env.production b/.env.production
index 2a4f841..1db13cc 100644
--- a/.env.production
+++ b/.env.production
@@ -3,13 +3,13 @@ ENV = 'production'
# 如果使用 Nginx 代理后端接口,那么此处需要改为 '/',文件查看 Docker 部署篇,Nginx 配置
# 接口地址,注意协议,如果你没有配置 ssl,需要将 https 改为 http
# 测试
-VUE_APP_BASE_API = 'https://admintestpapi.sxczgkj.cn'
+# VUE_APP_BASE_API = 'https://admintestpapi.sxczgkj.cn'
# 生产
# VUE_APP_BASE_API = 'https://cashieradmin.sxczgkj.cn'
# 预发布接口
-# VUE_APP_BASE_API = 'https://pre-cashieradmin.sxczgkj.cn'
+VUE_APP_BASE_API = 'https://pre-cashieradmin.sxczgkj.cn'
# VUE_APP_BASE_API = 'http://192.168.2.98:8000'
# 如果接口是 http 形式, wss 需要改为 ws
From 62d775a668ed248271a75f1784dfef086195281f Mon Sep 17 00:00:00 2001
From: YeMingfei666 <1619116647@qq.com>
Date: Sat, 23 Nov 2024 18:13:23 +0800
Subject: [PATCH 4/5] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=90=88=E5=B9=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.env.development | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.env.development b/.env.development
index 98c3e63..fdeba2f 100644
--- a/.env.development
+++ b/.env.development
@@ -5,9 +5,9 @@ ENV = 'development'
# VUE_APP_BASE_API = 'http://192.168.2.42:8000'
# VUE_APP_BASE_API = 'http://192.168.2.133:8000'
# 测试
-# VUE_APP_BASE_API = 'https://admintestpapi.sxczgkj.cn'
+VUE_APP_BASE_API = 'https://admintestpapi.sxczgkj.cn'
#预发布
-VUE_APP_BASE_API = 'https://pre-cashieradmin.sxczgkj.cn'
+# VUE_APP_BASE_API = 'https://pre-cashieradmin.sxczgkj.cn'
# 生产
# VUE_APP_BASE_API = 'https://cashieradmin.sxczgkj.cn'
From 94bf94b16a9b8640fbd90c82673ee242f4ddad5f Mon Sep 17 00:00:00 2001
From: YeMingfei666 <1619116647@qq.com>
Date: Mon, 25 Nov 2024 09:33:06 +0800
Subject: [PATCH 5/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BC=98=E6=83=A0?=
=?UTF-8?q?=E9=87=91=E9=A2=9D=E5=B1=95=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/order_manage/components/orderDetail.vue | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/src/views/order_manage/components/orderDetail.vue b/src/views/order_manage/components/orderDetail.vue
index 349f845..edff56b 100644
--- a/src/views/order_manage/components/orderDetail.vue
+++ b/src/views/order_manage/components/orderDetail.vue
@@ -351,11 +351,9 @@ export default {
youHuiJinE() {
console.log(this.vipDiscountAmount);
const discountAmount=this.detail.discountAmount;
- const calcDiscountAmount=(this.detail.originAmount*(1-this.detail.discountRatio)).toFixed(2);
- console.log(this.detail.originAmount*(1-this.detail.discountRatio))
const n = $util.numSum([
this.vipDiscountAmount,
- (discountAmount?discountAmount:calcDiscountAmount),
+ discountAmount,
this.detail.productCouponDiscountAmount,
this.detail.fullCouponDiscountAmount,
this.detail.pointsDiscountAmount,