代码片段:<view class="price_box_item"> <block v-for="(item,index) in priceData" :key="index" > <view class="item_con bg-image" :style="{'background-image':url(${OSSImgUrl}/images/20230403_newApp/box/offline_price_item_bg.png)}" @tap.stop="onSelectPrice(item, index)" > <view class="price_1">¥</view> <view class="price_2">{{item.price / 100}}</view> <image class="price_active" :src="${OSSImgUrl}/images/20230403_newApp/box/price_active.png" v-if="selectedPriceCode == item.priceCode" ></image> </view> </block> </view><!-- 支付组件 --> <confirm-order ref="offlinePay" :payData="payData" payType="offline" @onPay="onPay" ></confirm-order>// 支付组件 import ConfirmOrder from '@/components/confirm-order/confirm-order.vue';// 选择价位 onSelectPrice(item, index){ var that = this; uni.$u.throttle( ()=> { if(item.priceCode == this.selectedPriceCode) return this.selectedPriceCode = item.priceCode; this.payData.price = item.price / 100; console.log('this.payData.price', index) this.priceIndex = index; this.payData.name = item.price / 100 + '元双盲盒大礼包' },1000) }, 怎么通过选择不同的价位,选择对应的优惠券,优惠券在支付组件中,以下是组件中的优惠券代码片段:async mounted() { this.getAddressList(); this.getCouponList1(); }, computed:{ discountPrice(){ //优惠金额 let selectedCoupon = this.selectedCoupon; let price = this.payData.price; if(selectedCoupon.type === 1){ //折扣 return (price * ((100 - selectedCoupon.discount) / 100)).toFixed(2) }else if(selectedCoupon.type === 2){ //满减 return (selectedCoupon.subPrice / 100).toFixed(2) }else{ return 0.00 } } },
时间: 2024-02-23 18:59:13 浏览: 64
你可以在选择价位时调用获取优惠券列表的方法,而获取到优惠券列表后可以将其保存在组件的 data 中,在计算属性中根据选中的优惠券计算出优惠金额。可以将以下代码添加到 `onSelectPrice` 函数中:
```
// 获取对应的优惠券列表
this.$refs.offlinePay.getCouponList1();
```
然后在支付组件中添加一个名为 `couponList` 的 data 属性来保存优惠券列表:
```
data() {
return {
couponList: [], // 保存优惠券列表
// ...
}
}
```
接下来,在 `getCouponList1` 函数中将获取到的优惠券列表保存到 `couponList` 中:
```
async getCouponList1() {
try {
const res = await api.getCouponList();
if (res.data.code === 200) {
this.couponList = res.data.data.list;
}
} catch (err) {
console.log(err);
}
},
```
最后,在计算属性中根据选中的优惠券计算出优惠金额:
```
computed: {
discountPrice() {
let selectedCoupon = this.selectedCoupon;
let price = this.payData.price;
if (selectedCoupon.type === 1) { // 折扣
return (price * ((100 - selectedCoupon.discount) / 100)).toFixed(2);
} else if (selectedCoupon.type === 2) { // 满减
return (selectedCoupon.subPrice / 100).toFixed(2);
} else {
return 0.00;
}
}
},
```
这样就可以根据选择的不同价位对应的优惠券计算出优惠金额了。
阅读全文