Răsfoiți Sursa

feat(SCRM-3602): 功能优化 | 临时停车优惠券选择未生效券展示和提示

john 2 ani în urmă
părinte
comite
e47e3bafbd

+ 138 - 0
src/api/mockData/checkout.qh12.response.json

@@ -0,0 +1,138 @@
+{
+  "parkingRecord": {
+    "vehicleNo": "京A22222",
+    "enterTime": "2023-05-12 12:45:50",
+    "serviceMin": 180,
+    "totalFee": 10000,
+    "actualPayFee": 35,
+    "thirdPartyId": "af9d1948ca70418e93714b13a481b716",
+    "thirdParkOrderNo": "fa34b146441049c9b9512c1ec96d5ee4",
+    "createdByQrCode": false,
+    "totalFeeInYuan": 100
+  },
+  "discountInfo": {
+    "usingTotalDiscount": 65,
+    "memberLevelDiscount": false,
+    "points": [
+      {
+        "available": 96080,
+        "maxDiscountFee": 20,
+        "pointsPerUnit": 50,
+        "unitAmount": 5,
+        "totalAvailable": 96080,
+        "newMember": false,
+        "label": "96080积分可减免"
+      }
+    ],
+    "coupons": [
+      {
+        "code": "xe1c9nefr1f_t",
+        "couponId": "8510a3449da249ccb5bc95f67ce55552",
+        "status": "available",
+        "availableDays": "星期五",
+        "name": "首2小时停车券(测试)",
+        "expirationDate": "2023-05-14 23:59:59",
+        "discountFee": 5,
+        "defaultSelected": true,
+        "superposition": "2",
+        "limitCountPerOrder": 1
+      },
+      {
+        "code": "jzqkfzumcdp_t",
+        "couponId": "f7a818606e694fc08dd85624ae943117",
+        "status": "available",
+        "name": "5元停车券(周末及法定节假日)--001--001",
+        "expirationDate": "2023-05-31 23:59:59",
+        "discountFee": 20,
+        "defaultSelected": true,
+        "superposition": "2",
+        "limitCountPerOrder": 1000
+      },
+      {
+        "code": "9rvim4pv320_t",
+        "couponId": "f7a818606e694fc08dd85624ae943117",
+        "status": "available",
+        "name": "5元停车券(周末及法定节假日)--001--001",
+        "expirationDate": "2023-05-31 23:59:59",
+        "discountFee": 20,
+        "defaultSelected": true,
+        "superposition": "2",
+        "limitCountPerOrder": 1000
+      },
+      {
+        "code": "mf1i5fh2iog_t",
+        "couponId": "f7a818606e694fc08dd85624ae943117",
+        "status": "available",
+        "name": "5元停车券(周末及法定节假日)--001--001",
+        "expirationDate": "2023-05-31 23:59:59",
+        "discountFee": 20,
+        "defaultSelected": true,
+        "superposition": "2",
+        "limitCountPerOrder": 1000
+      },
+      {
+        "code": "9uhv554ga5c_t",
+        "couponId": "f7a818606e694fc08dd85624ae943117",
+        "status": "available",
+        "name": "5元停车券(周末及法定节假日)--001--001",
+        "expirationDate": "2023-05-31 23:59:59",
+        "discountFee": 20,
+        "defaultSelected": false,
+        "superposition": "2",
+        "limitCountPerOrder": 1000
+      },
+      {
+        "code": "y9ve7z58vj4_t",
+        "couponId": "99c1f1a1455e45f7b467f40c4bc54659",
+        "status": "available",
+        "name": "首2小时停车券(测试)--001",
+        "expirationDate": "2023-05-31 23:59:59",
+        "discountFee": 20,
+        "defaultSelected": false,
+        "superposition": "2",
+        "limitCountPerOrder": 1
+      },
+      {
+        "code": "77grg1hzjy2_t",
+        "couponId": "99c1f1a1455e45f7b467f40c4bc54659",
+        "status": "available",
+        "name": "首2小时停车券(测试)--001",
+        "expirationDate": "2023-05-31 23:59:59",
+        "discountFee": 20,
+        "defaultSelected": false,
+        "superposition": "2",
+        "limitCountPerOrder": 1
+      },
+      {
+        "code": "y5jsec404jl_t",
+        "couponId": "98e83825c685476b99971752b4ca25ba",
+        "status": "available",
+        "availableDays": "星期二#星期三#星期四#星期五#星期六#星期日",
+        "name": "5元停车券",
+        "expirationDate": "2023-05-31 23:59:59",
+        "discountFee": 5,
+        "defaultSelected": false,
+        "superposition": "2",
+        "limitCountPerOrder": 99
+      }
+    ]
+  },
+  "parkingRule": {
+    "maxOneDayDiscountFee": 60,
+    "enableNewMemberPoints": false,
+    "enablePoints": true,
+    "enableCoupon": true,
+    "enablePaperCoupons": false,
+    "maxPointsTime": 1921,
+    "enableConsume": false,
+    "enableConsumeSplit": false,
+    "availableDiscountFee": 60,
+    "hourPrice": 5
+  },
+  "parkInfo": {
+    "parkName": "深圳前海湾停车场",
+    "description": "基础计费规则:\n15分钟内免费,首小时15元,其后每小时5元,全天封顶60元。\n嘉湾汇会员停车礼遇:\n银卡:每月可免费领取2张首2小时停车券\n金卡:每月可免费领取5张首2小时停车券\n铂金卡:每月可免费领取10张首2小时停车券\n*数量有限,领完即止\n仅限开具一个月内的停车费电子发票 ",
+    "parkMallCode": 5,
+    "buildingId": "QHKC-P1"
+  }
+}

