diff --git a/.env.production b/.env.production index 2a4f841..7f079f7 100644 --- a/.env.production +++ b/.env.production @@ -3,10 +3,10 @@ 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://cashieradmin.sxczgkj.cn' # 预发布接口 # VUE_APP_BASE_API = 'https://pre-cashieradmin.sxczgkj.cn' diff --git a/src/views/order_manage/components/orderDetail.vue b/src/views/order_manage/components/orderDetail.vue index 9984e66..edff56b 100644 --- a/src/views/order_manage/components/orderDetail.vue +++ b/src/views/order_manage/components/orderDetail.vue @@ -141,10 +141,25 @@ - + - + @@ -244,7 +246,7 @@ import { tbProductListV2, tbShopCategoryGet, tbProductDelete, tbProductIsHot, up import { hasPermission } from '@/utils/limits.js' export default { - name:'product', + name: 'product', components: { BindCons, StockHistory diff --git a/src/views/tool/Instead/components/discount.vue b/src/views/tool/Instead/components/discount.vue index 9831ed0..e2c0ae3 100644 --- a/src/views/tool/Instead/components/discount.vue +++ b/src/views/tool/Instead/components/discount.vue @@ -3,7 +3,7 @@
- +
¥{{ form.money }}
diff --git a/src/views/tool/Instead/components/quans.vue b/src/views/tool/Instead/components/quans.vue index a804bcf..10782cb 100644 --- a/src/views/tool/Instead/components/quans.vue +++ b/src/views/tool/Instead/components/quans.vue @@ -286,11 +286,13 @@ export default { //相同商品抵扣券数组 const arr = this.quans.productCoupon.filter((v) => v.proId == row.proId); const index = arr.findIndex((v) => v.id == row.id); + const item=this.goodsArr.find((v) => v.productId == row.proId); if (index != -1) { const n=returnProductCoupAllPrice( $goodsPayPriceMap[row.proId], index, - row.num + row.num, + item.isMember ) return (n*this.discount).toFixed(2); } else { @@ -385,7 +387,7 @@ export default { .catch(() => {}); } if (this.fullReductionCouponSel.fullAmount > payPrice) { - this.$confirm( + this.$confirm( "选择该商品券后将不满足选择抵扣券的最低满减需求,继续选择将取消选择的满减券", "提示", { @@ -399,7 +401,11 @@ export default { id: "", }; }) - .catch(() => {}); + .catch(() => { + item.checked=false + const index = this.quansSelArr.findIndex((v) => v.id == item.id); + this.quansSelArr.splice(index, 1); + }); } } item.checked = !item.checked; @@ -441,7 +447,6 @@ export default { async open(data, propSelCoup) { console.log(data); this.orderPrice = data.orderPrice; - this.discount=data.discount||1 this.quansSelArr = [...propSelCoup]; $goodsPayPriceMap = returnGoodsPayPriceMap(this.goodsArr || []); if (data.memberId) { diff --git a/src/views/tool/Instead/index.vue b/src/views/tool/Instead/index.vue index 019d78d..75ca1cb 100644 --- a/src/views/tool/Instead/index.vue +++ b/src/views/tool/Instead/index.vue @@ -1065,16 +1065,11 @@
积分抵扣
-
-¥{{ points.toMoney | to2 }}
+
-¥{{ pointsDiscountAmount | to2 }}
整单改价
-
- -¥{{ - ((1 - createOrder.discount) * createOrder.data.amount) - | to2 - }} -
+
-¥{{ gaijia | to2 }}
打包费
@@ -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