【功能修复】修复没有优惠券时点击确定提示优惠券找不到的问题;现在订单结算页面切换地址或者配送方式会重新计算价格

This commit is contained in:
卢越
2024-08-22 21:59:07 +08:00
parent adc521022f
commit a0f85bf157
2 changed files with 14 additions and 6 deletions
+11 -3
View File
@@ -185,7 +185,7 @@
</template>
<script setup>
import { reactive, ref } from 'vue';
import { reactive, ref, watch } from 'vue';
import { onLoad } from '@dcloudio/uni-app';
import AddressSelection from '@/pages/order/addressSelection.vue';
import sheep from '@/sheep';
@@ -208,7 +208,7 @@
const addressState = ref({
addressInfo: {}, // 选择的收货地址
deliveryType: 1, // 收货方式 1 - 快递配送;2 - 门店自提
deliveryType: 1, // 收货方式1-快递配送,2-门店自提
isPickUp: true, // 门店自提是否开启 TODO puhui999: 默认开启,看看后端有开关的话接入
pickUpInfo: {}, // 选择的自提门店信息
receiverName: '', // 收件人名称
@@ -226,7 +226,7 @@
// 选择优惠券
async function onSelectCoupon(couponId) {
state.orderPayload.couponId = couponId || 0;
state.orderPayload.couponId = couponId;
await getOrderInfo();
state.showCoupon = false;
}
@@ -336,6 +336,14 @@
await getOrderInfo();
await getCoupons();
});
// 使用 watch 监听地址和配送方式的变化
watch(addressState, async (newAddress, oldAddress) => {
// 如果收货地址或配送方式有变化,则重新计算价格
if (newAddress.addressInfo.id !== oldAddress.addressInfo.id || newAddress.deliveryType !== oldAddress.deliveryType) {
await getOrderInfo();
}
});
</script>
<style lang="scss" scoped>
@@ -6,7 +6,7 @@
<scroll-view class="model-content" scroll-y :scroll-with-animation="false" :enable-back-to-top="true">
<!--可使用的优惠券区域-->
<view class="subtitle ss-m-l-20">可使用优惠券</view>
<view v-for="(item, index) in state.couponInfo.filter(coupon => coupon.match)" :key="index">
<view v-for="(item, index) in state.couponInfo" :key="index">
<s-coupon-list :data="item" type="user" :disabled="false">
<template v-slot:reason>
<view class="ss-flex ss-m-t-24">
@@ -64,13 +64,13 @@
const state = reactive({
couponInfo: computed(() => props.modelValue), // 优惠劵列表
couponId: 0, // 选中的优惠劵编号
couponId: undefined, // 选中的优惠劵编号
});
// 选中优惠劵
function radioChange(couponId) {
if (state.couponId === couponId) {
state.couponId = 0;
state.couponId = undefined;
} else {
state.couponId = couponId;
}