|
|
@@ -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;
|