1、倒计时显示
<template #default="scope">
<span>{{container.leftTimes[scope.$index]}}</span>
</template>
<template #default="scope">
<span>{{container.offerTimes[scope.$index]}}</span>
</template>
// 请求接口的时候
const fnGetList = () =>{
const params = {
type:Number(container.activeName),
limit:1000,
page:1
}
countStore.getList(params).then(res=>{
if(res && res.code === 10000){
container.tableData = res.data.scrPurchase.list || []
startLeftTime(); // 倒计时
setInterval(startLeftTime, 1000); // 计时器
}else{
container.tableData = []
}
})
}
// 倒计时
const startLeftTime = () =>{
// 截至报名时间
container.leftTimes = container.tableData.map(item => {
item.signCloseTime = item.signCloseTime?new Date(item.signCloseTime).Format("yyyy-MM-dd hh:mm:ss"):'' // 截止报名时间
if(item.signCloseTime == ''){
return item.signCloseTime
}else if(item.signCloseTime!=''){
return leftTimer(item.signCloseTime);
}
});
//截至报价时间
container.offerTimes = container.tableData.map(item => {
item.offerCloseTime = item.offerCloseTime?new Date(item.offerCloseTime).Format("yyyy-MM-dd hh:mm:ss"):''// 截止报价时间
if(item.offerCloseTime == ''){
return item.offerCloseTime
}else{
return leftTimer(item.offerCloseTime);
}
});
}
//计算倒计时
const leftTimer = (endTime) => {
if(endTime){
let time = endTime.replace(/-/g, "/");
let leftTime = new Date(time) - new Date(); //计算剩余的毫秒数
let days = parseInt(leftTime / 1000 / 60 / 60 / 24, 10); //计算剩余的天数
let hours = parseInt((leftTime / 1000 / 60 / 60) % 24, 10); //计算剩余的小时
let minutes = parseInt((leftTime / 1000 / 60) % 60, 10); //计算剩余的分钟
let seconds = parseInt((leftTime / 1000) % 60, 10); //计算剩余的秒数
days = checkTime(days);
hours = checkTime(hours);
minutes = checkTime(minutes);
seconds = checkTime(seconds);
if (leftTime > 0) {
return `${days}天${hours}时${minutes}分钟${seconds}秒`;
} else {
return endTime;
}
}
}
const checkTime = (i) =>{
//将0-9的数字前面加上0,例1变为01
if (i < 10) {
i = "0" + i;
}
return i;
}