Explorar el Código

fix(KIP-10731): 【DE】【C端】【沈阳】。用户可以使用抵扣时长超过7小时

john hace 2 años
padre
commit
5efa305718

+ 162 - 163
src/api/mockData/checkout.sy5.response.json

@@ -1,181 +1,181 @@
 {
-  "parkingRecord": {
+    "parkingRecord": {
       "vehicleNo": "鲁A10001",
       "enterTime": "2023-06-13 10:50:08",
       "serviceMin": 8995,
       "totalFee": 35000,
-      "actualPayFee": 315,
+      "actualPayFee": 345,
       "thirdPartyId": "_1_29bcc3e1_1687164315526",
       "thirdParkOrderNo": "29bcc3e1b5b64aec9ad0213e7dd0fd65",
       "createdByQrCode": false,
       "totalFeeInYuan": 350
-  },
-  "discountInfo": {
-      "usingTotalDiscount": 35,
+    },
+    "discountInfo": {
+      "usingTotalDiscount": 5,
       "memberLevelDiscount": true,
       "memberGrade": [
-          {
-              "defaultSelected": true,
-              "selected": false,
-              "memberGrade": "1",
-              "memberGradeText": "芳华卡",
-              "discountTime": 1,
-              "discountFee": 5
-          }
+        {
+          "defaultSelected": true,
+          "selected": true,
+          "memberGrade": "1",
+          "memberGradeText": "芳华卡",
+          "discountTime": 1,
+          "discountFee": 5
+        }
       ],
       "consume": [
-          {
-              "defaultSelected": true,
-              "selected": true,
-              "maxDiscountTime": 7,
-              "defaultDiscountTime": 6,
-              "discountFee": 5,
-              "redeemSalesAmount": 1200
-          }
+        {
+          "defaultSelected": true,
+          "selected": false,
+          "maxDiscountTime": 7,
+          "defaultDiscountTime": 6,
+          "discountFee": 15,
+          "redeemSalesAmount": 1200
+        }
       ],
       "points": [
-          {
-              "available": 580,
-              "selected": true,
-              "pointsPerUnit": 500,
-              "unitAmount": 5,
-              "totalAvailable": 580,
-              "unitHour": 1,
-              "newMember": false,
-              "label": "已选择兑换1小时",
-              "discountFee": 0
-          }
+        {
+          "available": 580,
+          "selected": true,
+          "pointsPerUnit": 500,
+          "unitAmount": 5,
+          "totalAvailable": 580,
+          "unitHour": 1,
+          "newMember": false,
+          "label": "已选择兑换1小时",
+          "discountFee": 0
+        }
       ],
       "coupons": [
-          {
-              "code": "fku6wa8o72o_t",
-              "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79",
-              "selected": true,
-              "status": "available",
-              "name": "停车券(可叠加)",
-              "expirationDate": "2023-06-23 23:59:59",
-              "discountFee": 5,
-              "defaultSelected": false,
-              "superposition": "2",
-              "limitCountPerOrder": 10
-          },
-          {
-              "code": "7sfyn7q1v2e_t",
-              "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79",
-              "selected": true,
-              "status": "available",
-              "name": "停车券(可叠加)",
-              "expirationDate": "2023-06-23 23:59:59",
-              "discountFee": 5,
-              "defaultSelected": false,
-              "superposition": "2",
-              "limitCountPerOrder": 10
-          },
-          {
-              "code": "l0grva01iy7_t",
-              "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79",
-              "selected": true,
-              "status": "available",
-              "name": "停车券(可叠加)",
-              "expirationDate": "2023-06-23 23:59:59",
-              "discountFee": 5,
-              "defaultSelected": false,
-              "superposition": "2",
-              "limitCountPerOrder": 10
-          },
-          {
-              "code": "qhdsdzdgype_t",
-              "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79",
-              "selected": true,
-              "status": "available",
-              "name": "停车券(可叠加)",
-              "expirationDate": "2023-06-23 23:59:59",
-              "discountFee": 5,
-              "defaultSelected": false,
-              "superposition": "2",
-              "limitCountPerOrder": 10
-          },
-          {
-              "code": "vm9yvs9akvw_t",
-              "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79",
-              "selected": true,
-              "status": "available",
-              "name": "停车券(可叠加)",
-              "expirationDate": "2023-06-23 23:59:59",
-              "discountFee": 5,
-              "defaultSelected": false,
-              "superposition": "2",
-              "limitCountPerOrder": 10
-          },
-          {
-              "code": "f42wx8g8did_t",
-              "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79",
-              "selected": true,
-              "status": "available",
-              "name": "停车券(可叠加)",
-              "expirationDate": "2023-06-23 23:59:59",
-              "discountFee": 5,
-              "defaultSelected": false,
-              "superposition": "2",
-              "limitCountPerOrder": 10
-          },
-          {
-              "code": "iftzuyzyt8d_t",
-              "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79",
-              "selected": false,
-              "status": "available",
-              "name": "停车券(可叠加)",
-              "expirationDate": "2023-06-23 23:59:59",
-              "discountFee": 5,
-              "defaultSelected": false,
-              "superposition": "2",
-              "limitCountPerOrder": 10
-          },
-          {
-              "code": "rcequjzoe5d_t",
-              "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79",
-              "selected": false,
-              "status": "available",
-              "name": "停车券(可叠加)",
-              "expirationDate": "2023-06-23 23:59:59",
-              "discountFee": 5,
-              "defaultSelected": false,
-              "superposition": "2",
-              "limitCountPerOrder": 10
-          },
-          {
-              "code": "w5xyzlcamie_t",
-              "couponId": "ff54436ae9a14842953e829ac4a942ef",
-              "selected": false,
-              "status": "available",
-              "name": "停车券(不可叠加)",
-              "expirationDate": "2023-06-24 23:59:59",
-              "discountFee": 5,
-              "defaultSelected": false,
-              "superposition": "1",
-              "limitCountPerOrder": 0
-          },
-          {
-              "code": "gsj9ezvrtve_t",
-              "couponId": "ff54436ae9a14842953e829ac4a942ef",
-              "selected": false,
-              "status": "available",
-              "name": "停车券(不可叠加)",
-              "expirationDate": "2023-06-24 23:59:59",
-              "discountFee": 5,
-              "defaultSelected": false,
-              "superposition": "1",
-              "limitCountPerOrder": 0
-          }
+        {
+          "code": "fku6wa8o72o_t",
+          "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79",
+          "selected": false,
+          "status": "available",
+          "name": "停车券(可叠加)",
+          "expirationDate": "2023-06-23 23:59:59",
+          "discountFee": 5,
+          "defaultSelected": false,
+          "superposition": "2",
+          "limitCountPerOrder": 10
+        },
+        {
+          "code": "7sfyn7q1v2e_t",
+          "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79",
+          "selected": false,
+          "status": "available",
+          "name": "停车券(可叠加)",
+          "expirationDate": "2023-06-23 23:59:59",
+          "discountFee": 5,
+          "defaultSelected": false,
+          "superposition": "2",
+          "limitCountPerOrder": 10
+        },
+        {
+          "code": "l0grva01iy7_t",
+          "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79",
+          "selected": false,
+          "status": "available",
+          "name": "停车券(可叠加)",
+          "expirationDate": "2023-06-23 23:59:59",
+          "discountFee": 5,
+          "defaultSelected": false,
+          "superposition": "2",
+          "limitCountPerOrder": 10
+        },
+        {
+          "code": "qhdsdzdgype_t",
+          "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79",
+          "selected": false,
+          "status": "available",
+          "name": "停车券(可叠加)",
+          "expirationDate": "2023-06-23 23:59:59",
+          "discountFee": 5,
+          "defaultSelected": false,
+          "superposition": "2",
+          "limitCountPerOrder": 10
+        },
+        {
+          "code": "vm9yvs9akvw_t",
+          "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79",
+          "selected": false,
+          "status": "available",
+          "name": "停车券(可叠加)",
+          "expirationDate": "2023-06-23 23:59:59",
+          "discountFee": 5,
+          "defaultSelected": false,
+          "superposition": "2",
+          "limitCountPerOrder": 10
+        },
+        {
+          "code": "f42wx8g8did_t",
+          "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79",
+          "selected": false,
+          "status": "available",
+          "name": "停车券(可叠加)",
+          "expirationDate": "2023-06-23 23:59:59",
+          "discountFee": 5,
+          "defaultSelected": false,
+          "superposition": "2",
+          "limitCountPerOrder": 10
+        },
+        {
+          "code": "iftzuyzyt8d_t",
+          "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79",
+          "selected": false,
+          "status": "available",
+          "name": "停车券(可叠加)",
+          "expirationDate": "2023-06-23 23:59:59",
+          "discountFee": 5,
+          "defaultSelected": false,
+          "superposition": "2",
+          "limitCountPerOrder": 10
+        },
+        {
+          "code": "rcequjzoe5d_t",
+          "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79",
+          "selected": false,
+          "status": "available",
+          "name": "停车券(可叠加)",
+          "expirationDate": "2023-06-23 23:59:59",
+          "discountFee": 5,
+          "defaultSelected": false,
+          "superposition": "2",
+          "limitCountPerOrder": 10
+        },
+        {
+          "code": "w5xyzlcamie_t",
+          "couponId": "ff54436ae9a14842953e829ac4a942ef",
+          "selected": false,
+          "status": "available",
+          "name": "停车券(不可叠加)",
+          "expirationDate": "2023-06-24 23:59:59",
+          "discountFee": 5,
+          "defaultSelected": false,
+          "superposition": "1",
+          "limitCountPerOrder": 0
+        },
+        {
+          "code": "gsj9ezvrtve_t",
+          "couponId": "ff54436ae9a14842953e829ac4a942ef",
+          "selected": false,
+          "status": "available",
+          "name": "停车券(不可叠加)",
+          "expirationDate": "2023-06-24 23:59:59",
+          "discountFee": 5,
+          "defaultSelected": false,
+          "superposition": "1",
+          "limitCountPerOrder": 0
+        }
       ],
       "paperCoupons": [
-          {
-              "description": "纸质优惠券允许叠加使用,可在该小程序端、自助缴费机,出口设备上进行核销,不受每日最高8小时优惠限制",
-              "selected": false
-          }
+        {
+          "description": "纸质优惠券允许叠加使用,可在该小程序端、自助缴费机,出口设备上进行核销,不受每日最高8小时优惠限制",
+          "selected": false
+        }
       ]
-  },
-  "parkingRule": {
+    },
+    "parkingRule": {
       "maxOneDayDiscountFee": 35,
       "enableNewMemberPoints": false,
       "enablePoints": true,
@@ -183,18 +183,17 @@
       "enableCoupon": true,
       "enablePaperCoupons": true,
       "enableConsume": true,
-      "enableConsumeNonSplit": false,
       "maxConsumeTime": 7,
       "remainConsumeTime": 7,
       "availableDiscountFee": 35,
       "hourPrice": 5,
       "oneTimeLimitation": false,
       "oneDayLimitation": true
-  },
-  "parkInfo": {
+    },
+    "parkInfo": {
       "parkName": "沈阳嘉里城停车场\t",
       "description": "计费基础规则:5元每小时,上不封顶\n首停减免:1小时/次/天\n会员等级减免:芳华卡每日可免费停车1小时,倾城卡每日可免费停车2小时,金玉卡每日可免费停车3小时(当日仅限使用1次,可与其他减免优惠共享)\n积分抵扣:芳华卡500积分抵扣1小时,倾城卡400积分抵扣1小时,金玉卡300积分抵扣1小时(手动选择抵扣时长)\n消费减免:当日消费每满200元赠送1小时停车时长,每天赠送8小时封顶(仅限会员,当日有效)\n\n注意事项  \n1.沈阳嘉里城停车场开放时间:24小时。\n2.每日最多享首停+会员权益减免(包含会员消费减免)免费停车8小时。\n3.会员等级减免仅限本人使用,每日每位会员只能为一辆车做会员等级减免,每辆车每日只接受一个会员的等级减免。\n4.每张消费小票仅可为1辆车做会员消费减免。\n5.积分兑换停车时长、纸质优惠券没有任何限制。",
       "parkMallCode": 4,
       "buildingId": "SKC-P1"
-  }
-}
+    }
+  }

