参数面板控件设置5分钟循环倒计时

我这个报表是设置了5分钟刷新一次,现在需求是要在参数面板上设置一个5分钟循环倒计时器,例如5:00,4:59~~一直到0:00再重新5:00开始倒计,一直循环,请问JS应该如何写呢,控件用的是标签控件。

444.png

luoqu 发布于 2020-9-9 15:20
1min目标场景问卷 立即参与
回答问题
悬赏:14 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
RunawayLv2见习互助
发布于2020-9-9 16:20(编辑于 2020-9-9 16:23)

WorkBook27.cpt

image.pngimage.png添加初始化事件image.png

setTimeout(function(){

const countDown = (second) => {

  const s = second % 60;

  const m = Math.floor(second / 60);

  return m+":"+(s<10?'0'+s:s);

};


let time = 5 * 60;

const timer = setInterval(() => {

  const show = countDown(time--);

  $('div[widgetname=LABEL0]').find('.fr-label').html(show)

  if(time < 0) {

    console.log('倒计时结束!重新开始');

    time=5*60;

  }


}, 1000);

},0) 

  把这段代码放进去 看下效果

最佳回答
0
snrtuemcLv8专家互助
发布于2020-9-9 15:24

JS实现为控件添加倒计时功能-https://help.finereport.com/doc-view-1993.html

JS实现倒计时特效-https://help.finereport.com/doc-view-3048.html


最佳回答
0
熊猫头Lv6初级互助
发布于2020-9-9 15:37(编辑于 2020-9-9 16:00)

    let maxtime = 5 * 60;

    function CountDown() {

      if (maxtime >= 0) {

        min = Math.floor(maxtime / 60);

        sec = Math.floor(maxtime % 60);


        msg = `${min}:${sec}`;

        console.log(msg);

        document.querySelector("h2").innerHTML = msg;

        --maxtime;

      } else {

        clearInterval(time);

      }

      if (maxtime == 0) {

        maxtime = 5 * 60;

        time;

      }

    }

    let time = setInterval("CountDown()", 10);


  • 5关注人数
  • 827浏览人数
  • 最后回答于:2020-9-9 16:23
    请选择关闭问题的原因
    确定 取消
    返回顶部