Pārlūkot izejas kodu

Merge pull request #168 from John-Hong/John/release-2.11.0/SCRM-4016

fix(KIP-10699): 【DE】【C端】【杭州】。临时停车,消费减免中,不应显示”+“和”-“
Tron 2 gadi atpakaļ
vecāks
revīzija
000eb5f2b9

+ 85 - 0
src/api/mockData/checkout.hz3.response.json

@@ -0,0 +1,85 @@
+{
+  "parkingRecord": {
+      "vehicleNo": "鲁A10009",
+      "enterTime": "2023-06-13 14:54:25",
+      "serviceMin": 2679,
+      "totalFee": 20000,
+      "actualPayFee": 180.0,
+      "thirdPartyId": "_1_afc8eb04_1686800016116",
+      "thirdParkOrderNo": "afc8eb04f34644c181d8210e2e39c9ae",
+      "createdByQrCode": false,
+      "totalFeeInYuan": 200.00
+  },
+  "discountInfo": {
+      "usingTotalDiscount": 20,
+      "memberLevelDiscount": true,
+      "memberGrade": [
+          {
+              "defaultSelected": true,
+              "memberGrade": "4",
+              "memberGradeText": "臻选银卡",
+              "discountTime": 1,
+              "discountFee": 10
+          }
+      ],
+      "consume": [
+        {
+            "defaultDiscountTime": 3,
+            "discountFee": 30,
+            "redeemSalesAmount": 600,
+            "couponCodes": "due0spj8wc4_t#uel92wo47da_t#nyjr6yd95y9_t"
+        }
+    ],
+      "coupons": [
+          {
+              "code": "j6x51ntawrn_t",
+              "couponId": "4ed038d39fef486f853d53a8bc0b15e1",
+              "status": "available",
+              "name": "停车券-自动化",
+              "expirationDate": "2025-04-01 23:59:59",
+              "discountFee": 10,
+              "defaultSelected": true,
+              "superposition": "1",
+              "limitCountPerOrder": 0
+          },
+          {
+              "code": "lljwkim3mjd_t",
+              "couponId": "4ed038d39fef486f853d53a8bc0b15e1",
+              "status": "available",
+              "name": "停车券-自动化",
+              "expirationDate": "2025-04-01 23:59:59",
+              "discountFee": 10,
+              "defaultSelected": false,
+              "superposition": "1",
+              "limitCountPerOrder": 0
+          }
+      ],
+      "paperCoupons": [
+          {
+              "description": "请扫描纸质停车优惠券二维码,获取停车优惠"
+          }
+      ]
+  },
+  "parkingRule": {
+      "enableNewMemberPoints": false,
+      "enablePoints": false,
+      "unLimitWeekendPoints": false,
+      "enableCoupon": true,
+      "maxOneDayCoupons": 5,
+      "remainCoupons": 5,
+      "enablePaperCoupons": true,
+      "enableConsume": true,
+      "enableConsumeNonSplit": true,
+      "maxConsumeTime": 6,
+      "remainConsumeTime": 6,
+      "hourPrice": 10,
+      "oneTimeLimitation": false,
+      "oneDayLimitation": false
+  },
+  "parkInfo": {
+      "parkName": "杭州嘉里中心",
+      "description": "基础计费规则:10元/小时\n会员权益减免:铂金卡4小时,金卡2小时,臻选银卡1小时,每日限享优惠权益1次,不可拆分使用,可与消费抵免叠加使用。\n会员消费减免:消费200元可减免2小时,消费400元可减免4小时,消费800元及以上可减免6小时,当日有效,单次获得的减免不可拆分使用,当日最多可享受消费减免6小时。",
+      "parkMallCode": 2,
+      "buildingId": "HKC-P1"
+  }
+}

+ 196 - 0
src/api/mockData/checkout.sy1.response.json

