You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
2.2 KiB
91 lines
2.2 KiB
<template>
|
|
<view>
|
|
<lf-nav title="等待用户支付" :showIcon="true" bgColor="#fff"></lf-nav>
|
|
<view style="height: 50rpx;"></view>
|
|
<lf-nocontent src="/static/images/empty.png" text="等待用户支付…"></lf-nocontent>
|
|
<view class="lf-row-center" style="margin-top: -100rpx;">
|
|
<countdown-time minute="2" second="0" :showDay="false" :showHour="false" color="#FF9D9D" splitorColor="#FF9D9D"></countdown-time>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import countdownTime from '@/components/uni-countdown/uni-countdown.vue';
|
|
export default {
|
|
components: {
|
|
countdownTime
|
|
},
|
|
data(){
|
|
return {
|
|
user_id: 0,
|
|
amount: 0,
|
|
timer: null,
|
|
num: 5,
|
|
count: 0,
|
|
overtime: false
|
|
}
|
|
},
|
|
onLoad(options){
|
|
this.user_id = options.user_id;
|
|
this.amount = options.amount;
|
|
this.startTimer();
|
|
},
|
|
onUnload(){
|
|
if(this.timer){
|
|
clearInterval(this.timer);
|
|
this.timer = null;
|
|
}
|
|
},
|
|
methods: {
|
|
startTimer(){
|
|
if(this.timer){
|
|
clearInterval(this.timer);
|
|
this.timer = null;
|
|
}
|
|
this.count++;
|
|
let max_date = 60 * 2; // 两分钟
|
|
let current_date = this.count * 5; // 当前秒数
|
|
if(current_date >= max_date){
|
|
this.overtime = true;
|
|
}
|
|
this.checkOrderPay();
|
|
this.timer = setInterval(() => {
|
|
this.num--;
|
|
if(this.num <= 0){
|
|
clearInterval(this.timer);
|
|
this.timer = null;
|
|
this.num = 5;
|
|
this.startTimer();
|
|
}
|
|
}, 1000);
|
|
},
|
|
checkOrderPay(){
|
|
let token = this.$cookieStorage.get('store_token');
|
|
this.$http.get({
|
|
api: 'api/supplier/offline/check_order_pay',
|
|
data: {
|
|
user_id: this.user_id
|
|
},
|
|
header: {
|
|
token: token
|
|
}
|
|
}).then(res => {
|
|
if(this.$isRight(res.data.data) && res.data.data.status == 2){
|
|
let url = '/pages/business/payment/paystate';
|
|
url += '?payState=1';
|
|
url += '&amount='+ this.amount;
|
|
this.$url(url, {type: 'redirect'});
|
|
}else if(this.overtime || (res.data.data && res.data.data.status == 3)){
|
|
let url = '/pages/business/payment/paystate';
|
|
url += '?payState=0';
|
|
this.$url(url, {type: 'redirect'});
|
|
}
|
|
})
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped="scoped">
|
|
|
|
</style>
|