123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- import checkOutQHResponse from "@/api/mockData/checkout.pd17.response.json";
- import { checkOut,calculateDiscount,ordersAndPrepay,currentUnlicensedPlate,unlicensedCarCheckIn,unlicensedCarCheckout } from '@/api/parking';
- import state from "@/store/order/state";
- import mutations from "@/store/order/mutations";
- import memberLevel from "@/store/order/memberLevel";
- import points from "@/store/order/points";
- import coupon from "@/store/order/coupon";
- import consume from "@/store/order/consume";
- import unlicensed from "@/store/order/unlicensed";
- import paperCoupon from "@/store/order/paperCoupon";
- export default {
- //开启命名模块
- namespaced: true,
- state: state,
- mutations,
- actions: {
- /**
- * 车辆订单的缴费信息初始化
- * @param commit
- * @param dispatch
- * @param state
- * @param gateId 车场闸机口ID
- * @param vehicleNo 车牌号(包含临牌)
- * @param callback 回调函数,用于接口报错时,展示对应的信息
- * @param endlessLoop 用于判断当前用户是否扫码进入
- */
- async orderInit( {commit,dispatch,state},{gateId = '',vehicleNo = '',callback,endlessLoop, enquiryFarePolling} ) {
- try {
- commit('clearOrderInfo');
- const unlicensed = vehicleNo.indexOf('临') > -1 || !vehicleNo; // true: 临时车牌;false:普通车牌
- // const res = await checkOut('浙A616A1');
- // const res = await checkOut('闽AAQ5519', unlicensed);
- // const res = await checkOut('粤A51113');
- // const res = await checkOut('沪DCJ986');
- // console.log('无牌车扫码出场', endlessLoop);
- // 场内缴费,调 check-out 接口,
- const method = unlicensed && endlessLoop && gateId || !vehicleNo ? unlicensedCarCheckout : checkOut
- const res = await method(vehicleNo, unlicensed, gateId);
- // const res = checkOutQHResponse
- if ( res?.parkingRecord?.totalFee <= 0 ) {
- callback && callback({
- unlicensed,
- endlessLoop,
- code: endlessLoop,
- orderDetail: res,
- }); // 统一处理错误原因
- return
- }
- enquiryFarePolling && enquiryFarePolling()
- // console.log(vehicleNo, res);
- // 所有的优惠时间长转为金额
- // console.log(112,'所有的优惠时间长转为金额');
- // dispatch('orderInitRule', checkOutQHResponse);
- dispatch('orderInitRule',{
- ...res,
- unlicensed: unlicensed && endlessLoop && gateId || !vehicleNo ? true : false
- });
- } catch ( error ) {
- // console.log('151151151151151',error);
- /* if (/NOT_FOUND|PARKING_RECORD_NOT_FOUND/.test(error.code)) {
- callback && callback(error)
- } */
- callback && callback(error); // 统一处理错误原因
- }
- },
- orderInitRule( {commit,dispatch,state},checkOutResponse ) {
- // console.log(119,checkOutResponse);
- // 记录buildingId
- if ( checkOutResponse?.parkInfo?.buildingId ) {
- window.localStorage.setItem('buildingId',checkOutResponse.parkInfo.buildingId);
- }
- commit('setParkMallCode', checkOutResponse.parkInfo.parkMallCode)
- commit('setOrderDetail',checkOutResponse);
- const isShowDiscounts = checkOutResponse?.parkingRule?.enableCoupon || false;
- // 纸质优惠券
- dispatch('paperCouponRule', checkOutResponse)
- // 是否展示优惠
- commit('setIsShowDiscounts',isShowDiscounts);
- if ( checkOutResponse.parkingRule ) {
- // 会员等级减免
- // 停车优惠(首停、会员减免、消费减免)
- dispatch('getCheckedTotal',checkOutResponse);
- // 是否开启新会员积分(hold)
- commit('setEnableNewMemberPoints',checkOutResponse.parkingRule.enableNewMemberPoints);
- // 积分减免
- dispatch('pointsRule',checkOutResponse);
- // dispatch('getIntegralDesc', checkOutResponse.parkingRule.enablePoints);
- // 电子优惠券:是否启用
- // 处理电子优惠券相关逻辑
- dispatch('couponRule',checkOutResponse);
- }
- // 其他数据收集
- commit('setUsingTotalDiscount',checkOutResponse?.discountInfo?.usingTotalDiscount || 0);
- if ( checkOutResponse?.parkingRecord?.hasOwnProperty('actualPayFee') ) {
- commit('setActualPayFee',checkOutResponse.parkingRecord?.actualPayFee);
- } else {
- commit('setActualPayFee',checkOutResponse.parkingRecord?.totalFeeInYuan);
- }
- },
- // 会员等级
- ...memberLevel,
- // 消费减免
- ...consume,
- // 积分
- ...points,
- // 电子券
- ...coupon,
- // 无牌车
- ...unlicensed,
- // 纸质优惠券
- ...paperCoupon
- },
- };
|