From 0069b7c6fd8160c1f480ebd573c14ea791e6835d Mon Sep 17 00:00:00 2001
From: YeMingfei666 <1619116647@qq.com>
Date: Tue, 19 Nov 2024 17:48:48 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BD=BF=E7=94=A8=E4=BC=98?=
=?UTF-8?q?=E6=83=A0=E5=88=B8=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pagesOrder/pay-order/pay-order.vue | 10 ++++---
pagesOrder/quan/quan.vue | 43 +++++++++++++++++++++---------
pagesOrder/quan_util.js | 26 +++++++++++++++++-
3 files changed, 62 insertions(+), 17 deletions(-)
diff --git a/pagesOrder/pay-order/pay-order.vue b/pagesOrder/pay-order/pay-order.vue
index 4f46e2c..20b508d 100644
--- a/pagesOrder/pay-order/pay-order.vue
+++ b/pagesOrder/pay-order/pay-order.vue
@@ -227,7 +227,7 @@
import editDiscount from '@/components/my-components/edit-discount.vue'
import editAccountPoints from './components/edit-accountPoints.vue'
import {
- returnGoodsPayPriceMap,returnProCoupStartIndex ,returnProductCoupAllPrice
+ returnGoodsPayPriceMap,returnProCoupStartIndex ,returnProductCoupAllPrice,returnProductCanUseNum
} from '../quan_util.js'
//商品数量从0到n每一个对应的价格
let $goodsPayPriceMap={}
@@ -396,7 +396,7 @@
uni.$on('choose-quan', (arr) => {
console.log(arr);
const manjianCoup = arr.filter(v => v.type == 1&&v.num>=1)
- let productCoup = arr.filter(v => v.type == 2&&v.num>=1)
+ let productCoup = arr.filter(v => v.type == 2)
console.log(productCoup);
//商品券分组
let coupMap={}
@@ -408,16 +408,20 @@
coupMap[coup.proId]=[coup]
}
}
+ console.log(coupMap);
for(let key in coupMap){
const arr=coupMap[key]
for(let i in arr){
const coup=arr[i]
const proCoupStartIndex=returnProCoupStartIndex(arr,i)
- const num=Math.min($goodsPayPriceMap[coup.proId].length,coup.num)
+ console.log(proCoupStartIndex);
+ const coupUseNum=returnProductCanUseNum($goodsPayPriceMap[coup.proId],proCoupStartIndex,coup.num)
+ const num=Math.min($goodsPayPriceMap[coup.proId].length,coupUseNum)
coup.num=num
coup.discountAmount=returnProductCoupAllPrice($goodsPayPriceMap[coup.proId],proCoupStartIndex,num).toFixed(2)
}
}
+ productCoup=productCoup.filter(v=>v.num>=1)
console.log(productCoup);
pays.quan = [...manjianCoup, ...productCoup]
})
diff --git a/pagesOrder/quan/quan.vue b/pagesOrder/quan/quan.vue
index 9ab6782..c9c386b 100644
--- a/pagesOrder/quan/quan.vue
+++ b/pagesOrder/quan/quan.vue
@@ -21,7 +21,8 @@
有效期:
- {{dayjs(item.endTime).format('YYYY-MM-DD HH:mm:ss') }}
+ {{dayjs(item.endTime).format('YYYY-MM-DD HH:mm:ss') }}
+
{{ formatStr(item.useRestrictions)}}
@@ -65,7 +66,8 @@
有效期:
- {{dayjs(item.endTime).format('YYYY-MM-DD HH:mm:ss') }}
+ {{dayjs(item.endTime).format('YYYY-MM-DD HH:mm:ss') }}
+
{{ formatStr(item.useRestrictions)}}
@@ -92,7 +94,7 @@
-
+
抵扣金额:
@@ -103,7 +105,8 @@
支付金额:
¥
{{payPrice }}
-
+
¥
{{option.orderPrice}}
@@ -229,13 +232,18 @@
if (!item.use) {
return
}
- console.log();
if (myQuan.fullReductionCouponSel.id && !item.checked) {
const goodsQuan = myQuan.res.productCoupon.filter(v => v.checked)
const fullReductionCoupon = myQuan.fullReductionCouponSel.id ? [myQuan.fullReductionCouponSel] : []
let coupArr = [...goodsQuan, item]
const payPrice = option.orderPrice - returnCouponAllPrice(coupArr, canDikouGoodsArr, user.value)
- console.log(payPrice);
+ if (payPrice<=0) {
+ modal.content = '选择该商品券后支付金额将为0,继续选择将取消选择的满减券'
+ modal.cancelText = '取消'
+ modal.confirmText = '继续选择'
+ setModalShow('clear', true, item)
+ return
+ }
if (myQuan.fullReductionCouponSel.fullAmount > payPrice) {
modal.content = '选择该商品券后将不满足选择抵扣券的最低满减需求,继续选择将取消选择的满减券'
modal.cancelText = '取消'
@@ -247,11 +255,18 @@
item.checked = !item.checked
const CheckedArr = myQuan.res.productCoupon.filter(v => v.checked)
+ if (CheckedArr.length <= 0) {
+ return myQuan.res.productCoupon.map(v => {
+ v.use = true
+ })
+ }
const noCheckedArr = myQuan.res.productCoupon.filter(v => !v.checked)
noCheckedArr.map(v => {
console.log(returnCoupCanUse(canDikouGoodsArr, v, CheckedArr));
v.use = returnCoupCanUse(canDikouGoodsArr, v, CheckedArr)
})
+
+
}
function changeFullReductionCouponSel(item) {
@@ -263,10 +278,11 @@
myQuan.fullReductionCouponSel = {
id: ''
}
- }else{
+ } else {
myQuan.fullReductionCouponSel = item
}
- myQuan.res.fullReductionCoupon=returnCanUseFullReductionCoupon($fullReductionCoupon, payPrice.value, myQuan.fullReductionCouponSel)
+ myQuan.res.fullReductionCoupon = returnCanUseFullReductionCoupon($fullReductionCoupon, payPrice.value, myQuan
+ .fullReductionCouponSel)
}
function formatStr(str) {
@@ -316,7 +332,7 @@
const option = reactive({
orderId: '',
memberId: '',
- orderPrice:0
+ orderPrice: 0
})
function toEmitChooseQuan(item) {
@@ -339,13 +355,14 @@
let coupArr = [...fullReductionCoupon, ...goodsQuan]
return returnCouponAllPrice(coupArr, canDikouGoodsArr, user.value)
})
- const payPrice=computed(()=>{
- const pay= option.orderPrice-discountAmount.value
- return (pay<0?0:pay).toFixed(2)
+ const payPrice = computed(() => {
+ const pay = option.orderPrice - discountAmount.value
+ return (pay < 0 ? 0 : pay).toFixed(2)
})
watch(() => myQuan.types.sel, (newval) => {
if (newval == 0) {
- myQuan.res.fullReductionCoupon = returnCanUseFullReductionCoupon($fullReductionCoupon, payPrice.value, myQuan.fullReductionCouponSel)
+ myQuan.res.fullReductionCoupon = returnCanUseFullReductionCoupon($fullReductionCoupon, payPrice.value,
+ myQuan.fullReductionCouponSel)
}
if (newval == 1) {
diff --git a/pagesOrder/quan_util.js b/pagesOrder/quan_util.js
index 903c60e..78360d7 100644
--- a/pagesOrder/quan_util.js
+++ b/pagesOrder/quan_util.js
@@ -40,7 +40,8 @@ export function returnCoupCanUse(goodsArr = [], coup, selCoupArr = []) {
if (selCoupNumber >= findGoodsTotalNumber) {
return false
}
- return findGoodsTotalNumber < (coup.num + selCoupNumber) ? false : true
+ console.log(selCoupNumber,findGoodsTotalNumber);
+ return findGoodsTotalNumber < selCoupNumber ? false : true
}
//查找购物车商品根据购物车商品数据返回商品券信息(抵扣价格以及是否满足可用需求)
export function returnProductCoupon(coup, goodsArr, vipUser, selCoupArr = []) {
@@ -101,6 +102,23 @@ export function returnProductCoupAllPrice(productPriceArr,startIndex,num){
return prve+curPrice
},0)
}
+
+//返回商品券可抵扣的商品数量
+export function returnProductCanUseNum(productPriceArr,startIndex,num){
+ console.log(productPriceArr);
+ console.log(num);
+ let n=0;
+ for(let i=0;i{
@@ -201,6 +219,12 @@ export function returnCanUseFullReductionCoupon(coupArr, payPrice, selCoup) {
return v
}
const isfullAmount = payPrice >= v.fullAmount * 1
+ if(payPrice<=0){
+ return {
+ ...v,
+ use: false
+ }
+ }
return {
...v,
use: v.use && isfullAmount