Prechádzať zdrojové kódy

feat(KIP-19153): 山姆优惠选项2

john 9 mesiacov pred
rodič
commit
8e0b38fd95

+ 1 - 4
src/pages/parkingFeeV2/mixins/parkingFeeDetail.js

@@ -295,10 +295,7 @@ export default {
           // points
           payChannel: isAlipay() ? 'MINI_PROGRAM' : 'OFFICIAL_ACCOUNT',
           payOption: isAlipay() ? 'ALIPAY' : 'WECHATPAY',
-          parkingRecord: {
-            ...parkingRecord,
-            actualPayFee: this.actualPayFee, //应付金额
-          },
+          parkingRecord: {...parkingRecord},
           discountInfo: {
             usingTotalDiscount: discountInfo?.usingTotalDiscount || 0, //优惠金额"
             actualUsedDiscount: discountInfo?.usingTotalDiscount || 0, //实际优惠金额

+ 23 - 0
src/store/order/common.js

@@ -0,0 +1,23 @@
+export default {
+    commonRule({commit,dispatch,state},checkOutResponse) {
+        let usingTotalDiscount = checkOutResponse?.discountInfo?.usingTotalDiscount || 0
+        let actualPayFee = 0
+        let isDiscount = false
+        if ( checkOutResponse?.parkingRecord?.hasOwnProperty('actualPayFee') ) {
+            actualPayFee = checkOutResponse.parkingRecord?.actualPayFee
+            isDiscount = true
+        } else {
+            actualPayFee = checkOutResponse.parkingRecord?.totalFee
+        }
+        if(checkOutResponse.parkingRecord.hasOwnProperty('parkDiscount'))  {
+            const {parkDiscount} = checkOutResponse.parkingRecord
+            usingTotalDiscount += parkDiscount
+            if (isDiscount) {
+                actualPayFee = actualPayFee > parkDiscount ? actualPayFee  - parkDiscount : 0;
+            }
+        }
+        // 其他数据收集
+        commit('setUsingTotalDiscount', usingTotalDiscount);
+        commit('setActualPayFee', actualPayFee);
+    }
+}

+ 6 - 8
src/store/order/index.js

@@ -2,6 +2,7 @@
 import { checkOut,calculateDiscount,ordersAndPrepay,currentUnlicensedPlate,unlicensedCarCheckIn,unlicensedCarCheckout } from '@/api/parking';
 import state from "@/store/order/state";
 import mutations from "@/store/order/mutations";
+import common from "@/store/order/common";
 import memberLevel from "@/store/order/memberLevel";
 import points from "@/store/order/points";
 import coupon from "@/store/order/coupon";
@@ -93,13 +94,8 @@ export default {
         // 电子优惠券:是否启用
         // 处理电子优惠券相关逻辑
         dispatch('couponRule',checkOutResponse);
-      }
-      // 其他数据收集
-      commit('setUsingTotalDiscount',checkOutResponse?.discountInfo?.usingTotalDiscount || 0);
-      if ( checkOutResponse?.parkingRecord?.hasOwnProperty('actualPayFee') ) {
-        commit('setActualPayFee',checkOutResponse.parkingRecord?.actualPayFee);
-      } else {
-        commit('setActualPayFee',checkOutResponse.parkingRecord?.totalFee);
+        // 通用逻辑
+        dispatch('commonRule',checkOutResponse);
       }
     },
     // 会员等级
@@ -113,6 +109,8 @@ export default {
     // 无牌车
     ...unlicensed,
     // 纸质优惠券
-    ...paperCoupon
+    ...paperCoupon,
+    // 通用功能
+    ...common
   },
 };