From a4ea10b61135956b23a0a44ddd4620c6ee9b9c02 Mon Sep 17 00:00:00 2001 From: xuxueyang <xuxy@fengyuntec.com> Date: 星期二, 13 八月 2024 16:10:24 +0800 Subject: [PATCH] update 倒计时 --- pages/order/order.vue | 50 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 46 insertions(+), 4 deletions(-) diff --git a/pages/order/order.vue b/pages/order/order.vue index 388b2d4..ee974fb 100644 --- a/pages/order/order.vue +++ b/pages/order/order.vue @@ -1,11 +1,13 @@ <script> export default { + data() { return { type: 'customer', query: { status: '', }, + timer: undefined, status: [{ name: '全部', value: '' @@ -37,10 +39,50 @@ ] }; }, - onLoad(options) { + onUnload() { + this.timer && clearTimeout(this.timer) + }, + async onLoad(options) { this.query.status = options.status || '' this.listApi = `/api/customer/order/list` - this.getList() + await this.getList() + this.timer = setInterval(() => { + //倒计时 + var nowdate = new Date().getTime() - 1000 * 60 * 5 + var change = false + for (var item of this.list) { + if (item.statusBackend === 'PENDING') { + //计算倒计时 + var diff = new Date(item.createTime).getTime() - nowdate + // console.log('diff', diff, item) + if (diff <= 2000 && true) { + //超过了5分钟 + item.statusBackend = 'CANCEL' + item.statusBackend = '已取消' + item.status = 'CANCEL' + item.statusStr = '已取消' + + item.bctime = '' + change = true + + } else { + //相差 + var alltime = parseInt(diff / 1000) + var tt = 0 + if (alltime > 60) { + tt = alltime - parseInt(alltime / 60) * 60 + } else { + tt = alltime + } + item.bctime = `0${parseInt(alltime / 60)}:${tt<10?'0':''}${tt}` + change = true + + } + } + } + if (change) + this.$forceUpdate() + }, 1000) }, onReachBottom() { this.getMore() @@ -277,7 +319,7 @@ <view class="value">{{ dto.deliveryName }}</view> </view> </view> - + <view class="desc flex" v-if="dto.statusBackend!=='PENDING'&&dto.statusBackend!=='CANCEL'"> <view class="label"> 支付时间: @@ -340,7 +382,7 @@ <view class="button button-0 m-l-a m-r-15" v-if="dto.statusBackend==='PENDING'" @click="buttonClick(dto,'cancelOrder')">取消订单</view> <view class="button button-1 m-l-15 m-r-15" v-if="dto.statusBackend==='PENDING'" - @click="buttonClick(dto,'payAgain')">重新支付</view> + @click="buttonClick(dto,'payAgain')">重新支付<span v-if="dto.bctime">({{dto.bctime}})</span></view> <view class="button button-0 m-l-a m-r-15" @click="buttonClick(dto,'refund')" v-if="dto.couldRefund"> -- Gitblit v1.9.3