src/views/visualization.vue
@@ -38,6 +38,11 @@
            @click="setUrl"
          ></span>
          <span
            class="font el-icon-s-tools set-title"
            style="float: right;margin-right: 6px"
            @click="openParamsConfigModal"
          ></span>
          <span
            style="float: right;margin-right:20px;font-size:28px;line-height:25px;"
            @click="taskClick"
          >
@@ -53,7 +58,7 @@
        >
        <template v-if="taskData">
          <div class="gong-date">
            工序运行时间:{{ getFormatTime(taskData.Procedure.startTime) }}
            工序运行时间:{{ getTaskRunningTime(taskData.Procedure.realStartTime,taskData.Procedure.realEndTime) }}
          </div>
          <div class="statelist">
            <span class="title-item"
@@ -593,6 +598,7 @@
      :listData="listData"
      @updateGet="updateGet"
    />
    <ParamsConfigModal :visible="paramsConfigIsShow" @close="closeParamsConfigModal"></ParamsConfigModal>
  </div>
</template>
@@ -616,8 +622,10 @@
import TaskControlModal from "@/components/TaskControlModal.vue";
import {channelNameConfig} from "@/common/constants";
import _ from 'lodash'
import ParamsConfigModal from "@/components/ParamsConfigModal.vue";
export default {
  components: {
    ParamsConfigModal,
    TaskControlModal,
    Card,
    Knowledge,
@@ -753,6 +761,7 @@
      resprocInfoTimer:null,
      channelNameConfig: channelNameConfig,
      index:null,
      paramsConfigIsShow:false
    };
  },
  mounted() {
@@ -902,7 +911,7 @@
              }
            }
            this.resResult[i]=res;
            console.log( this.resResult[i],'===res111')
            // console.log( this.resResult[i],'===res111')
          })
        }
      }
@@ -1058,23 +1067,55 @@
      let now = new Date();
      this.formatTime2 = this.getDateObj(now, "yyyy年MM月dd日");
    },
    getFormatTime(date){
      const getCha=()=>{
        let now=new Date().getTime()
        let String=now-date*1000;
        let seconds=Math.floor(String/1000)
        let minutes=Math.floor(seconds/60)
        let days=Math.floor(String/1000/60/60/24)
        let hours=Math.floor(minutes/60)-days*24
        let m=minutes-days*24*60-hours*60
        return days+'天'+hours+'时'+m+'分'
    /**
     * 计算时间段, 注意参数要求时间戳为 JS Date 的13位时间戳
     * @param {number} startTime
     * @param {number} endTime
     * @return {string}
     */
    calcRunningDuration(startTime,endTime){
      let timeDuration=endTime-startTime;
      if (timeDuration<0){
        return '0天0时0分'
      }
      let d= getCha()
      let seconds=Math.floor(timeDuration/1000)
      let minutes=Math.floor(seconds/60)
      let days=Math.floor(timeDuration/1000/60/60/24)
      let hours=Math.floor(minutes/60)-days*24
      let m=minutes-days*24*60-hours*60
      return `${days}天${hours}时${m}分`
    },
    /**
     * 工序运行时间
     * 根据接口返回 realStartTime realEndTime 判断如何展示
     * 如果 realEndTime 为 0 则 用当前时间 - realStartTime
     * 如果 存在 realEndTime, 则 realEndTime - realStartTime
     * 注意 realStartTime realEndTime 是接口返回的10位时间戳
     * @param realStartTime
     * @param realEndTime
     * @return {string}
     */
    getTaskRunningTime(realStartTime,realEndTime){
      const getInfo = ()=>{
        if (!realStartTime && !realEndTime){
          return '--'
        }
        if(!realEndTime){
          const now = Math.floor(new Date().getTime()/1000) * 1000
          return this.calcRunningDuration(realStartTime*1000,now)
        }
        return this.calcRunningDuration(realStartTime*1000,realEndTime*1000)
      }
      let result = getInfo()
      setInterval(() => {
       d= getCha();
        result = getInfo();
      }, 6000);
      return date?d:'--';
      return result;
    },
    setInterCard(value, name, i) {
      if (this.TasksCopy[i].Procedure.procedure[value]!=null) {
@@ -1300,10 +1341,8 @@
    getProgressInfo() {
      this.resprocInfoTimer=null
      for (let i in this.TasksCopy){
        if(this.TasksCopy[i].Procedure.ID){
          getProgress({
            channel: Number(i),
            procedureId: this.TasksCopy[i].Procedure.ID,
          }).then((res) => {
            if (res.code == 200) {
              this.TasksCopy[i].finishNumber = res.data?.finishNumber ?? 0;
@@ -1313,7 +1352,6 @@
            }
            this.resprocInfoTimer=res;
          });
        }
      }
    },
    // 设置
@@ -1326,6 +1364,12 @@
        path: "/set",
      });
    },
    openParamsConfigModal(){
      this.paramsConfigIsShow=true
    },
    closeParamsConfigModal(){
      this.paramsConfigIsShow=false
    },
    // 右侧控制
    controlClick() {
      if (this.Tasks.length > 0) {