Parcourir la source

修复bug3590

sunshibo il y a 4 semaines
Parent
commit
11c1df69d6
1 fichiers modifiés avec 6 ajouts et 5 suppressions
  1. 6 5
      pages/placeOrder/index.vue

+ 6 - 5
pages/placeOrder/index.vue

@@ -238,14 +238,15 @@ const openCouponModal = async () => {
   }
 };
 
-// 选择优惠券后更新订单优惠与应付金额(折扣券按折扣率计算优惠金额)
+// 选择优惠券后更新订单优惠与应付金额(折扣券按折扣率计算优惠金额);取消选中时 selectedId 为空,需清空展示
 const handleCouponSelect = ({ coupon, selectedId }) => {
-  selectedCouponId.value = selectedId != null && selectedId !== '' ? String(selectedId) : null;
-  orderInfo.value.couponId = coupon ? (coupon.couponId ?? coupon.id ?? selectedCouponId.value) : null;
-  if (!coupon) {
+  const hasSelected = selectedId != null && selectedId !== '';
+  selectedCouponId.value = hasSelected ? String(selectedId) : null;
+  orderInfo.value.couponId = hasSelected ? (coupon?.couponId ?? coupon?.id ?? selectedCouponId.value) : null;
+  if (!hasSelected) {
     selectedCouponDisplay.value = '';
     orderInfo.value.discountAmount = 0;
-  } else {
+  } else if (coupon) {
     selectedCouponDisplay.value = coupon.amountDisplay || (coupon.amount ? coupon.amount + '元' : '');
     const total = dishTotal.value;
     const couponType = Number(coupon.couponType) || 0;