+ 66 - 61
src/pages/parkingFee/mixins/parkingFeeDiscounts.js

@@ -32,6 +32,7 @@ export default {
       maxReduceDiscount: 0,
       reduceHours: 0,
       remainPrice: 0,
+      isInit: 1,
     };
   },
   computed: {
@@ -186,7 +187,35 @@ export default {
         }
       }
     },
-    checkedList() {
+    checkedList(newVal, oldVal) {
+      // console.log(190, { newVal, oldVal });
+      if (this.parkMallCode === 4 && this.isInit > 1) {
+        const { maxOneDayCoupons, maxonedaydiscountFee, maxOneTimeDiscountTime, remainConsumeTime, hourPrice, oneTimeLimitation, oneDayLimitation, maxOneDayDiscountFee } = this.orderDetail.parkingRule;
+        // 会员等级选中了
+        if (newVal.indexOf('member') > -1 && oldVal.indexOf('member') < 0) {
+          // console.log(193, '会员等级选中了');
+          // this.remainPrice = this.remainPrice + this.memberGrade.discountFee;
+          // this.maxReduceDiscountInit();
+        }
+        if (oldVal.indexOf('member') > -1 && newVal.indexOf('member') < 0) {
+          // 会员等级未选中了
+          // console.log(193, '会员等级未选中了');
+          // this.remainPrice = this.remainPrice - this.memberGrade.discountFee;
+          // this.maxReduceDiscountInit();
+        }
+        // 消费减免选中了
+        if (newVal.indexOf('reduces') > -1 && oldVal.indexOf('reduces') < 0) {
+          // console.log(193, '消费减免选中了');
+          this.consume.discountFee = this.reduceHours * hourPrice
+          this.remainPrice = this.remainPrice + this.consume.discountFee;
+        }
+        if (oldVal.indexOf('reduces') > -1 && newVal.indexOf('reduces') < 0) {
+          // 消费减免未选中了
+          // console.log(193, '消费减免未选中了');
+          this.consume.discountFee = this.reduceHours * hourPrice
+          this.remainPrice = this.remainPrice - this.consume.discountFee;
+        }
+      }
       // const {hourPrice} = this.orderDetail.parkingRule;
       // if ( this.checkedList.indexOf('reduces') > -1 ) {
       //   this.remainPrice = this.reduceHours * hourPrice + this.remainPrice
@@ -228,9 +257,7 @@ export default {
         this.maxReduceDiscount = this.consume.hasOwnProperty('discountFee') ? this.consume.discountFee / hourPrice : this.consume.defaultDiscountTime;
         const remainingLimitToIncrease = Math.abs(this.remainPrice - this.availableDiscountFee) / hourPrice
         if (remainingLimitToIncrease && isSelected) {
-          const remainingLimitToIncrease = Math.abs(this.remainPrice - this.availableDiscountFee) / hourPrice
-          const maxReduceDiscount = this.consume.discountFee / hourPrice + remainingLimitToIncrease
-          this.maxReduceDiscount = maxReduceDiscount < remainConsumeTime ? maxReduceDiscount : remainConsumeTime
+          this.maxReduceDiscountInit();
         }
       }
       this.oldCheckedList = [...this.checkedList];
@@ -240,6 +267,25 @@ export default {
       // }
       // https://kerryprops.atlassian.net/browse/SCRM-4016?focusedCommentId=117842: 只要存在消费减免情况,都允许用户进行操作
       this.isReduces = JSON.stringify(this.consume) === '{}';
+      setTimeout(() => {
+        this.isInit = this.isInit + 1
+      }, 300)
+    },
+    maxReduceDiscountInit() {
+      const { maxConsumeTime, remainConsumeTime, hourPrice } = this.orderDetail.parkingRule;
+      const remainingLimitToIncrease = Math.abs(this.remainPrice - this.availableDiscountFee) / hourPrice
+      if (!remainingLimitToIncrease) return
+      if (this.remainPrice > this.availableDiscountFee) {
+        // console.log('过大', this.maxReduceDiscount, remainingLimitToIncrease);
+        this.maxReduceDiscount = this.maxReduceDiscount - remainingLimitToIncrease
+        this.consume.discountFee = this.consume.discountFee - (remainingLimitToIncrease * hourPrice)
+        this.remainPrice = this.remainPrice - (remainingLimitToIncrease * hourPrice);
+        this.reduceHours = this.maxReduceDiscount
+      } else {
+        // console.log('过小');
+        const maxReduceDiscount = this.consume.discountFee / hourPrice + remainingLimitToIncrease
+        this.maxReduceDiscount = maxReduceDiscount < remainConsumeTime ? maxReduceDiscount : remainConsumeTime
+      }
     },
     setIsMemberDiscountDisabled() {
       this.todayReduceDiscountMessage = '当日';
@@ -252,8 +298,8 @@ export default {
       const { maxOneDayCoupons, maxonedaydiscountFee, maxOneTimeDiscountTime, remainConsumeTime, hourPrice, availableDiscountFee, oneTimeLimitation, oneDayLimitation, maxOneDayDiscountFee } = this.orderDetail.parkingRule;
       // console.log(133,this.reduceHours)
       // console.log(166, this.maxReduceDiscount);
-      if (type === 'plus' && (this.reduceHours < this.maxReduceDiscount || this.parkMallCode === 4)) {
-        const [isCrossMessage = false, maxReduceDiscount = this.maxReduceDiscount] = this.crossMessage();
+      if (type === 'plus') {
+        const [isCrossMessage = false, maxReduceDiscount = this.maxReduceDiscount] = this.crossMessage('onReduceHoursChange');
         if (isCrossMessage) {
           // this.remainPrice = this.remainPrice - hourPrice;
           // this.reduceHours = this.reduceHours - 1;
@@ -261,11 +307,13 @@ export default {
         }
         this.remainPrice = this.remainPrice + hourPrice;
         this.reduceHours = this.reduceHours + 1;
+        this.consume.discountFee = this.reduceHours * hourPrice
         return;
       }
       if (type === 'minus' && this.reduceHours > 1) {
         this.reduceHours = this.reduceHours - 1;
         this.remainPrice = this.remainPrice - hourPrice;
+        this.consume.discountFee = this.reduceHours * hourPrice
         return;
       }
     },
@@ -276,19 +324,7 @@ export default {
         this.remainPrice = this.memberGrade.discountFee + this.remainPrice;
         // 沈阳
         if (this.parkMallCode === 4) {
-          const [isCrossMessage = false, maxReduceDiscount = this.maxReduceDiscount] = this.crossMessage();
-          if (isCrossMessage) {
-            this.remainPrice = this.remainPrice - this.memberGrade.discountFee;
-            this.checkedList = this.checkedList.filter((elm) => elm !== 'member');
-            return
-          }
-          this.remainPrice = this.remainPrice - this.reduceHours * hourPrice;
-          this.$nextTick(() => {
-            this.maxReduceDiscount = Math.abs(availableDiscountFee - this.remainPrice) / hourPrice
-            this.reduceHours = this.maxReduceDiscount
-            this.consume.discountFee = this.reduceHours * hourPrice
-            this.remainPrice = this.remainPrice + this.reduceHours * hourPrice;
-          })
+          this.maxReduceDiscountInit();
         }
       } else if (!this.isMember) {
         this.remainPrice = this.remainPrice - this.memberGrade.discountFee;
@@ -298,20 +334,7 @@ export default {
         }
         // 如果不是沈阳,重新计算优惠
         if (this.parkMallCode === 4) {
-          const remainingLimitToIncrease = Math.abs(this.remainPrice - this.availableDiscountFee) / hourPrice
-          const maxReduceDiscount = this.consume.discountFee / hourPrice + remainingLimitToIncrease
-          const isReducesCheck = this.checkedList.indexOf('reduces');
-          // console.log(303, isReducesCheck);
-          // 用户没有选择消费减免
-          if(isReducesCheck < 0) {
-            console.log(302, isReducesCheck, maxReduceDiscount, remainingLimitToIncrease);
-          } else {
-            // 用户选择消费减免
-            this.maxReduceDiscount = maxReduceDiscount < remainConsumeTime ? maxReduceDiscount : remainConsumeTime
-            this.reduceHours = this.maxReduceDiscount
-            this.consume.discountFee = this.reduceHours * hourPrice
-            this.remainPrice = this.remainPrice + remainingLimitToIncrease * hourPrice - this.memberGrade.discountFee
-          }
+          this.maxReduceDiscountInit();
         }
       }
       // 如果不是沈阳
@@ -325,31 +348,14 @@ export default {
       }
     },
     reducesClick() {
-      const { maxOneTimeDiscountTime, hourPrice, oneTimeLimitation, maxConsumeTime, remainConsumeTime, oneDayLimitation, maxOneDayDiscountFee,availableDiscountFee } = this.orderDetail.parkingRule;
+      const { maxOneTimeDiscountTime, hourPrice, oneTimeLimitation, maxConsumeTime, remainConsumeTime, oneDayLimitation, maxOneDayDiscountFee, availableDiscountFee } = this.orderDetail.parkingRule;
       const maxOneTimeDiscountFee = maxOneTimeDiscountTime * hourPrice;
-      const reduceHours = (maxOneTimeDiscountFee - this.remainPrice) / hourPrice;
       if (this.checkedList.indexOf('reduces') > -1) {
         this.remainPrice = hourPrice + this.remainPrice;
         // 如果不是沈阳,重新计算计算最大上限
         if (this.parkMallCode !== 4) {
           this.maxReduceDiscount = remainConsumeTime > maxOneTimeDiscountFee / hourPrice ? maxOneTimeDiscountFee / hourPrice : remainConsumeTime;
         }
-        // 沈阳
-        if (this.parkMallCode === 4) {
-          const [isCrossMessage = false, maxReduceDiscount = this.maxReduceDiscount] = this.crossMessage();
-          if (isCrossMessage) {
-            this.remainPrice = this.remainPrice - this.memberGrade.discountFee;
-            this.checkedList = this.checkedList.filter((elm) => elm !== 'member');
-            return
-          }
-          this.remainPrice = this.remainPrice - this.reduceHours * hourPrice;
-          this.$nextTick(() => {
-            this.maxReduceDiscount = Math.abs(availableDiscountFee - this.remainPrice) / hourPrice
-            this.reduceHours = this.maxReduceDiscount
-            this.consume.discountFee = this.reduceHours * hourPrice
-            this.remainPrice = this.remainPrice + this.reduceHours * hourPrice;
-          })
-        }
       } else {
         this.remainPrice = this.remainPrice - hourPrice;
         // 如果不是沈阳,重新计算计算最大上限
@@ -365,19 +371,18 @@ export default {
       }
     },
     // 超限提示
-    crossMessage() {
+    crossMessage(type) {
       const { maxOneTimeDiscountTime, hourPrice, oneTimeLimitation, oneDayLimitation, maxOneDayDiscountFee } = this.orderDetail.parkingRule;
       const maxOneTimeDiscountFee = maxOneTimeDiscountTime * hourPrice;
+      // console.log(373, this.remainPrice, this.availableDiscountFee);
       // 单日上限
-      if (oneDayLimitation) {
-        const sk = this.parkMallCode === 4 ? this.remainPrice > maxOneDayDiscountFee : this.remainPrice >= maxOneDayDiscountFee 
-        if (sk) {
-          Toast({
-            message: `每日最高可抵扣${maxOneDayDiscountFee}元`,
-            icon: 'none',
-          });
-          return [true, (maxOneDayDiscountFee - (this.reduceHours - 1) * hourPrice) / hourPrice];
-        }
+      if (oneDayLimitation && this.remainPrice >= this.availableDiscountFee) {
+
+        Toast({
+          message: `每日最高可抵扣${maxOneDayDiscountFee}元`,
+          icon: 'none',
+        });
+        return [true, (maxOneDayDiscountFee - (this.reduceHours - 1) * hourPrice) / hourPrice];
       }
       // 单次上限限制
       if (oneTimeLimitation && this.remainPrice >= maxOneTimeDiscountFee) {