longyvfengyun
2022-03-17 5f5163661a8a765e22f3703a5f1da1f663f2cd52
内容提交
2个文件已修改
2个文件已添加
263 ■■■■■ 已修改文件
src/assets/js/config.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataTest/dialogs/autoCheck/checkItem.vue 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataTest/dialogs/autoCheck/index.vue 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataTest/realTime.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/config.js
@@ -54,7 +54,7 @@
    messageCode: {
        label: '短信验证码',
        des: '登录是否启用短信验证码',
        value: true,
        value: false,
    },
    autoExit: {
        label: "自动退出",
@@ -64,6 +64,6 @@
    logCap: {
        label: "审计容量",
        des: "显示审计容量的健康度",
        value: true
        value: false
    }
};
src/pages/dataTest/dialogs/autoCheck/checkItem.vue
New file
@@ -0,0 +1,111 @@
<template>
  <div class="check-item" :class="stateClass.state">
    <div class="check-status">
      <i class="el-icon" :class="stateClass.icon"></i>
    </div>
    <div class="check-text">
      {{ text }}
    </div>
  </div>
</template>
<script>
export default {
  name: "checkItem",
  props: {
    state: {
      type: Number,
      default: 0
    },
    text: {
      type: String,
      default: ""
    },
  },
  data() {
    return {}
  },
  computed: {
    stateClass() {
      let state = this.state;
      let rsClass = {
        state: "",
        icon: "",
      };
      // 0-未开始自检 1-正在自检 2-自检成功 3-自检失败
      switch (state) {
        case 0:
          rsClass.state = "no-start";
          rsClass.icon = "el-icon-lock";
          break;
        case 1:
          rsClass.state = "on-checking";
          rsClass.icon = "el-icon-loading";
          break;
        case 2:
          rsClass.state = "success-check";
          rsClass.icon = "el-icon-check";
          break;
        case 3:
          rsClass.state = "error-check";
          rsClass.icon = "el-icon-close";
          break;
      }
      return rsClass;
    }
  }
}
</script>
<style scoped>
.check-item {
  padding: 8px 0;
}
.check-status {
  display: inline-block;
  border-radius: 50%;
  width: 20px;
  height: 20px;
  border: 2px solid #838383;
  vertical-align: middle;
  margin-right: 8px;
  text-align: center;
  padding: 2px;
}
.check-status .el-icon {
  font-size: 16px;
  font-weight: bold;
}
.check-text {
  vertical-align: middle;
  display: inline-block;
  font-weight: bold;
}
.check-item.no-start {
  color: #909399;
}
.check-item.no-start .check-status{
  border-color: #909399;
}
.check-item.on-checking {
  color: #409EFF;
}
.check-item.on-checking .check-status{
  border-color: #409EFF;
}
.check-item.success-check {
  color: #67C23A;
}
.check-item.success-check .check-status{
  border-color: #67C23A;
}
.check-item.error-check {
  color: #F56C6C;
}
.check-item.error-check .check-status{
  border-color: #F56C6C;
}
</style>
src/pages/dataTest/dialogs/autoCheck/index.vue
New file
@@ -0,0 +1,134 @@
<template>
  <div class="auto-check">
    <check-item
      v-for="(item, key) in list" :key="'key'+key"
      :state="item.state"
      :text="item.text"></check-item>
    <div class="auto-check-footer">
      <el-button v-if="isCanRetest" type="primary" size="mini" @click="reAutoCheck">重新自检</el-button>
      <el-button type="success" size="mini" :disabled="!isCanTest">启动测试</el-button>
    </div>
  </div>
</template>
<script>
import CheckItem from "@/pages/dataTest/dialogs/autoCheck/checkItem";
export default {
  name: "autoCheck",
  components: {CheckItem},
  data() {
    return {
      list: [
        {
          state: 0,
          text: "蓄电池远程核容装置无告警"
        },
        {
          state: 0,
          text: "蓄电池组无告警"
        },
        {
          state: 0,
          text: "蓄电池组均处于浮充状态"
        },
        {
          state: 0,
          text: "母联电动开关模块无告警"
        },
        {
          state: 0,
          text: "充电机直流输入无异常、无过欠压告警"
        },
      ],
    }
  },
  methods: {
    init() {
      for(let i=0; i<this.list.length; i++) {
        this.list[i].state = 0;
      }
    },
    checkStep1() {
      this.list[0].state = 1;
      setTimeout(()=>{
        this.list[0].state = 2;
        this.checkStep2();
      }, 1000);
    },
    checkStep2() {
      this.list[1].state = 1;
      setTimeout(()=>{
        this.list[1].state = 2;
        this.checkStep3();
      }, 1000);
    },
    checkStep3() {
      this.list[2].state = 1;
      setTimeout(()=>{
        this.list[2].state = 2;
        this.checkStep4();
      }, 1000);
    },
    checkStep4() {
      this.list[3].state = 1;
      setTimeout(()=>{
        this.list[3].state = 2;
        this.checkStep5();
      }, 1000);
    },
    checkStep5() {
      this.list[4].state = 1;
      setTimeout(()=>{
        this.list[4].state = 2;
      }, 1000);
    },
    reAutoCheck() {
      this.init();
      this.$nextTick(()=>{
        this.checkStep1();
      });
    }
  },
  computed: {
    isCanRetest() {
      let rs = true;
      let list = this.list;
      for(let i=0; i<list.length; i++) {
        let item = list[i];
        if(item.state == 0 || item.state==1) {
          rs = false;
          break;
        }
      }
      return rs;
    },
    isCanTest() {
      let rs = true;
      let list = this.list;
      for(let i=0; i<list.length; i++) {
        let item = list[i];
        if(item.state != 2) {
          rs = false;
          break;
        }
      }
      return rs;
    }
  },
  mounted() {
    this.checkStep1();
  }
}
</script>
<style scoped>
.auto-check {
  min-width: 400px;
  padding: 16px;
  background-color: #FFFFFF;
}
.auto-check-footer {
  padding-top: 16px;
  text-align: right;
}
</style>
src/pages/dataTest/realTime.vue
@@ -844,6 +844,17 @@
        :batt="batt"
      ></work-plan>
    </el-dialog>
    <!-- 平台自检 -->
    <el-dialog
      title="平台自检"
      width="auto"
      :visible.sync="autoCheck"
      :close-on-click-modal="false"
      top="0"
      class="dialog-center"
      :modal-append-to-body="false">
      <auto-check></auto-check>
    </el-dialog>
    <right-menu
      :visible.sync="rightMenu.show"
      :x="rightMenu.x"
@@ -929,12 +940,14 @@
import workPlan from "@/pages/dataTest/dialogs/dcdc/workPlan";
import ElePriceTpl from "@/pages/dataTest/components/elePriceTpl";
import BmsInfo from "@/pages/dataTest/components/bmsInfo";
import AutoCheck from "@/pages/dataTest/dialogs/autoCheck";
/* import moment from "moment"; */
let vol, resChart, temp, conduct, currChart, leakVol, monConnRes;
let tblData = [];
export default {
  components: {
    AutoCheck,
    stopOutlineCuring,
    BmsInfo,
    ElePriceTpl,
@@ -994,6 +1007,7 @@
    let lastCapacityTest = const_61850.lastCapacityTest;
    let pageConfig = this.$store.getters["user/realTabsConfig"];
    return {
      autoCheck:false,
      workPlanDialog: false,
      dcdcWorkDialog: false,
      balanceControlDialog: false,