|
@@ -5,6 +5,10 @@ import { checkOut, calculateDiscount, ordersAndPrepay, currentUnlicensedPlate, u
|
|
|
// import checkOutQHResponse from '@/api/mockData/checkout.qh6.response.json'
|
|
|
// import unlicensedCarCheckInResponse from '@/api/mockData/unlicensedCarCheckIn.qh.response.json';
|
|
|
|
|
|
+/*
|
|
|
+([a-z]*):(.*),
|
|
|
+state.$1 =$2;
|
|
|
+ */
|
|
|
// 大于等于停车费
|
|
|
// 微服务接口字段
|
|
|
const state = {
|
|
@@ -130,6 +134,40 @@ const mutations = {
|
|
|
setUnlicensedCar(state, payload) {
|
|
|
state.unlicensedCar = payload;
|
|
|
},
|
|
|
+ // 订单初始化
|
|
|
+ clearOrderInfo(state) {
|
|
|
+ state.orderDetail = {}; // 订单原始数据
|
|
|
+ state.isShowDiscounts = false; // 是否展示会员登记优惠
|
|
|
+ state.discountDesc = ''; // 停车优惠(首停、会员减免、消费减免)
|
|
|
+ state.checkedTotal = 0; // 选中count数
|
|
|
+ state.enableNewMemberPoints = false; // 是否开启新会员积分
|
|
|
+ state.enablePoints = false; // 是否开启积分减免
|
|
|
+ state.usePoints = 0; // 用户已选择的积分
|
|
|
+ state.isFirst = 0; // 判断用户是否首次进入
|
|
|
+ state.integralDesc = ''; // 积分减免说明文案
|
|
|
+ state.pointsPerHour = 0; // 每小时兑换积分
|
|
|
+ state.enableCoupon = false; // 电子优惠券是否启用
|
|
|
+ state.maxOneDayCoupons = 0; // 单日可选优惠券上限
|
|
|
+ state.coupons = []; // 可选优惠券数量
|
|
|
+ state.couponCount = 0; // 已选择优惠券
|
|
|
+ state.couponDesc = ''; // 优惠券说明文案
|
|
|
+ state.enablePaperCoupons = false; // 启动纸质优惠券
|
|
|
+ state.usingTotalDiscount = 0; // 优惠金额
|
|
|
+ state.actualPayFee = 0; // 应付金额
|
|
|
+ state.availableDiscountFee = 0; // 当日剩余可使用优惠金额
|
|
|
+ // 积分相关
|
|
|
+ state.available = 0; // 用户可用积分
|
|
|
+ state.maxPointsTime = ''; // 积分最大兑换时长
|
|
|
+ state.pointsTime = ''; // 已兑换的积分时间
|
|
|
+ state.unitAmount = 0;
|
|
|
+ // 停车优惠:会员等级和消费减免
|
|
|
+ state.memberLevelDiscount = false; // 是否开启会员等级
|
|
|
+ state.enableConsume = false; // 是否开启消费减免
|
|
|
+ state.pointsPerUnit = 0; //
|
|
|
+ // unlicensed: false // true: 临时车牌;false:普通车牌
|
|
|
+ // 无牌车逻辑
|
|
|
+ state.unlicensedCar = '';
|
|
|
+ }
|
|
|
};
|
|
|
|
|
|
const actions = {
|
|
@@ -141,32 +179,32 @@ const actions = {
|
|
|
* @param {*} param1.callback 回调函数,用于接口报错时,展示对应的信息
|
|
|
* @param {*} param1.endlessLoop 用于判断当前用户是否扫码进入
|
|
|
*/
|
|
|
- async orderInit({ commit, dispatch, state }, { gateId='124p3LK1', vehicleNo = '浙A616A1', callback, endlessLoop }) {
|
|
|
+ async orderInit({ commit, dispatch, state }, { gateId = '124p3LK1', vehicleNo = '浙A616A1', callback, endlessLoop }) {
|
|
|
try {
|
|
|
- dispatch('clearOrderInfo');
|
|
|
- const unlicensed = vehicleNo.indexOf('临') > -1; // 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 || !vehicleNo ? unlicensedCarCheckout : checkOut
|
|
|
- const res = await method(vehicleNo, false, gateId);
|
|
|
- if ( res?.parkingRecord?.totalFee <= 0) {
|
|
|
- callback && callback({
|
|
|
- unlicensed,
|
|
|
- endlessLoop,
|
|
|
- code: endlessLoop,
|
|
|
- orderDetail: res,
|
|
|
- }); // 统一处理错误原因
|
|
|
- return
|
|
|
- }
|
|
|
- // console.log(vehicleNo, res);
|
|
|
- // 所有的优惠时间长转为金额
|
|
|
- console.log(112, '所有的优惠时间长转为金额');
|
|
|
- // dispatch('orderInitRule', checkOutQHResponse);
|
|
|
- dispatch('orderInitRule', res);
|
|
|
+ commit('clearOrderInfo');
|
|
|
+ const unlicensed = vehicleNo.indexOf('临') > -1; // 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 || !vehicleNo ? unlicensedCarCheckout : checkOut
|
|
|
+ const res = await method(vehicleNo, false, gateId);
|
|
|
+ if (res?.parkingRecord?.totalFee <= 0) {
|
|
|
+ callback && callback({
|
|
|
+ unlicensed,
|
|
|
+ endlessLoop,
|
|
|
+ code: endlessLoop,
|
|
|
+ orderDetail: res,
|
|
|
+ }); // 统一处理错误原因
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // console.log(vehicleNo, res);
|
|
|
+ // 所有的优惠时间长转为金额
|
|
|
+ console.log(112, '所有的优惠时间长转为金额');
|
|
|
+ // dispatch('orderInitRule', checkOutQHResponse);
|
|
|
+ dispatch('orderInitRule', res);
|
|
|
} catch (error) {
|
|
|
console.log('151151151151151', error);
|
|
|
/* if (/NOT_FOUND|PARKING_RECORD_NOT_FOUND/.test(error.code)) {
|
|
@@ -179,13 +217,13 @@ const actions = {
|
|
|
console.log(119, checkOutResponse);
|
|
|
// 记录buildingId
|
|
|
if (checkOutResponse?.parkInfo?.buildingId) {
|
|
|
- window.localStorage.setItem('buildingId', checkOutResponse.parkInfo.buildingId);
|
|
|
+ window.localStorage.setItem('buildingId', checkOutResponse.parkInfo.buildingId);
|
|
|
}
|
|
|
commit('setOrderDetail', checkOutResponse);
|
|
|
const isShowDiscounts = checkOutResponse?.parkingRule?.enableCoupon || false;
|
|
|
// 是否展示优惠
|
|
|
commit('setIsShowDiscounts', isShowDiscounts);
|
|
|
- if(checkOutResponse.parkingRule) {
|
|
|
+ if (checkOutResponse.parkingRule) {
|
|
|
// 会员等级减免
|
|
|
// 停车优惠(首停、会员减免、消费减免)
|
|
|
dispatch('getCheckedTotal', checkOutResponse);
|
|
@@ -346,7 +384,7 @@ const actions = {
|
|
|
if (available > -1) {
|
|
|
// 如果是深圳车场
|
|
|
commit('setAvailable', available);
|
|
|
- commit('setPointsTime', pointsTime);
|
|
|
+ commit('setPointsTime', pointsTime);
|
|
|
}
|
|
|
}
|
|
|
if (type === 'minus' && state.pointsTime > 0) {
|
|
@@ -516,7 +554,7 @@ const actions = {
|
|
|
console.log('无牌车的查询记录', res);
|
|
|
commit('setUnlicensedCar', res.vehicleNo);
|
|
|
// 如果是扫码进入的用户,在出场时需要重新扫码,这时会在此处传入的一个回调函数,在获取到临牌时,返回给 qrCodesRule 函数
|
|
|
- if(res.vehicleNo && callback) {
|
|
|
+ if (res.vehicleNo && callback) {
|
|
|
callback(res.vehicleNo);
|
|
|
} else {
|
|
|
callback('error');
|
|
@@ -535,49 +573,13 @@ const actions = {
|
|
|
/*
|
|
|
如果积分发生变化
|
|
|
*/
|
|
|
- // 订单初始化
|
|
|
- clearOrderInfo({ state }) {
|
|
|
- state = {
|
|
|
- // 微服务接口字段
|
|
|
- orderDetail: {}, // 订单原始数据
|
|
|
- isShowDiscounts: false, // 是否展示会员登记优惠
|
|
|
- discountDesc: '', // 停车优惠(首停、会员减免、消费减免)
|
|
|
- checkedTotal: 0, // 选中count数
|
|
|
- enableNewMemberPoints: false, // 是否开启新会员积分
|
|
|
- enablePoints: false, // 是否开启积分减免
|
|
|
- usePoints: 0, // 用户已选择的积分
|
|
|
- isFirst: 0, // 判断用户是否首次进入
|
|
|
- integralDesc: '', // 积分减免说明文案
|
|
|
- pointsPerHour: 0, // 每小时兑换积分
|
|
|
- enableCoupon: false, // 电子优惠券是否启用
|
|
|
- maxOneDayCoupons: 0, // 单日可选优惠券上限
|
|
|
- coupons: [], // 可选优惠券数量
|
|
|
- couponCount: 0, // 已选择优惠券
|
|
|
- couponDesc: '', // 优惠券说明文案
|
|
|
- enablePaperCoupons: false, // 启动纸质优惠券
|
|
|
- usingTotalDiscount: 0, // 优惠金额
|
|
|
- actualPayFee: 0, // 应付金额
|
|
|
- availableDiscountFee: 0, // 当日剩余可使用优惠金额
|
|
|
- // 积分相关
|
|
|
- available: 0, // 用户可用积分
|
|
|
- maxPointsTime: '', // 积分最大兑换时长
|
|
|
- pointsTime: '', // 已兑换的积分时间
|
|
|
- unitAmount: 0,
|
|
|
- // 停车优惠:会员等级和消费减免
|
|
|
- memberLevelDiscount: false, // 是否开启会员等级
|
|
|
- enableConsume: false, // 是否开启消费减免
|
|
|
- pointsPerUnit: 0, //
|
|
|
- // unlicensed: false // true: 临时车牌;false:普通车牌
|
|
|
- // 无牌车逻辑
|
|
|
- unlicensedCar: '',
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
};
|
|
|
|
|
|
export default {
|
|
|
//开启命名模块
|
|
|
namespaced: true,
|
|
|
- state,
|
|
|
+ state: state,
|
|
|
mutations,
|
|
|
actions,
|
|
|
};
|