首页 > 其他分享 >js点击触发计时

js点击触发计时

时间:2023-08-04 21:44:05浏览次数:56  
标签:right .. script js 点击 mode 计时 date pm

<template>
  <div>
    <div style="background: white; height: 100%">
      <div class="up_css">
        <p>
        JMETER运行状态:
        <a-tag
          :color="this.jmeterStatus != true ? 'green' : 'grey'"
          style="font-size: 16px; cursor: pointer; "
        >
        
          {{ this.jmeterStatus != true ? "繁忙中~" : "空闲中~" }}
          <a-icon type="loading" v-if="!this.jmeterStatus" style="{ fontSize: '36px', color: '#08c' }"/>
        </a-tag>
        </p>

        <el-button
          v-if="button_status"
          type="primary"
          icon="el-icon-caret-right"
          style="width: 10%"
          @click="button_status_handle(1)"
          >执行</el-button
        >

        <el-button
          v-if="!button_status"
          type="primary"
          icon="el-icon-loading"
          style="width: 10%"
          @click="button_status_handle(0)"
          ><a-icon type="pause" />
        </el-button>

        <!-- 运行时间 -->
        <div
          id="runtime"
          style="
            border-style: outset;
            width: 170px;
            height: 80%;
            text-align: center;
            padding: 4px;
          "
        >
          0天 0小时 00分00秒
        </div>
        <!-- 错误数统计 -->
        <div><a-icon type="alert" style="color: red" /> 0</div>
        <!-- 压测模式按钮 -->
        <el-button type="primary" @click="pmMode()">压测模式</el-button>
      </div>
      <!-- 分割线 -->
      <div style="width: 100%; height: 1px; border-top: double"></div>
    </div>

    <div class="list">
      <left_script
        v-on:rightChange="rightChange($event)"
        style="padding: 0 20px 0px 0px; height: 200px"
        ref="leftScript"
      ></left_script>
      <right_script ref="right"></right_script>
      <pm_mode ref="pm_mode"></pm_mode>
    </div>
  </div>
</template>


<script>
import left_script from "../../scriptCommon/scriptManage/left/left_script";
import right_script from "../../scriptCommon/scriptManage/right/right_script";
import pm_mode from "../../scriptCommon/scriptManage/pm_mode";
import { per_get_JmeterStatus } from "../../../../../../api/index";

export default {
  components: {
    left_script,
    right_script,
    pm_mode,
  },
  //页面载入前执行
  mounted(){
this.timeid=setInterval(
  this.jmeterStatusMeter, 
  5000);
 },
//页面切换
 destroyed(){
   clearInterval(this.timeid)
 },


  data() {
    return {
      timeid:1,
      // jmeter空闲情况
      jmeterStatus: true,
      //用例执行状态
      button_status: true,
      //时间计算
      strDate: 0,
      runtimehandle: "",
    };
  },
  methods: {
    async  jmeterStatusMeter() {
    const { response } = await per_get_JmeterStatus("");
    this.jmeterStatus = response.available;
    this.$refs.leftScript.getget_plans();
    },

    //控制右侧列表接口展示
    rightChange(e) {
      // 传id给右边列表 发请求
      this.$refs.right.getRqList(e);
    },
    // 压测模式
    pmMode() {
      
      this.$refs.pm_mode.per_get_mode_msg();
      this.$refs.pm_mode.visible = true;
    },
    //顶部脚本执行与停止状态切换
    button_status_handle(e) {
      this.button_status = !this.button_status;
      if (e == 1) {
        this.runtime();
      } else {
        clearInterval(this.runtimehandle);
      }
    },
    //顶部运行时间计算
    runtime() {
      //获取当前的时间
      var date = new Date();
      var year = date.getFullYear(); //月份从0~11,所以加一
      let month = date.getMonth();
      var dateArr = [
        date.getMonth() + 1,
        date.getDate(),
        date.getHours(),
        date.getMinutes(),
        date.getSeconds(),
      ];
      //如果格式是MM则需要此步骤,如果是M格式则此循环注释掉
      for (var i = 0; i < dateArr.length; i++) {
        if (dateArr[i] >= 1 && dateArr[i] <= 9) {
          dateArr[i] = "0" + dateArr[i];
        }
      }
      var strDate =
        year +
        "/" +
        dateArr[0] +
        "/" +
        dateArr[1] +
        " " +
        dateArr[2] +
        ":" +
        dateArr[3] +
        ":" +
        dateArr[4];
      //此处可以拿外部的变量接收,也可直接返回  strDate:2022-05-01 13:25:30
      //this.date = strDate;
      console.log("strDate", strDate);
      this.strDate = strDate;

      // 开始时间
      var start = new Date(this.strDate).getTime();

      // 这个当页面被关 再进来时 有任务在跑 给他 任务的开始时间
      // var start=1689436800000

      this.runtimehandle = window.setInterval(function () {
        // 现在
        var now = new Date().getTime();
        // 运行总时间
        var run = now - start;
        // 总秒
        var sumSeconds = parseInt(run / 1000);
        // 天数
        var d = parseInt(sumSeconds / 86400);
        // 小时
        var h = parseInt((sumSeconds % 86400) / 3600);
        // 分钟
        var min = size(parseInt((sumSeconds / 60) % 60));
        // 秒
        var m = size(parseInt(sumSeconds % 60));
        // 插入
        document.querySelector("#runtime").innerHTML =
          "" + d + "天 " + h + "小时 " + min + "分" + m + "秒";
      }, 1000);
      // 小于10的数,前边增加一个0
      function size(d) {
        return d < 10 ? "0" + d : d;
      }
    },
  },

  
 
};
</script>



