|
@@ -1,77 +1,90 @@
|
|
|
|
+<!-- 道闸无牌车出场 -->
|
|
<template>
|
|
<template>
|
|
- <!-- 地磁 -->
|
|
|
|
- <view class="parking-lock">
|
|
|
|
- <!-- 地磁支付 -->
|
|
|
|
|
|
+ <view class="park-export">
|
|
<template v-if="infoData">
|
|
<template v-if="infoData">
|
|
- <view class="parking-lock-pay">
|
|
|
|
- <view class="parking-lock-title">支付停车费</view>
|
|
|
|
- <view class="parking-lock-tips">请您确认停车费用,确认后请支付费用,结束停车。谢谢您的使用!</view>
|
|
|
|
- <view class="parking-lock-info">
|
|
|
|
- <view class="parking-lock-info-item">
|
|
|
|
- <view>车牌号</view>
|
|
|
|
- <view class="weight vehicle-no">{{ infoData.vehicleNo }}</view>
|
|
|
|
|
|
+ <template v-if="infoData.needCode">
|
|
|
|
+ <view class="park-export-number">
|
|
|
|
+ <view class="park-export-number-icon">
|
|
|
|
+ <u-image width="100%" height="100%" src="/static/img/no-found-enter-info.png" />
|
|
</view>
|
|
</view>
|
|
- <view class="parking-lock-info-item">
|
|
|
|
- <view>停车场名称</view>
|
|
|
|
- <view class="weight">{{ infoData.parkingName }}</view>
|
|
|
|
|
|
+ <view class="park-export-number-text"> 查询不到入场信息 </view>
|
|
|
|
+ <view class="park-export-number-error" v-if="isInputError">输入错误,请重新输入</view>
|
|
|
|
+ <view class="park-export-number-input">
|
|
|
|
+ <u-message-input :maxlength="6" :value="codeNum" inactive-color="#008CFF" @finish="codeInputFinish" />
|
|
</view>
|
|
</view>
|
|
- <view class="parking-lock-info-item">
|
|
|
|
- <view>入场车道</view>
|
|
|
|
- <view class="weight">{{ infoData.entranceName }}</view>
|
|
|
|
|
|
+ <view class="park-export-number-tips">
|
|
|
|
+ 提示:未查询到该微信/支付宝扫码入场的信息,<text>请输入车辆扫码入场时页面中的6位数进行结算出场。</text>
|
|
</view>
|
|
</view>
|
|
- <view class="parking-lock-info-item">
|
|
|
|
- <view>入场时间</view>
|
|
|
|
- <view class="weight">{{ infoData.inTime }}</view>
|
|
|
|
|
|
+ <view class="park-export-number-btn">
|
|
|
|
+ <u-button type="primary" shape="circle" :disabled="codeNum.length === 0" @click="codeInputFinishConfirm">确 定</u-button>
|
|
</view>
|
|
</view>
|
|
- <view class="parking-lock-info-item">
|
|
|
|
- <view>出场车道</view>
|
|
|
|
- <view class="weight">{{ infoData.outEntranceName }}</view>
|
|
|
|
- </view>
|
|
|
|
- <view class="parking-lock-info-item">
|
|
|
|
- <view>出场时间</view>
|
|
|
|
- <view class="weight">{{ infoData.outTime }}</view>
|
|
|
|
- </view>
|
|
|
|
- <!-- <view class="parking-lock-info-item">
|
|
|
|
- <view>通道名称</view>
|
|
|
|
- <view class="weight">{{infoData.roadwayName}}</view>
|
|
|
|
- </view> -->
|
|
|
|
- <view class="parking-lock-info-item">
|
|
|
|
- <view>免费时长</view>
|
|
|
|
- <view class="weight">{{ infoData.freeDuration || `0天0时${free_time}分0秒` }}</view>
|
|
|
|
- </view>
|
|
|
|
- <view class="parking-lock-info-item">
|
|
|
|
- <view class="weight">计费时长</view>
|
|
|
|
- <view class="weight">{{ infoData.calcDuration }}</view>
|
|
|
|
- </view>
|
|
|
|
- <view class="parking-lock-info-item">
|
|
|
|
- <view>累计停车时长</view>
|
|
|
|
- <view class="weight">{{ infoData.duration }}</view>
|
|
|
|
- </view>
|
|
|
|
- <view class="parking-lock-info-item">
|
|
|
|
- <view>应收金额</view>
|
|
|
|
- <view class="weight">{{ infoData.totalAmount }}元</view>
|
|
|
|
|
|
+ </view>
|
|
|
|
+ </template>
|
|
|
|
+ <template v-else>
|
|
|
|
+ <view class="park-export-order">
|
|
|
|
+ <view class="park-export-order-title">支付停车费</view>
|
|
|
|
+ <view class="park-export-order-tips">请您确认停车费用,确认后请支付费用,结束停车。谢谢您的使用!</view>
|
|
|
|
+ <view class="park-export-order-info">
|
|
|
|
+ <view class="park-export-order-info-item">
|
|
|
|
+ <view>车牌号</view>
|
|
|
|
+ <view class="vehicle-no">{{ infoData.vehicleNo }}</view>
|
|
|
|
+ </view>
|
|
|
|
+ <view class="park-export-order-info-item">
|
|
|
|
+ <view>停车场名称</view>
|
|
|
|
+ <view class="weight">{{ infoData.parkingName }}</view>
|
|
|
|
+ </view>
|
|
|
|
+ <view class="park-export-order-info-item">
|
|
|
|
+ <view>入场车道</view>
|
|
|
|
+ <view class="weight">{{ infoData.entranceName }}</view>
|
|
|
|
+ </view>
|
|
|
|
+ <view class="park-export-order-info-item">
|
|
|
|
+ <view>入场时间</view>
|
|
|
|
+ <view class="weight">{{ infoData.inTime }}</view>
|
|
|
|
+ </view>
|
|
|
|
+ <view class="park-export-order-info-item">
|
|
|
|
+ <view>出场车道</view>
|
|
|
|
+ <view class="weight">{{ infoData.outEntranceName }}</view>
|
|
|
|
+ </view>
|
|
|
|
+ <view class="park-export-order-info-item">
|
|
|
|
+ <view>出场时间</view>
|
|
|
|
+ <view class="weight">{{ infoData.outTime }}</view>
|
|
|
|
+ </view>
|
|
|
|
+ <view class="park-export-order-info-item">
|
|
|
|
+ <view>免费时长</view>
|
|
|
|
+ <view class="weight">{{ infoData.freeDuration || `0天0时${free_time}分0秒` }}</view>
|
|
|
|
+ </view>
|
|
|
|
+ <view class="park-export-order-info-item">
|
|
|
|
+ <view class="weight">计费时长</view>
|
|
|
|
+ <view class="weight">{{ infoData.calcDuration }}</view>
|
|
|
|
+ </view>
|
|
|
|
+ <view class="park-export-order-info-item">
|
|
|
|
+ <view>累计停车时长</view>
|
|
|
|
+ <view class="weight">{{ infoData.duration }}</view>
|
|
|
|
+ </view>
|
|
|
|
+ <view class="park-export-order-info-item">
|
|
|
|
+ <view>应收金额</view>
|
|
|
|
+ <view class="weight">{{ infoData.totalAmount || 0 }}元</view>
|
|
|
|
+ </view>
|
|
|
|
+ <view class="park-export-order-info-item">
|
|
|
|
+ <view>订单编号</view>
|
|
|
|
+ <view class="weight">{{ infoData.id }}</view>
|
|
|
|
+ </view>
|
|
</view>
|
|
</view>
|
|
- <view class="parking-lock-info-item">
|
|
|
|
- <view>订单编号</view>
|
|
|
|
- <view class="weight">{{ infoData.id }}</view>
|
|
|
|
|
|
+ <view class="park-export-order-btn">
|
|
|
|
+ <u-button type="primary" shape="circle" v-if="isPay" @click="onEntraceClick">支付出场</u-button>
|
|
|
|
+ <u-button type="primary" shape="circle" v-else @click="jumpHome">支付成功,返回首页</u-button>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
- <view class="parking-lock-pay-btn">
|
|
|
|
- <button type="default" v-if="isPay" @click="onEntraceClick">支付出场</button>
|
|
|
|
- <button type="default" v-else @click="jumpHome('/pages/index/index')">支付成功,返回首页</button>
|
|
|
|
- </view>
|
|
|
|
- </view>
|
|
|
|
|
|
+ </template>
|
|
</template>
|
|
</template>
|
|
<template v-else>
|
|
<template v-else>
|
|
- <view class="parking-lock-info">
|
|
|
|
- <view class="parking-lock-info-item-1">
|
|
|
|
- <view>{{ tipTxt }}</view>
|
|
|
|
- </view>
|
|
|
|
|
|
+ <view class="park-export-order-info">
|
|
|
|
+ <text>{{ tipTxt }}</text>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
</template>
|
|
<!-- 支付方式 -->
|
|
<!-- 支付方式 -->
|
|
<ChoosePayment
|
|
<ChoosePayment
|
|
- v-if="choosePayment"
|
|
|
|
|
|
+ v-if="choosePayment"
|
|
ref="choosePayment"
|
|
ref="choosePayment"
|
|
:payWayPop="payWayPop"
|
|
:payWayPop="payWayPop"
|
|
:curOrderList="orderList"
|
|
:curOrderList="orderList"
|
|
@@ -100,16 +113,20 @@ export default {
|
|
parkNo: '',
|
|
parkNo: '',
|
|
roadwayNo: '',
|
|
roadwayNo: '',
|
|
polyOrderId: '',
|
|
polyOrderId: '',
|
|
- isBack: 0,
|
|
|
|
|
|
+ isBack: 0
|
|
},
|
|
},
|
|
payWayPop: false, // 支付弹框
|
|
payWayPop: false, // 支付弹框
|
|
- infoData: undefined, // 订单信息
|
|
|
|
|
|
+ infoData: {
|
|
|
|
+ needCode: true
|
|
|
|
+ }, // 订单信息
|
|
orderList: [], // 支付订单列表
|
|
orderList: [], // 支付订单列表
|
|
jumpUrl: location.href + '&isBack=1', // 回调地址
|
|
jumpUrl: location.href + '&isBack=1', // 回调地址
|
|
timer: null, // 轮询
|
|
timer: null, // 轮询
|
|
isPay: false, // 支付按钮显示
|
|
isPay: false, // 支付按钮显示
|
|
- choosePayment: false,
|
|
|
|
- tipTxt: '出口无车辆'
|
|
|
|
|
|
+ choosePayment: false,
|
|
|
|
+ tipTxt: '出口无车辆',
|
|
|
|
+ codeNum: '',
|
|
|
|
+ isInputError: false
|
|
};
|
|
};
|
|
},
|
|
},
|
|
onLoad(page) {
|
|
onLoad(page) {
|
|
@@ -137,7 +154,7 @@ export default {
|
|
* 立即支付
|
|
* 立即支付
|
|
*/
|
|
*/
|
|
onEntraceClick() {
|
|
onEntraceClick() {
|
|
- this.choosePayment = true;
|
|
|
|
|
|
+ this.choosePayment = true;
|
|
this.$nextTick(() => {
|
|
this.$nextTick(() => {
|
|
this.$refs['choosePayment'].openPopup({ ...this.infoData }, 'single', 'parking');
|
|
this.$refs['choosePayment'].openPopup({ ...this.infoData }, 'single', 'parking');
|
|
});
|
|
});
|
|
@@ -180,14 +197,15 @@ export default {
|
|
* @param { String } parkNo 停车场编号
|
|
* @param { String } parkNo 停车场编号
|
|
* @param { String } roadwayNo 出口编号
|
|
* @param { String } roadwayNo 出口编号
|
|
*/
|
|
*/
|
|
- getOrderDetails(parkNo, roadwayNo) {
|
|
|
|
|
|
+ getOrderDetails(parkNo, roadwayNo, codeNum) {
|
|
uni.showLoading({
|
|
uni.showLoading({
|
|
title: '订单查询中...'
|
|
title: '订单查询中...'
|
|
});
|
|
});
|
|
this.$u.api
|
|
this.$u.api
|
|
.getDetailExportApi({
|
|
.getDetailExportApi({
|
|
parkNo,
|
|
parkNo,
|
|
- roadwayNo
|
|
|
|
|
|
+ roadwayNo,
|
|
|
|
+ codeNum
|
|
})
|
|
})
|
|
.then((res) => {
|
|
.then((res) => {
|
|
if (res.code === 200) {
|
|
if (res.code === 200) {
|
|
@@ -198,16 +216,11 @@ export default {
|
|
} else {
|
|
} else {
|
|
this.isPay = false;
|
|
this.isPay = false;
|
|
}
|
|
}
|
|
- } else {
|
|
|
|
- this.$refs.uToast.show({
|
|
|
|
- title: res.msg || '订单无数据',
|
|
|
|
- type: 'error'
|
|
|
|
- });
|
|
|
|
}
|
|
}
|
|
uni.hideLoading();
|
|
uni.hideLoading();
|
|
})
|
|
})
|
|
.catch((err) => {
|
|
.catch((err) => {
|
|
- this.tipTxt = err?.msg ?? '出口无车辆'
|
|
|
|
|
|
+ this.tipTxt = err?.msg ?? '出口无车辆';
|
|
uni.hideLoading();
|
|
uni.hideLoading();
|
|
});
|
|
});
|
|
},
|
|
},
|
|
@@ -217,10 +230,28 @@ export default {
|
|
closePaymentMethod() {
|
|
closePaymentMethod() {
|
|
this.choosePayment = false;
|
|
this.choosePayment = false;
|
|
},
|
|
},
|
|
- jumpHome(url) {
|
|
|
|
|
|
+ /**
|
|
|
|
+ * @description: 返回首页
|
|
|
|
+ * @param {*} url
|
|
|
|
+ * @return {*}
|
|
|
|
+ */
|
|
|
|
+ jumpHome() {
|
|
uni.switchTab({
|
|
uni.switchTab({
|
|
- url: url
|
|
|
|
|
|
+ url: '/pages/index/index'
|
|
});
|
|
});
|
|
|
|
+ },
|
|
|
|
+ /**
|
|
|
|
+ * @description: 验证码输入完成
|
|
|
|
+ * @param {*} code
|
|
|
|
+ * @return {*}
|
|
|
|
+ */
|
|
|
|
+ codeInputFinish(code) {
|
|
|
|
+ this.codeNum = code;
|
|
|
|
+ this.codeInputFinishConfirm();
|
|
|
|
+ },
|
|
|
|
+ codeInputFinishConfirm() {
|
|
|
|
+ this.isInputError = this.codeNum.length !== 6;
|
|
|
|
+ this.getOrderDetails(this.intoInfo.parkNo, this.intoInfo.roadwayNo, this.codeNum);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
};
|