【类 型】:feat

【原  因】:
【过  程】:收银台 订单超时功能 并在超时之后跳转到首页
【影  响】:

# 类型 包含:
# feat:新功能(feature)
# fix:修补bug
# docs:文档(documentation)
# style: 格式(不影响代码运行的变动)
# refactor:重构(即不是新增功能,也不是修改bug的代码变动)
# test:增加测试
# chore:构建过程或辅助工具的变动
This commit is contained in:
sszdot 2024-12-13 16:09:42 +08:00
parent 02e1daa419
commit 002e507aaa
2 changed files with 37 additions and 10 deletions

View File

@ -188,7 +188,7 @@
//
uni.navigateTo({
url: `/pages/shop/pay?order_sn=${res.data.order_sn}&fullPrice=${fullPrice}`
});
})
} else if (res.data.status === -1) {
uni.removeStorage({ //
key: 'userInfo',

View File

@ -10,7 +10,10 @@
<view class="flex column msb bodyBox">
<view>
<view class="priceBox fb flex mc">¥{{fullPrice | formatPrice}}</view>
<view class="fcb fz24 flex mc">支付剩余时间 {{ countdown }}</view>
<view class="fcb fz24 flex mc">
<span class="m-r-24">支付剩余时间</span>
<span v-if="order_time!==0">{{ countdown }}</span>
</view>
<view class="flex msb mac rad8 bg-w m-l-24 m-r-24 m-t-24 p-24">
<view class="flex mac">
<u--image src="/static/icons/wxPayLogo.svg" width="75rpx" height="60rpx" />
@ -30,7 +33,8 @@
<script>
import {
formatPrice
formatPrice,
formatSeconds
} from '@/utils/index.js'
export default {
@ -47,8 +51,28 @@
this.$store.dispatch('fetchOrderList')
this.order_sn = options.order_sn //
this.fullPrice = Number(options.fullPrice) //
setInterval(() => {
this.countdown = Date.now() / 1000;
//
this.timer = setInterval(() => {
if (this.order_time && this.order_time > 0) {
let tempTime = this.order_time + 100 - Math.floor(Date.now() / 1000)
if (tempTime <= 0) {
this.countdown = '00:00'
clearInterval(this.timer) //
//
uni.navigateTo({
url: '/pages/index/index' // Tab
})
} else {
this.countdown = this.formatSeconds(tempTime)
}
} else {
this.countdown = '00:00'
clearInterval(this.timer) //
// order_time
uni.switchTab({
url: '/pages/index/index' //
})
}
}, 1000)
},
computed: {
@ -67,12 +91,16 @@
watch: {
'orderShow': {
handler(newVal, oldVal) {
if (newVal) {
this.order_time = Number(newVal.order_time)
}
},
deep: true // true
deep: true
}
},
methods: {
// 00:00
formatSeconds,
//
pay() {
uni.$u.http.post('/Api/Pay/pay', {
@ -125,7 +153,7 @@
},
destroyed() {
//
// this.clearInterval()
clearInterval(this.timer) //
}
}
</script>
@ -142,6 +170,5 @@
.bodyBox {
height: calc(100vh - 176rpx);
;
}
</style>