<style scoped>
.up_css {
  display: flex;
  flex-direction: "column";
  margin-bottom: 30px;
  height: 50px;
  padding-top: 9px;
  justify-content: space-around;
  align-items: baseline;
}
.list {
  display: flex;
  flex-direction: "column";
  margin-bottom: 30px;
  padding-top: 9px;
  justify-content: space-between;
  align-items: baseline;
  height: 900px;
}
</style>

标签:right,..,script,js,点击,mode,计时,date,pm
From: https://www.cnblogs.com/kaibindirver/p/17607100.html

相关文章

  • 国庆倒计时、无心上班?看这里。。。(建议收藏)
    计算机视觉研究院专栏作者:Edison_G“过了星期三,翻过一座山;到了星期五,再熬一下午!”。在大厂工作的一种心态,但是今天不同,再坚持一天,就是7天小长假,每个人都安耐不住了,但是,在你无心工作的时候,还是可以阅读今天的分享,干货满满!公众号ID|ComputerVisionGzq提前祝大家国庆节快乐!在长假之前,我......
  • js中将数字格式化成内存的形式
    constformatSize=(size)=>{if(size<1024){returnsize+"b";}elseif(size<1024*1024){return(size/1024).toFixed(2)+"KB";}elseif(size<1024*1024*1024){retur......
  • MySQL8.0 JSON相关函数(二) -更改JSON值
    (目录)本文涉及函数简介函数作用JSON_ARRAY_APPEND在数组后追加元素JSON_ARRAY_INSERT在JSON数据中的指定位置插入元素JSON_INSERT如果存在值,不操作,否则插入值JSON_REPLACE如果存在值,更新该值,否则不操作JSON_SET如果存在值,就更新,否则就插入JSON_REM......
  • 30 天精通 RxJS (03):Functional Programming 通用函式
    了解FunctionalProgramming的通用函式,能让我们写出更简洁的代码,也能帮助我们学习RxJS。读者可能会很好奇,我们的主题是RxJS为什么要特别讲FunctionalProgramming的通用函式呢?实际上,RxJS核心的Observable操作观念跟FP的阵列操作是极为相近的,只学会以下几个基本的......
  • Js中的Function和function
    Js中的Function和function起因最近收到一份渗透测试报告,里面指出了一个xss漏洞。在看报告的过程中,对于payload的生效有一些疑问。于是查询了一些js语法的相关内容,总结一下关于Funtion和funtion的相关知识。最后也列举一下目前常用的xss绕过技巧。生效载核:Function(atob`YWxlcn......
  • js Array方法
    JAVASCRIPT对象Array对象数组属性属性描述constructor返回创建数组对象的原型函数。length设置或返回数组元素的个数。prototype允许你向数组对象添加属性或方法。Array对象方法属性描述concat()连接两个或更多的数组,并返回结果。copyW......
  • js获取视频封面作为缩略图
      //获取视频封面作为缩略图:captureVideoImage(){letvideoArr=document.querySelectorAll('.swipe-video');let_this=this;for(leti=0;i<videoArr.length;i++){//loadeddata当当前帧的数据已加载,但没有足够的数据来播放......
  • js设置随机颜色
    varchars=['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'];functiongen......
  • 在线直播系统源码,js循环数组的方法合集
    在线直播系统源码,js循环数组的方法合集一、forEach循环注:没有return返回值,且不能用break跳出循环。 letarrlist=['123','456','789'];arrlist.forEach(function(value,index){  //value是每一项,index是索引  console.log(value,index);}); ​二、for循环......
  • jsp各部分编码的含义
    pageEncoding是jsp文件本身的编码,       第一阶段是jsp编译成.java,它会根据pageEncoding的设定读取jsp,(jsp文件的编码,pageEncoding是否一致),结果是由指定的编码方案翻译成统一的UTF-8JAVA源码(即.java),如果pageEncoding设定错了,或没有设定(在JSP标准的语法中,如果pageEncoding属......