index.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. import checkOutQHResponse from "@/api/mockData/checkout.sy1.response.json";
  2. import { checkOut,calculateDiscount,ordersAndPrepay,currentUnlicensedPlate,unlicensedCarCheckIn,unlicensedCarCheckout } from '@/api/parking';
  3. import state from "@/store/order/state";
  4. import mutations from "@/store/order/mutations";
  5. import memberLevel from "@/store/order/memberLevel";
  6. import points from "@/store/order/points";
  7. import coupon from "@/store/order/coupon";
  8. import consume from "@/store/order/consume";
  9. import unlicensed from "@/store/order/unlicensed";
  10. import paperCoupon from "@/store/order/paperCoupon";
  11. export default {
  12. //开启命名模块
  13. namespaced: true,
  14. state: state,
  15. mutations,
  16. actions: {
  17. /**
  18. * 车辆订单的缴费信息初始化
  19. * @param commit
  20. * @param dispatch
  21. * @param state
  22. * @param gateId 车场闸机口ID
  23. * @param vehicleNo 车牌号(包含临牌)
  24. * @param callback 回调函数,用于接口报错时,展示对应的信息
  25. * @param endlessLoop 用于判断当前用户是否扫码进入
  26. */
  27. async orderInit( {commit,dispatch,state},{gateId = '124p3LK1',vehicleNo = '浙A616A1',callback,endlessLoop} ) {
  28. try {
  29. commit('clearOrderInfo');
  30. const unlicensed = vehicleNo.indexOf('临') > -1 || !vehicleNo; // true: 临时车牌;false:普通车牌
  31. // const res = await checkOut('浙A616A1');
  32. // const res = await checkOut('闽AAQ5519', unlicensed);
  33. // const res = await checkOut('粤A51113');
  34. // const res = await checkOut('沪DCJ986');
  35. // console.log('无牌车扫码出场', endlessLoop);
  36. // 场内缴费,调 check-out 接口,
  37. const method = unlicensed && endlessLoop || !vehicleNo ? unlicensedCarCheckout : checkOut
  38. const res = await method(vehicleNo, unlicensed, gateId);
  39. // const res = checkOutQHResponse
  40. if ( res?.parkingRecord?.totalFee <= 0 ) {
  41. callback && callback({
  42. unlicensed,
  43. endlessLoop,
  44. code: endlessLoop,
  45. orderDetail: res,
  46. }); // 统一处理错误原因
  47. return
  48. }
  49. // console.log(vehicleNo, res);
  50. // 所有的优惠时间长转为金额
  51. // console.log(112,'所有的优惠时间长转为金额');
  52. // dispatch('orderInitRule', checkOutQHResponse);
  53. dispatch('orderInitRule',res);
  54. } catch ( error ) {
  55. // console.log('151151151151151',error);
  56. /* if (/NOT_FOUND|PARKING_RECORD_NOT_FOUND/.test(error.code)) {
  57. callback && callback(error)
  58. } */
  59. callback && callback(error); // 统一处理错误原因
  60. }
  61. },
  62. orderInitRule( {commit,dispatch,state},checkOutResponse ) {
  63. // console.log(119,checkOutResponse);
  64. // 记录buildingId
  65. if ( checkOutResponse?.parkInfo?.buildingId ) {
  66. window.localStorage.setItem('buildingId',checkOutResponse.parkInfo.buildingId);
  67. }
  68. commit('setParkMallCode', checkOutResponse.parkInfo.parkMallCode)
  69. commit('setOrderDetail',checkOutResponse);
  70. const isShowDiscounts = checkOutResponse?.parkingRule?.enableCoupon || false;
  71. // 纸质优惠券
  72. dispatch('paperCouponRule')
  73. // 是否展示优惠
  74. commit('setIsShowDiscounts',isShowDiscounts);
  75. if ( checkOutResponse.parkingRule ) {
  76. // 会员等级减免
  77. // 停车优惠(首停、会员减免、消费减免)
  78. dispatch('getCheckedTotal',checkOutResponse);
  79. // 是否开启新会员积分(hold)
  80. commit('setEnableNewMemberPoints',checkOutResponse.parkingRule.enableNewMemberPoints);
  81. // 积分减免
  82. dispatch('pointsRule',checkOutResponse);
  83. // dispatch('getIntegralDesc', checkOutResponse.parkingRule.enablePoints);
  84. // 电子优惠券:是否启用
  85. // 处理电子优惠券相关逻辑
  86. dispatch('couponRule',checkOutResponse);
  87. }
  88. // 其他数据收集
  89. commit('setUsingTotalDiscount',checkOutResponse?.discountInfo?.usingTotalDiscount || 0);
  90. if ( checkOutResponse?.parkingRecord?.hasOwnProperty('actualPayFee') ) {
  91. commit('setActualPayFee',checkOutResponse.parkingRecord?.actualPayFee);
  92. } else {
  93. commit('setActualPayFee',checkOutResponse.parkingRecord?.totalFeeInYuan);
  94. }
  95. },
  96. // 会员等级
  97. ...memberLevel,
  98. // 消费减免
  99. ...consume,
  100. // 积分
  101. ...points,
  102. // 电子券
  103. ...coupon,
  104. // 无牌车
  105. ...unlicensed,
  106. // 纸质优惠券
  107. ...paperCoupon
  108. },
  109. };