vue 时间倒数回调

export function timeCountDown(date, callback = () => {}){
    var time = '';
    const formatNumber = (n)=>{
      n = n.toString();
      return n[1] ? n : '0' + n;
    };
    const setTime = ()=>{
      const leftTime = new Date(date.replace(/\-/g, '/')) - new Date();
      if (leftTime >= 0) {
        const d = Math.floor(leftTime / 1000 / 60 / 60 / 24),
            h = Math.floor(leftTime / 1000 / 60 / 60 % 24),
            m = Math.floor(leftTime / 1000 / 60 % 60),
            s = Math.floor(leftTime / 1000 % 60);
        time = `${ d > 0 ? d + '天' : '' }${ [h, m, s].map(formatNumber).join(':') }`;
        callback(time, () => clearInterval(timer));
        if(!store.getters.geisindate) {
          store.dispatch('ge/setindate', true)
        }
        console.log(time)
      } else {
        time = '已超时'
        callback(time, () => clearInterval(timer));
        if(store.getters.geisindate) {
          store.dispatch('ge/setindate', false)
          // 超时整个刷新
          // window.location.reload()
          // 超时整个刷新
        }
        console.log(time)
        // // 超时后处理 不用手动刷新
        // if(store.getters.geuser.hasOwnProperty('sso') && store.getters.gevotelist.length > 0) {
        //   // 放在一起
        //   // 正规投票
        //   getCurrentUserOperation({mainCode: store.getters.geuserround}).then(res => {
        //     // 如果操作记录为空 代表新一轮开始
        //     if(res.votingsList.length == 0) {
        //       store.dispatch('ge/setvotinglist', res.votingsList).then(() => {
        //         // console.log(store.getters.gevotelist)
        //       })
        //       getRemainingVotes().then(res => {
        //         store.dispatch('ge/setvotecont', res.remainingVotes).then(() => {
        //           // console.log(store.getters.gevotecount)
        //         })
        //       })
        //     }
        //   })
        // }
        return
      }
    };
    const timer = setInterval(() => {
      setTime()
    }, 1e3);
  }

 调用

timeCountDown(date) {
    //  const date = "2020-09-02 16:34:00"
       timeCountDown(date, (value,clear)=>{
           this.remiantime = value;
           this.$once('hook:beforeDestroy', clear);
        })
    },

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值