倒计时显示

172 阅读1分钟

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;
    }