@@ -0,0 +1,196 @@
+{
+    "parkingRecord": {
+      "vehicleNo": "鲁A10004", 
+      "enterTime": "2023-06-13 13:52:00", 
+      "serviceMin": 2942, 
+      "totalFee": 2000, 
+      "actualPayFee": 0, 
+      "thirdPartyId": "_5_b7b70045_1686812071194", 
+      "thirdParkOrderNo": "b7b70045ab7346a39a1ffb4845ca0960", 
+      "createdByQrCode": false, 
+      "totalFeeInYuan": 20
+    }, 
+    "discountInfo": {
+      "usingTotalDiscount": 20, 
+      "memberLevelDiscount": true, 
+      "memberGrade": [
+        {
+          "defaultSelected": true, 
+          "memberGrade": "1", 
+          "memberGradeText": "芳华卡", 
+          "discountTime": 1, 
+          "discountFee": 5
+        }
+      ], 
+      "consume": [
+        {
+          "defaultSelected": true, 
+          "maxDiscountTime": 4, 
+          "defaultDiscountTime": 3, 
+          "discountFee": 15, 
+          "redeemSalesAmount": 600
+        }
+      ], 
+      "points": [
+        {
+          "available": 445, 
+          "pointsPerUnit": 500, 
+          "unitAmount": 5, 
+          "totalAvailable": 445, 
+          "unitHour": 1, 
+          "newMember": false, 
+          "label": "445积分可减免"
+        }
+      ], 
+      "coupons": [
+        {
+          "code": "ee087ceo9cy_t", 
+          "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79", 
+          "status": "available", 
+          "name": "停车券(可叠加)", 
+          "expirationDate": "2023-06-16 23:59:59", 
+          "discountFee": 5, 
+          "defaultSelected": false, 
+          "superposition": "2", 
+          "limitCountPerOrder": 10
+        }, 
+        {
+          "code": "k2huazxj3q0_t", 
+          "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79", 
+          "status": "available", 
+          "name": "停车券(可叠加)", 
+          "expirationDate": "2023-06-16 23:59:59", 
+          "discountFee": 5, 
+          "defaultSelected": false, 
+          "superposition": "2", 
+          "limitCountPerOrder": 10
+        }, 
+        {
+          "code": "l70n2cfpvi9_t", 
+          "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79", 
+          "status": "available", 
+          "name": "停车券(可叠加)", 
+          "expirationDate": "2023-06-16 23:59:59", 
+          "discountFee": 5, 
+          "defaultSelected": false, 
+          "superposition": "2", 
+          "limitCountPerOrder": 10
+        }, 
+        {
+          "code": "8pauidxqi7p_t", 
+          "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79", 
+          "status": "available", 
+          "name": "停车券(可叠加)", 
+          "expirationDate": "2023-06-16 23:59:59", 
+          "discountFee": 5, 
+          "defaultSelected": false, 
+          "superposition": "2", 
+          "limitCountPerOrder": 10
+        }, 
+        {
+          "code": "xsci7f90m4b_t", 
+          "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79", 
+          "status": "available", 
+          "name": "停车券(可叠加)", 
+          "expirationDate": "2023-06-16 23:59:59", 
+          "discountFee": 5, 
+          "defaultSelected": false, 
+          "superposition": "2", 
+          "limitCountPerOrder": 10
+        }, 
+        {
+          "code": "gys040hr5lz_t", 
+          "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79", 
+          "status": "available", 
+          "name": "停车券(可叠加)", 
+          "expirationDate": "2023-06-16 23:59:59", 
+          "discountFee": 5, 
+          "defaultSelected": false, 
+          "superposition": "2", 
+          "limitCountPerOrder": 10
+        }, 
+        {
+          "code": "7rii9fwy4xk_t", 
+          "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79", 
+          "status": "available", 
+          "name": "停车券(可叠加)", 
+          "expirationDate": "2023-06-16 23:59:59", 
+          "discountFee": 5, 
+          "defaultSelected": false, 
+          "superposition": "2", 
+          "limitCountPerOrder": 10
+        }, 
+        {
+          "code": "54jvpe82n7o_t", 
+          "couponId": "dfc9fab9a9ce4cbfb44c15274f6f1e79", 
+          "status": "available", 
+          "name": "停车券(可叠加)", 
+          "expirationDate": "2023-06-16 23:59:59", 
+          "discountFee": 5, 
+          "defaultSelected": false, 
+          "superposition": "2", 
+          "limitCountPerOrder": 10
+        }, 
+        {
+          "code": "a3m48ifdg8r_t", 
+          "couponId": "ff54436ae9a14842953e829ac4a942ef", 
+          "status": "available", 
+          "name": "停车券(不可叠加)", 
+          "expirationDate": "2023-06-24 23:59:59", 
+          "discountFee": 5, 
+          "defaultSelected": false, 
+          "superposition": "1", 
+          "limitCountPerOrder": 0
+        }, 
+        {
+          "code": "47xz1i4uslu_t", 
+          "couponId": "ff54436ae9a14842953e829ac4a942ef", 
+          "status": "available", 
+          "name": "停车券(不可叠加)", 
+          "expirationDate": "2023-06-24 23:59:59", 
+          "discountFee": 5, 
+          "defaultSelected": false, 
+          "superposition": "1", 
+          "limitCountPerOrder": 0
+        }, 
+        {
+          "code": "gn73ktfbdda_t", 
+          "couponId": "ff54436ae9a14842953e829ac4a942ef", 
+          "status": "available", 
+          "name": "停车券(不可叠加)", 
+          "expirationDate": "2023-06-24 23:59:59", 
+          "discountFee": 5, 
+          "defaultSelected": false, 
+          "superposition": "1", 
+          "limitCountPerOrder": 0
+        }
+      ], 
+      "paperCoupons": [
+        {
+          "description": "纸质优惠券允许叠加使用,可在该小程序端、自助缴费机,出口设备上进行核销,不受每日最高8小时优惠限制"
+        }
+      ]
+    }, 
+    "parkingRule": {
+      "maxOneDayDiscountFee": 35, 
+      "enableNewMemberPoints": false, 
+      "enablePoints": true, 
+      "unLimitWeekendPoints": false, 
+      "enableCoupon": true, 
+      "enablePaperCoupons": true, 
+      "enableConsume": true, 
+      "enableConsumeNonSplit": false, 
+      "maxConsumeTime": 7, 
+      "remainConsumeTime": 7, 
+      "availableDiscountFee": 35, 
+      "hourPrice": 5, 
+      "oneTimeLimitation": false, 
+      "oneDayLimitation": true
+    }, 
+    "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"
+    }
+  }

