![](https://i-blog.csdnimg.cn/blog_migrate/1ab2e3adfae98d490f50d7293e6813a5.gif)
<template v-slot:status="{ data }">
<span :style="{ color: data.status == '6' ? '#91D28B' : '#e6757d' }">{{
$transDictName(DictEnum.AFTER_SALE_STATUS, data.status)
}}</span>
<div v-if="data.status == '8' && data.updateTime && data.time" style="color: #e6757d">
倒计时:{{ timeFormat(data) }} {{ data.updateTimeStr }}
</div>
</template>
// 请求数据
const nowTime = new Date().getTime()
const getData = () => {
tableLoading.value = true
queryParam.size = pagination.size
getPostsale(pagination.current, queryParam)
.then((res) => {
res.data.list.map((item) => {
// 是否显示倒计时 超过48小时则不显示 item.updateTime为客服介入的时间
item.time = Date.parse(item.updateTime) + 48 * 60 * 60 * 1000 - nowTime > 0 ? true : false
})
data.value = res.data.list
pagination.total = res.data.total
Loading()
})
.catch(() => {
Loading()
})
}
getData()
const toHHmmss = (data: any) => {
let s
//注意改成48
let hours = parseInt(((data % (1000 * 60 * 60 * 48)) / (1000 * 60 * 60)).toString())
let minutes = parseInt(((data % (1000 * 60 * 60)) / (1000 * 60)).toString())
let seconds = parseInt(((data % (1000 * 60)) / 1000).toString())
s =
(hours < 10 ? '0' + hours : hours) +
'h:' +
(minutes < 10 ? '0' + minutes : minutes) +
'm:' +
(seconds < 10 ? '0' + seconds : seconds) +
's'
return s
}
const setTimeoutXX = (data: any, successTime: any) => {
setTimeout(() => {
data.updateTimeStr = toHHmmss(successTime)
successTime -= 1000
if (successTime > 0) {
setTimeoutXX(data, successTime)
}
}, 1000)
}
// 倒计时时间转换
const timeFormat = (data: PostsaleItem) => {
if (data.updateTime && !data.updateTimeStr && data.time) {
// 客服介入的时间
const kTime = Date.parse(data.updateTime)
let successTime = kTime + 48 * 60 * 60 * 1000 - nowTime
setTimeoutXX(data, successTime)
}
}