+ 7 - 3
src/pages/parkingFee/mixins/parkingFeeCoupon.js

@@ -116,6 +116,7 @@ export default {
           this.remainPrice = this.remainPrice - this.couponList[index].discountFee
           this.newAvailableDiscountFee = this.newAvailableDiscountFee + this.couponList[index].discountFee
           this.newGroupedCouponData()
+          this.isDisabledByRule(coupon, index, 'showMsg');
         }, 100)
         return;
       }
@@ -129,6 +130,7 @@ export default {
       this.$nextTick(() => {
         this.newGroupedCouponData()
         this.setAllDisabled()
+        this.isDisabledByRule(coupon, index, 'showMsg');
       })
       
     },
@@ -267,7 +269,7 @@ export default {
       this.couponList = [...couponList];
     },
     // 根据电子券规则判断是否可选
-    isDisabledByRule(item) {
+    isDisabledByRule(item, index, showMsg) {
       const { parkMallCode } = this.orderDetail.parkInfo;
       // 最高优先级,提示未生效的电子券
       if (item.status === 'unavailable') {
@@ -304,7 +306,7 @@ export default {
        }*/
 
       // 浦东每次缴费超限控制、沈阳每日超限控制
-      if ((parkMallCode === 1 || parkMallCode === 4 || parkMallCode === 5 || parkMallCode === 999 || parkMallCode === 6) && this.crossMessage()) {
+      if ((parkMallCode === 1 || parkMallCode === 4 || parkMallCode === 5 || parkMallCode === 999 || parkMallCode === 6) && this.crossMessage(showMsg)) {
         this.couponList = this.couponList.map((e, i) => {
           if (this.checkedCouponList.findIndex((c) => c === `coupon${i}`) === -1) {
             e.disabled = true;
@@ -323,7 +325,7 @@ export default {
       return this.checkedCouponList.findIndex((e) => e == val) !== -1;
     },
     // 超限提示
-    crossMessage() {
+    crossMessage(showMsg = '') {
       const { parkMallCode } = this.orderDetail.parkInfo;
       const { maxOneDayCoupons, maxonedaydiscountFee, remainConsumeTime, hourPrice, availableDiscountFee, maxOneTimeDiscountTime } = this.orderDetail.parkingRule;
       const {
@@ -377,6 +379,7 @@ export default {
        }*/
       // 深圳超限处理
       if (parkMallCode === 5 && this.remainPrice  >= this.availableDiscountFee) {
+        if ( showMsg ) return true
         return Toast({
           message: `每日最高可抵扣${this.maxOneDayDiscountFee}元`,
           icon: 'none',
@@ -384,6 +387,7 @@ export default {
       }
       // 浦东,单次上限提示, 后续 usingTotalDiscount 再减去 纸质优惠券的金额
       if (parkMallCode === 1 && this.remainPrice - this.paperDiscountFee >= this.availableDiscountFee) {
+        if ( showMsg ) return true
         return Toast({
           message: `超出抵扣上限,每次最高可抵扣${maxOneTimeDiscountTime}小时`,
           icon: 'none',