+ 43 - 5
src/pages/parkingFee/mixins/parkingFeeDiscounts.js

@@ -25,7 +25,7 @@ export default {
       memberLevelReduce: [],
       memberGrade: {},
       consume: {},
-      todayReduceDiscountMessage: '',
+      // todayReduceDiscountMessage: '',
       isMemberDiscountDisabled: false,
       maxDiscountTime: 0,
       enableConsumeSplit: false,
@@ -73,7 +73,7 @@ export default {
         return 0
       }
       // 如果存在消费减免并且是可拆分的,则设置最低拆分单位是 1
-      return maxReduceDiscount
+      return this.maxReduceDiscount
     },
     // maxReduceDiscount() {
     //   const {maxOneDayCoupons,maxConsumeTime,maxonedaydiscountFee,maxOneTimeDiscountTime,remainConsumeTime,hourPrice,availableDiscountFee,oneTimeLimitation,oneDayLimitation,maxOneDayDiscountFee} = this.orderDetail.parkingRule;
@@ -101,6 +101,43 @@ export default {
     //
     //   return remainPrice
     // }
+    // 消费减免(拆分部分)提示文本
+		reduceSplitMessage() {
+      console.log(106, this.reduceHours);
+			if (!this.enableConsumeNonSplit) {
+				return `选择${this.reduceHours}小时,`;
+			}
+			return '';
+		},
+    // 消费减免金额
+		reducesDiscountFee() {
+			return this.reduceHours * this.orderDetail.parkingRule.hourPrice;
+		},
+    // 消费减免说明文案
+    todayReduceDiscountMessage() {
+      // 消费减免余额为 0 时
+      if(!this.orderDetail.parkingRule.remainConsumeTime) {
+        return `您今日消费减免已达${this.orderDetail.parkingRule.maxConsumeTime}小时上限`
+      }
+      // 消费减免不存在时
+      if(JSON.stringify(this.consume) === '{}') {
+        return '消费金额未达到最低优惠要求'
+      }
+      
+      // 静安存在消费减免时
+      if (this.parkMallCode === 0) {
+        return `今日可减免${this.consume.defaultDiscountTime}小时`;
+      }
+      
+      // 沈阳提示信息
+      if (this.parkMallCode === 4 || this.parkMallCode === 6) {
+        return `未达上限时今日可减免${this.consume.defaultDiscountTime}小时`;
+      }
+      if (this.consume.defaultDiscountTime > this.orderDetail.parkingRule.remainConsumeTime) {
+        return `消费已满${this.consume.redeemSalesAmount}元,减免${this.consume.defaultDiscountTime}小时。超出优惠上限,可减免${this.maxReduceDiscount}小时,${this.reduceSplitMessage}可优惠${this.reducesDiscountFee}元`
+      }
+      return `消费已满${this.consume.redeemSalesAmount}元,减免${this.consume.defaultDiscountTime}小时。${this.reduceSplitMessage}可优惠${this.reducesDiscountFee}元`
+    }
   },
   mounted() {
     try {
@@ -173,14 +210,15 @@ export default {
       }
       this.isReduces = this.consume.hasOwnProperty('selected') || this.consume.hasOwnProperty('defaultSelected') ? false : true;
       this.reduceHours = this.consume.hasOwnProperty('discountFee') ? this.consume.discountFee / this.orderDetail.parkingRule.hourPrice : this.consume.defaultDiscountTime;
-      if (remainConsumeTime) {
-        this.maxReduceDiscount = remainConsumeTime;
+      if (this.consume?.defaultDiscountTime) {
+        this.maxReduceDiscount = this.consume.defaultDiscountTime;
       }
       this.oldCheckedList = [...this.checkedList];
-      // 如果是杭州、沈阳和合集可以选择
+      // 如果是杭州、沈阳可以选择
       // if (this.parkMallCode === 2 || this.parkMallCode === 4 || this.parkMallCode === 7) {
       //   this.isReduces = JSON.stringify(this.consume) === '{}';
       // }
+      // https://kerryprops.atlassian.net/browse/SCRM-4016?focusedCommentId=117842: 只要存在消费减免情况,都允许用户进行操作
       this.isReduces = JSON.stringify(this.consume) === '{}';
     },
     setIsMemberDiscountDisabled() {

+ 1 - 9
src/pages/parkingFee/parkingFeeDiscounts.vue

@@ -19,7 +19,7 @@
               {{ todayReduceDiscountMessage }}
             </div>
             <van-stepper
-              v-if="enableConsumeSplit || true" 
+              v-if="!enableConsumeNonSplit && maxReduceDiscount > 0" 
               :min="stepperMin"
               name="reduces"
               :disabled="isReduces || !maxReduceDiscount"
@@ -29,14 +29,6 @@
               @minus="onReduceHoursChange('minus')" 
               async-change
             />
-            <!--            reduceHours: {{ reduceHours }}; maxReduceDiscount:{{ maxReduceDiscount }}-->
-            <!--            <uni-number-box
-                          v-if="enableConsumeSplit || true"
-                          :min="1"
-                          :max="maxReduceDiscount"
-                          v-model="reduceHours"
-                          @input="reducesChange"
-                        ></uni-number-box>-->
           </div>
           <van-checkbox name="reduces" color="#fff" checked-color="var(--k-color-primary)" :disabled="isReduces || !maxReduceDiscount" @click="reducesClick" />
         </div>

+ 1 - 1
src/store/order/index.js

@@ -1,4 +1,4 @@
-import checkOutQHResponse from "@/api/mockData/checkout.hj.response.json";
+import checkOutQHResponse from "@/api/mockData/checkout.sy1.response.json";
 import { checkOut,calculateDiscount,ordersAndPrepay,currentUnlicensedPlate,unlicensedCarCheckIn,unlicensedCarCheckout } from '@/api/parking';
 import state from "@/store/order/state";
 import mutations from "@/store/order/mutations";