whychdw
2021-01-18 cc12d58f9b7f5ab10b7c47f412508d99a143615e
提交内容
2个文件已添加
18个文件已修改
2029 ■■■■■ 已修改文件
public/theme/science-black.css 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/theme/science-blue.css 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/css/common.css 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/apis/dischargeTest/bts9611.js 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/apis/dischargeTest/index.js 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/const/const_devType.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/tools/regEquipType.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/CalendarTime.vue 193 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/FlexBox.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/chart/CirclePieChart.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/chart/LineChart.vue 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/params/DischargeDialogContent.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/params/ResTest9611.vue 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataMager/components/AnalogTabPane.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataMager/components/ChargerStatusTabPane.vue 94 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataMager/components/HdwLight.vue 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataMager/components/IsolatingDeviceTabPane.vue 1391 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataMager/js/Circle.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataTest/CircuitDiagram.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataTest/realTime.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/theme/science-black.css
@@ -393,7 +393,12 @@
.el-science-blue .el-table--striped .el-table__body tr.el-table__row--striped td {
    background-color: #153953;
}
.el-science-blue .el-table--striped.table-stripe-odd .el-table__body tr.el-table__row td {
    background-color: #0D4260;
}
.el-science-blue .el-table--striped.table-stripe-odd .el-table__body tr.el-table__row--striped td {
    background-color: #00253F;
}
.el-science-blue .el-table th>.cell {
    font-weight: bold;
}
@@ -441,9 +446,16 @@
    border-color: #6bed6b;
    background-color: #6bed6b;
}
.el-science-blue .el-table.border-table .el-table__body-wrapper{
    box-sizing: border-box;
    border-left: 1Px solid #00fefe;
    border-right: 1Px solid #00fefe;
    border-bottom: 1Px solid #00fefe;
    border-top: 1Px solid #00fefe;
}
.el-science-blue .el-table .table-list-name {
    color: #00fefe;
    border-right: 1px solid #00fefe;
    border-right: 1Px solid #00fefe;
}
.el-science-blue .el-table .table-list-name.white-color {
    color: #fff;
@@ -1034,7 +1046,7 @@
/* flex-box */
.flex-box {
    box-sizing: border-box;
    background-color: #153953;
    background-color: #0B3550;
}
.flex-box-header {
    background-image: url("./img/science-black/chart-wrapper-title-bg.png");
@@ -1047,4 +1059,18 @@
.flex-page-wrapper-border {
    border: 1px solid #20A3B9;
}
.chart-wrapper:before,
.chart-wrapper:after,
.chart-wrapper-corner{
    width: 16px;
    height: 16px;
}
.border-full {
    border: 1Px solid #00fefe;
}
.border-right {
    border-right: 1Px solid #00fefe;
}
public/theme/science-blue.css
@@ -442,6 +442,13 @@
    border-color: #6bed6b;
    background-color: #6bed6b;
}
.el-science-blue .el-table.border-table .el-table__body-wrapper{
    box-sizing: border-box;
    border-left: 1Px solid #00fefe;
    border-right: 1Px solid #00fefe;
    border-bottom: 1Px solid #00fefe;
    border-top: 1Px solid #00fefe;
}
.el-science-blue .el-table .table-list-name {
    color: #00fefe;
    border-right: 1px solid #00fefe;
@@ -855,4 +862,11 @@
.chart-wrapper-corner{
    width: 16px;
    height: 16px;
}
.border-full {
    border: 1Px solid #00fefe;
}
.border-right {
    border-right: 1Px solid #00fefe;
}
src/assets/css/common.css
@@ -9,6 +9,15 @@
.w80 {
    width: 80px;
}
.w240 {
    width: 240px;
}
.w260 {
    width: 260px;
}
.w280 {
    width: 260px;
}
.w300 {
    width: 300px;
}
@@ -40,8 +49,17 @@
.h30-percent {
    height: 30%;
}
.h33-percent {
    height: 33%;
}
.h40-percent {
    height: 40%;
}
.h50-percent {
    height: 50%;
}
.h60-percent {
    height: 60%;
}
.full-height {
    height: 100%;
@@ -64,6 +82,40 @@
}
.padding0808 {
    padding: 0 8px 0 8px;
}
.padding816816 {
    padding: 8px 16px 8px 16px;
}
.padding8161616 {
    padding: 8px 16px 16px 16px;
}
.padding16161616 {
    padding: 16px 16px 16px 16px;
}
.padding0800 {
    padding: 0 8px 0 0;
}
.padding16040 {
    padding: 16px 0 4px 0;
}
.padding16000 {
    padding: 16px 0 0 0;
}
.padding016016 {
    padding: 0 16px 0 16px;
}
/*margin*/
.mgr8 {
    margin-left: 8px;
}
.mgr16 {
    margin-left: 16px;
}
.mgb8 {
    margin-bottom: 8px;
}
.mgt16 {
    margin-top: 16px;
}
/* */
.overflow-y {
@@ -268,6 +320,9 @@
    height: 12px;
    box-shadow: none;
}
.hdw-light-text {
}
@keyframes errorLight {
    0% {
src/assets/js/apis/dischargeTest/bts9611.js
New file
@@ -0,0 +1,28 @@
import axios from "axios";
export default {
    /**
     * 启动测试
     * @param data 启动命令
     * @returns {AxiosPromise}
     */
    start(data) {
        return axios({
            method: 'post',
            url: 'Fbs9600_stateAction_action_update',
            data: 'json='+JSON.stringify(data),
        });
    },
    /**
     * 停止测试
     * @param data 停止命令
     * @returns {AxiosPromise}
     */
    stop(data) {
        return axios({
            method: 'post',
            url: 'Fbs9100_setparamAction_action_serchbyDev_id',
            data: 'json='+JSON.stringify(data),
        });
    }
}
src/assets/js/apis/dischargeTest/index.js
@@ -1,7 +1,9 @@
import e61850 from './e61850'
import bts from './bts'
import bts9611 from "@/assets/js/apis/dischargeTest/bts9611";
export default {
    e61850,
    bts
    bts,
    bts9611,
};
src/assets/js/const/const_devType.js
@@ -23,6 +23,10 @@
        {
            value: 9605,
            label: "9605BTS"
        },
        {
            value: 9611,
            label: "9600显示屏"
        }
    ],
    power: [
src/assets/js/tools/regEquipType.js
@@ -16,6 +16,7 @@
        BTSSreen: /^9611/,
        equip4016:/^4016/,
        BTS9605: /^9605/,
        BTS9611: /^9611/,
        power: /^110/,
        isolating: /^111/,
        charger: /^112/,
src/components/CalendarTime.vue
@@ -1,124 +1,137 @@
<template>
  <div class="time-wrapper" :class="{'mini-size':size=='mini'}">
    <div class="time-icon"><i class="iconfont el-icon-1rili_huaban12"></i></div>
    <time-number
        v-for="(item,key) in timerVals.year"
        :key="key+year"
        :value="item"></time-number>
    <span class="time-text">年</span>
    <time-number
        v-for="(item,key) in timerVals.month"
        :key="key+month"
        :value="item"></time-number>
    <span class="time-text">月</span>
    <time-number
        v-for="(item,key) in timerVals.day"
        :key="key+day"
        :value="item">></time-number>
    <span class="time-text">日</span>
    <span class="time-division"></span>
    <time-number
        v-for="(item,key) in timerVals.hour"
        :key="key+hour"
        :value="item"></time-number>
    <span class="time-text">时</span>
    <time-number
        v-for="(item,key) in timerVals.minute"
        :key="key+minute"
        :value="item"></time-number>
    <span class="time-text">分</span>
    <time-number
        v-for="(item,key) in timerVals.second"
        :key="key+second"
        :value="item"></time-number>
    <span class="time-text">秒</span>
  </div>
    <div class="time-wrapper" :class="{'mini-size':size=='mini'}">
        <div class="time-icon"><i class="iconfont el-icon-1rili_huaban12"></i></div>
        <time-number
            v-for="(item,key) in timerVals.year"
            :key="key+year"
            :value="item"></time-number>
        <span class="time-text">年</span>
        <time-number
            v-for="(item,key) in timerVals.month"
            :key="key+month"
            :value="item"></time-number>
        <span class="time-text">月</span>
        <time-number
            v-for="(item,key) in timerVals.day"
            :key="key+day"
            :value="item">>
        </time-number>
        <span class="time-text">日</span>
        <template v-if="newline">
            <br>
            <br>
            <span class="time-newline-division"></span>
        </template>
        <span class="time-division" v-else></span>
        <time-number
            v-for="(item,key) in timerVals.hour"
            :key="key+hour"
            :value="item"></time-number>
        <span class="time-text">时</span>
        <time-number
            v-for="(item,key) in timerVals.minute"
            :key="key+minute"
            :value="item"></time-number>
        <span class="time-text">分</span>
        <time-number
            v-for="(item,key) in timerVals.second"
            :key="key+second"
            :value="item"></time-number>
        <span class="time-text">秒</span>
    </div>
</template>
<script>
import TimeNumber from "@/pages/dataMager/components/TimeNumber";
export default {
  name: "CalendarTime",
  components: {
    TimeNumber
  },
  props: {
    date: {
      type: String,
      default: "2021-01-01 00:00:00"
    name: "CalendarTime",
    components: {
        TimeNumber
    },
    size: {
      type: String,
      default: ""
    props: {
        date: {
            type: String,
            default: "2021-01-01 00:00:00"
        },
        size: {
            type: String,
            default: ""
        },
        newline: {
            type: Boolean,
            default: false
        }
    },
    data() {
        return {
            year: "year",
            month: 'month',
            day: "day",
            hour: "hour",
            minute: "minute",
            second: "second"
        }
    },
    computed: {
        timerVals() {
            let sTimer = new Date(this.date).format("yyyy-MM-dd hh:mm:ss");
            let aTimer = sTimer.split(" ");
            let dates = aTimer[0].split("-");
            let times = aTimer[1].split(":");
            return {
                year: dates[0].split(""),
                month: dates[1].split(""),
                day: dates[2].split(""),
                hour: times[0].split(""),
                minute: times[1].split(""),
                second: times[2].split("")
            }
        }
    }
  },
  data() {
    return {
      year: "year",
      month: 'month',
      day: "day",
      hour: "hour",
      minute: "minute",
      second: "second"
    }
  },
  computed: {
    timerVals() {
      let sTimer = new Date(this.date).format("yyyy-MM-dd hh:mm:ss");
      let aTimer = sTimer.split(" ");
      let dates = aTimer[0].split("-");
      let times = aTimer[1].split(":");
      return {
        year: dates[0].split(""),
        month: dates[1].split(""),
        day: dates[2].split(""),
        hour: times[0].split(""),
        minute: times[1].split(""),
        second: times[2].split("")
      }
    }
  }
}
</script>
<style scoped>
.time-wrapper {
  white-space: nowrap;
    white-space: nowrap;
}
.time-icon {
  display: inline-block;
  padding: 12px;
  background-color: #00feff;
  border-radius: 50%;
  margin-right: 8px;
  vertical-align: top;
    display: inline-block;
    padding: 12px;
    background-color: #00feff;
    border-radius: 50%;
    margin-right: 8px;
    vertical-align: top;
}
.time-icon i {
  font-size: 46px;
  color: #041F6C;
    font-size: 46px;
    color: #041F6C;
}
.time-division {
  margin-left: 32px;
    margin-left: 32px;
}
.time-text {
  font-size: 14px;
  color: #00fefe;
  margin-left: 8px;
  vertical-align: middle;
    font-size: 14px;
    color: #00fefe;
    margin-left: 8px;
    vertical-align: middle;
}
.time-newline-division {
    margin-left: 78px;
}
/* mini-size */
.mini-size .time-icon {
  padding: 8px 8px 8px 8px;
  margin-right: 4px;
    padding: 8px 8px 8px 8px;
    margin-right: 4px;
}
.mini-size .time-icon i {
  font-size: 24px;
    font-size: 24px;
}
</style>
src/components/FlexBox.vue
@@ -4,7 +4,7 @@
        <div class="flex-box-border border-top-right"></div>
        <div class="flex-box-border border-bottom-left"></div>
        <div class="flex-box-border border-bottom-right"></div>
        <div class="flex-box-header" v-if="!noHeader">
        <div class="flex-box-header" v-if="!noHeader" :class="{'no-header-bg':noHeaderBg}">
            <i class="iconfont el-icon-fold"></i>
            <span class="header-text">{{title}}</span>
        </div>
@@ -79,6 +79,10 @@
        color: #00fefe;
        font-weight: bold;
    }
    .flex-box-header.no-header-bg {
        background: none;
        padding: 8px 0;
    }
    .flex-box-header .iconfont {
        font-size: 10px;
        margin-right: 8px;
@@ -92,5 +96,6 @@
        position: relative;
        flex: 1;
        overflow: hidden;
        box-sizing: border-box;
    }
</style>
src/components/chart/CirclePieChart.vue
@@ -55,7 +55,7 @@
        },
        resColor: {
            type: String,
            default: "#6f7cad"
            default: "#2C5774"
        },
        fontColor: {
            type: String,
@@ -64,7 +64,11 @@
        name: {
          type: String,
          default: ""
        }
        },
        full: {
            type: Boolean,
            default: false
        },
    },
    watch: {
      value() {
@@ -93,6 +97,7 @@
            let color = this.color;
            let resColor = this.resColor;
            let title = this.getTitle();
            let full = this.full?['80%', '100%']:["50%", "66%"];
            let option = {
                animation: false,
                title: title,
@@ -103,7 +108,7 @@
                    name: 'circle',
                    type: 'pie',
                    clockWise: true,
                    radius: ['50%', '66%'],
                    radius: full,
                    itemStyle: {
                        normal: {
                            label: {
src/components/chart/LineChart.vue
@@ -56,7 +56,7 @@
                tooltip: this.getTooltip(opt),
                grid: {
                    left: '1%',
                    right: '1%',
                    right: '5%',
                    bottom: '2%',
                    containLabel: true
                },
@@ -95,6 +95,7 @@
            return opt.title;
        },
        getTooltip(opt) { // 配置标题
            let unit = this.unit;
            // 未配置标题
            if (!opt || !opt.tooltip) {
                return {
@@ -103,15 +104,15 @@
                        type: 'line' // 默认为直线,可选为:'line' | 'shadow'
                    },
                    appendToBody: true,
                    // formatter(params) {
                    //     var res = params[0].name + '<br/>';
                    //     params.forEach(item => {
                    //         res += item.marker;
                    //         res += item.seriesName;
                    //         res += ' : ' + item.data[1] + unit + '</br>';
                    //     });
                    //     return res;
                    // }
                    formatter(params) {
                        let res = params[0].name + '<br/>';
                        params.forEach(item => {
                            res += item.marker;
                            res += item.seriesName;
                            res += ' : ' + item.data[1] + unit + '</br>';
                        });
                        return res;
                    }
                };
            }
src/components/params/DischargeDialogContent.vue
@@ -8,6 +8,9 @@
        <res-test
        v-else-if="reg9605"
        :batt="batt"></res-test>
        <res-test9611
        v-else-if="reg9611"
        :batt="batt"></res-test9611>
        <div v-else class="kfz">
            <img src="../../assets/images/kfz.png">
        </div>
@@ -18,6 +21,7 @@
import DischargeParams61850 from './61850/DischargeParams'
import BtsDischargeParams from './BTS/DischargeParams'
import ResTest from "@/components/params/ResTest";
import ResTest9611 from "@/components/params/ResTest9611";
import {
    regEquipType
} from '../../assets/js/tools'
@@ -25,7 +29,8 @@
    components: {
        DischargeParams61850,
        BtsDischargeParams,
        ResTest
        ResTest,
        ResTest9611
    },
    props: {
        batt: {
@@ -43,7 +48,10 @@
            return regEquipType(this.batt.FBSDeviceId, ["BTS", "BTS9110", "BTS9120"]);
        },
        reg9605() {
          return regEquipType(this.batt.FBSDeviceId, "BTS9605");
          return regEquipType(this.batt.FBSDeviceId, ["BTS9605"]);
        },
        reg9611() {
          return regEquipType(this.batt.FBSDeviceId, ["BTS9611"]);
        },
    }
}
src/components/params/ResTest9611.vue
New file
@@ -0,0 +1,94 @@
<template>
  <el-form
      ref="ruleForm"
      size="mini"
      label-position="top"
      :model="params"
      :rules="rules"
      class="params-dialog">
    <el-form-item label="电池组名称">
      <el-input v-model="otherParams.groupName" readonly></el-input>
    </el-form-item>
    <div class="form-footer">
      <!-- <three-btn>清除告警</three-btn> -->
      <three-btn @click="confirmStart">启动内阻测试</three-btn>
    </div>
  </el-form>
</template>
<script>
import {const_9100} from "@/assets/js/const";
export default {
  name: "ResTest9611",
  props: {
    batt: {
      type: Object,
      default() {
        return {}
      }
    }
  },
  data() {
    let cmd = const_9100.cmd;
    return {
      cmd: cmd,
      params: {},
      rules: {},
    }
  },
  methods: {
    confirmStart() {
      this.$confirm('确定启动内阻测试', '系统提示', {
        type: 'warning'
      }).then(()=>{
        this.start();
      }).catch(()=>{});
    },
    start() {
      // 等待框
      let loading = this.$layer.loading(1);
      // 请求后台
      this.$apis.dischargeTest.bts9611.start({
        num: this.cmd.start,
        dev_id: this.batt.FBSDeviceId,
        BattGroupNum: this.batt.GroupIndexInFBSDevice+1,
      }).then(res => {
        let rs = JSON.parse(res.data.result);
        if (rs.code == 1) {
          // 提示信息
          this.$layer.msg('启动测试成功');
        } else {
          // 提示信息
          this.$layer.msg('启动测试失败!');
        }
        // 关闭等待框
        this.$layer.close(loading);
      }).catch(error => {
        console.log(error);
        // 关闭等待框
        this.$layer.close(loading);
        // 提示信息
        this.$layer.msg('启动测试失败,启动测试请求异常!');
      });
    },
  },
  computed: {
    otherParams() {
      let batt = this.batt;
      let groupInfo = '单体数量:' + this.batt.MonCount + ";电压(V):"
          + this.batt.MonVolStd + ";容量(AH):" + this.batt.MonCapStd;
      return {
        groupName: batt.StationName + "-" + batt.BattGroupName,
        FBSDeviceId: batt.FBSDeviceId,
        groupInfo: groupInfo,
        GroupIndexInFBSDevice: this.batt.GroupIndexInFBSDevice + 1,
      }
    }
  },
}
</script>
<style scoped>
</style>
src/pages/dataMager/components/AnalogTabPane.vue
@@ -164,7 +164,7 @@
        ACCurr: [
          {
            id: "ACCurrA",
            key: "acOutCurrA",
            key: "acIn1CurrA",
            name: '三相交流电流',
            number: "A",
            min: 0,
@@ -174,7 +174,7 @@
          },
          {
            id: "ACCurrB",
            key: "acOutCurrB",
            key: "acIn1CurrB",
            name: '三相交流电流',
            number: "B",
            min: 0,
@@ -184,7 +184,7 @@
          },
          {
            id: "ACCurrC",
            key: "acOutCurrC",
            key: "acIn1CurrC",
            name: '三相交流电流',
            number: "C",
            min: 0,
src/pages/dataMager/components/ChargerStatusTabPane.vue
@@ -11,13 +11,10 @@
            <div class="h50-percent padding-box padding0880">
                <el-row :gutter="8" class="full-height">
                    <el-col :span="8" class="full-height">
                        <flex-box title="系统状态">
                            <div class="flex-center">
                                <card-box :icon="sysStateInfo.icon" :text="sysStateInfo.text">
                                    <hdw-light :type="sysStateInfo.state"></hdw-light>
                                </card-box>
                            </div>
                        <flex-box title="纹波峰值系数">
                            <water-polo id="peakCoe" ref="peakCoe"></water-polo>
                        </flex-box>
                    </el-col>
                    <el-col :span="8" class="full-height">
                        <flex-box title="充电机输出电压">
@@ -68,8 +65,26 @@
        </div>
        <div slot="footer" class="w400 full-height">
            <div class="h50-percent padding-box padding0088">
                <flex-box title="纹波峰值系数">
                    <water-polo id="peakCoe" ref="peakCoe"></water-polo>
                <flex-box title="系统状态">
                    <el-table stripe :data="sysData" :show-header="false" height="100%"
                              size="small">
                        <el-table-column
                            prop="name"
                            label="名称"
                            align="center"
                            min-width="100"
                            class-name="table-list-name no-border white-color">
                        </el-table-column>
                        <el-table-column
                            prop="value"
                            label="值"
                            align="center"
                            class-name="table-list-value">
                            <template slot-scope="scope">
                                <hdw-light :type="scope.row.value"></hdw-light>
                            </template>
                        </el-table-column>
                    </el-table>
                </flex-box>
            </div>
            <div class="h50-percent padding-box padding0088">
@@ -101,13 +116,12 @@
export default {
    name: "ChargerStatusTabPane",
    components: {
        HdwLight,
        CardBox,
        WaterPolo,
        FlexBox,
        CalendarTime,
        CirclePieChart,
        paramModule
        paramModule,
        HdwLight
    },
    props: {
        name: {
@@ -200,6 +214,50 @@
                data: [60, 60],
                max: 100,
            },
            sysData: [
                {
                    name: '输出电压',
                    normal: "正常",
                    error: "异常",
                    count: Math.sqrt(2, 0),
                    value: 0,
                },
                {
                    name: '输出电流',
                    normal: "正常",
                    error: "异常",
                    count: Math.sqrt(2, 1),
                    value: 0,
                },
                {
                    name: '纹波',
                    normal: "正常",
                    error: "异常",
                    count: Math.sqrt(2, 2),
                    value: 0,
                },
                {
                    name: '输入电压',
                    normal: "正常",
                    error: "异常",
                    count: Math.sqrt(2, 3),
                    value: 0,
                },
                {
                    name: '输入电流',
                    normal: "正常",
                    error: "异常",
                    count: Math.sqrt(2, 4),
                    value: 0,
                },
                {
                    name: '电流',
                    normal: "正常",
                    error: "异常",
                    count: Math.sqrt(2, 5),
                    value: 0,
                },
            ],
            peakValue: "",
            peakData: 0,
        }
@@ -220,7 +278,7 @@
            // 设置chargerCurr
            this.chargerCurr.value = getValByKey(this.chargerCurr.key, info, 0);
            // 设置系统状态
            this.sysState = getValByKey("charSystemState", info, -1);
            this.setSysData();
            // 设置setParamModule
            this.setParamModule();
            // 设置peakValue
@@ -248,6 +306,16 @@
            let value = getValByKey("charPeakRipParam", info, 0);
            this.peakCoe.data = [value, value];
            this.$refs.peakCoe.setOption(this.peakCoe);
        },
        // 设置系统状态
        setSysData() {
            let info = this.info;
            let key = "charSystemState";
            let value = getValByKey(key, info, 0);
            this.sysData.map(item=>{
                item.value = value&item.count;
            });
        }
    },
    computed: {
@@ -326,9 +394,11 @@
    font-size: 42px;
    font-weight: bold;
}
.peak-number-unit {
    font-size: 24px;
}
.peak-number-text {
    font-size: 18px;
}
src/pages/dataMager/components/HdwLight.vue
@@ -1,5 +1,9 @@
<template>
  <div class="hdw-light" :class="lightState"></div>
  <div class="hdw-light-wrapper">
    <div class="hdw-light" :class="lightState"></div>
    <span class="hdw-light-text">{{textState}}</span>
  </div>
</template>
<script>
@@ -9,12 +13,21 @@
    type: {
      type: [Number, String],
      default: 0
    },
    normal: {
      type: String,
      default: ""
    },
    error: {
      type: String,
      default: ""
    }
  },
  computed: {
    lightState() {
      let state="";
      switch (this.type) {
      let type = this.type>1?1:this.type;
      switch (type) {
        case 1:
          state = "error-light"
          break;
@@ -26,11 +39,36 @@
          break;
      }
      return state;
    }
    },
    textState() {
      let state="";
        let type = this.type>1?1:this.type;
      switch (type) {
        case 1:
          state = this.error;
          break;
        case -1:
          state = "";
          break;
        default:
          state = this.normal;
          break;
      }
      return state;
    },
  }
}
</script>
<style scoped>
.hdw-light-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 30px;
}
.hdw-light-text {
  margin-left: 4px;
  vertical-align: top;
}
</style>
src/pages/dataMager/components/IsolatingDeviceTabPane.vue
@@ -1,160 +1,251 @@
<template>
  <div class="content-container padding0404">
    <div class="content-wrapper content-wrapper-main">
      <div class="h50-percent main-top">
        <el-row class="full-height">
          <el-col :span="12" class="full-height">
            <div class="h50-percent padding0880">
              <flex-box title="记录时间">
                <div class="center-content">
                  <calendar-time size="mini" :date="updateTime"></calendar-time>
    <div class="full-height padding0888">
        <flex-layout direction="row">
            <div class="content-wrapper content-wrapper-main">
                <div class="h60-percent main-top">
                    <el-row class="full-height">
                        <el-col :span="14" class="full-height">
                            <div class="h50-percent padding0880">
                                <flex-box title="记录时间">
                                    <div class="center-content">
                                        <calendar-time newline :date="updateTime"></calendar-time>
                                    </div>
                                </flex-box>
                            </div>
                            <div class="h50-percent padding0880">
                                <flex-layout direction="row">
                                    <flex-box title="电池信息" no-header-bg>
                                        <el-row :gutter="8" class="full-height">
                                            <el-col :span="12" class="full-height">
                                                <div class="battery-info">
                                                    <div class="battery-info-wrapper">
                                                        <div class="battery-icon-wrapper">
                                                            <div class="battery-icon">
                                                                <i class="iconfont el-icon-6dianchi"></i></div>
                                                        </div>
                                                        <div class="battery-text-wrapper">
                                                            <span class="text-content">故障电池节数</span>
                                                            <span class="text-value">{{ batteryNumber }}</span>
                                                            <span class="text-content">节</span>
                                                        </div>
                                                    </div>
                                                </div>
                                            </el-col>
                                            <el-col :span="12" class="full-height">
                                                <div class="battery-info">
                                                    <div class="battery-info-wrapper">
                                                        <div class="battery-res-pie-wrapper">
                                                            <circle-pie-chart
                                                                ref="batteryRes" id="batteryRes"
                                                                full
                                                                :color="batteryRes.color" :max="batteryRes.max"
                                                                :unit="batteryRes.unit"
                                                                :value="batteryRes.value"></circle-pie-chart>
                                                        </div>
                                                        <div class="battery-res-text">
                                                            <span>电池对地电阻</span>
                                                        </div>
                                                    </div>
                                                </div>
                                            </el-col>
                                        </el-row>
                                    </flex-box>
                                    <flex-box title="装置状态" no-header-bg slot="footer" class="w280 mgr16">
                                        <div class="flex-center full-height padding0808">
                                            <el-table :data="insInfo" stripe
                                                      class="border-table table-stripe-odd"
                                                      :show-header="false" size="small">
                                                <el-table-column
                                                    prop="name"
                                                    label="名称"
                                                    align="center"
                                                    min-width="100"
                                                    class-name="table-list-name">
                                                </el-table-column>
                                                <el-table-column
                                                    prop="value"
                                                    label="值"
                                                    align="center"
                                                    class-name="table-list-value">
                                                    <template slot-scope="scope">
                                                        <hdw-light :type="scope.row.value"></hdw-light>
                                                    </template>
                                                </el-table-column>
                                            </el-table>
                                        </div>
                                    </flex-box>
                                </flex-layout>
                            </div>
                        </el-col>
                        <el-col :span="10" class="padding0888 full-height">
                            <flex-box title="监测数据">
                                <el-row :gutter="16" class="h33-percent">
                                    <el-col
                                        :span="12" class="full-height"
                                        v-for="item in volCurr.top" :key="item.id">
                                        <div class="circle-pie-chart-container">
                                            <div class="circle-pie-chart-wrapper">
                                                <circle-pie-chart
                                                    :ref="item.id" :id="item.id"
                                                    :color="item.color" :max="item.max"
                                                    :unit="item.unit" :value="item.value"></circle-pie-chart>
                                            </div>
                                            <div class="circle-pie-chart-text">
                                                <span>{{ item.name }}</span>
                                            </div>
                                        </div>
                                    </el-col>
                                </el-row>
                                <el-row :gutter="16" class="h33-percent">
                                    <el-col
                                        :span="12" class="full-height"
                                        v-for="item in volCurr.middle" :key="item.id">
                                        <div class="circle-pie-chart-container">
                                            <div class="circle-pie-chart-wrapper">
                                                <circle-pie-chart
                                                    :ref="item.id" :id="item.id"
                                                    :color="item.color" :max="item.max"
                                                    :unit="item.unit" :value="item.value"></circle-pie-chart>
                                            </div>
                                            <div class="circle-pie-chart-text">
                                                <span>{{ item.name }}</span>
                                            </div>
                                        </div>
                                    </el-col>
                                </el-row>
                                <el-row :gutter="16" class="h33-percent">
                                    <el-col
                                        :span="12" class="full-height"
                                        v-for="item in volCurr.bottom" :key="item.id">
                                        <div class="circle-pie-chart-container">
                                            <div class="circle-pie-chart-wrapper">
                                                <circle-pie-chart
                                                    :ref="item.id" :id="item.id"
                                                    :color="item.color" :max="item.max"
                                                    :unit="item.unit" :value="item.value"></circle-pie-chart>
                                            </div>
                                            <div class="circle-pie-chart-text">
                                                <span>{{ item.name }}</span>
                                            </div>
                                        </div>
                                    </el-col>
                                </el-row>
                            </flex-box>
                        </el-col>
                    </el-row>
                </div>
              </flex-box>
                <div class="h40-percent main-bottom">
                    <flex-layout direction="row">
                        <flex-box title="支路正/负对地电阻(KΩ)">
                            <line-chart ref="resLine" id="resLine" unit="KΩ"></line-chart>
                        </flex-box>
                        <div class="full-height padding0808" slot="footer">
                            <flex-box title="系统状态">
                                <div class="padding016016 full-height flex-center">
                                    <el-row class="border-full">
                                        <el-col :span="12" class="border-right">
                                            <el-table :data="systemInfo1" stripe
                                                      class="table-stripe-odd"
                                                      :show-header="false">
                                                <el-table-column
                                                    prop="name"
                                                    label="名称"
                                                    align="left"
                                                    min-width="120">
                                                </el-table-column>
                                                <el-table-column
                                                    prop="value"
                                                    label="值"
                                                    align="left"
                                                    class-name="table-list-value">
                                                    <template slot-scope="scope">
                                                        <hdw-light :type="scope.row.value"></hdw-light>
                                                    </template>
                                                </el-table-column>
                                            </el-table>
                                        </el-col>
                                        <el-col :span="12">
                                            <el-table :data="systemInfo2" stripe
                                                      class="table-stripe-odd"
                                                      :show-header="false">
                                                <el-table-column
                                                    prop="name"
                                                    label="名称"
                                                    align="left"
                                                    min-width="120">
                                                </el-table-column>
                                                <el-table-column
                                                    prop="value"
                                                    label="值"
                                                    align="left"
                                                    class-name="table-list-value">
                                                    <template slot-scope="scope">
                                                        <hdw-light :type="scope.row.value"></hdw-light>
                                                    </template>
                                                </el-table-column>
                                            </el-table>
                                        </el-col>
                                    </el-row>
                                </div>
                            </flex-box>
                        </div>
                    </flex-layout>
                </div>
            </div>
            <div class="h50-percent padding0880">
              <flex-box title="工作状态">
                <el-table
                    :data="systemState" stripe
                    :show-header="false" height="100%" size="small">
                  <el-table-column
                      prop="name"
                      label="名称"
                      align="center"
                      min-width="100"
                      class-name="table-list-name no-border white-color">
                  </el-table-column>
                  <el-table-column
                      prop="value"
                      label="值"
                      align="center"
                      class-name="table-list-value">
                    <template slot-scope="scope">
                      <div class="hdw-light" :class="{'error-light':scope.row.value == 1}"></div>
                    </template>
                  </el-table-column>
                </el-table>
              </flex-box>
            </div>
          </el-col>
          <el-col :span="12" class="padding0888 full-height">
            <flex-box title="监测数据">
              <el-row :gutter="16" class="h30-percent">
                <el-col
                    :span="12" class="full-height"
                    v-for="item in volCurr.top" :key="item.id">
                  <div class="circle-pie-chart-container">
                    <div class="circle-pie-chart-wrapper">
                      <circle-pie-chart
                          :ref="item.id" :id="item.id"
                          :color="item.color" :max="item.max"
                          :unit="item.unit" :value="item.value"></circle-pie-chart>
                    </div>
                    <div class="circle-pie-chart-text">
                      <span>{{ item.name }}</span>
                    </div>
                  </div>
                </el-col>
              </el-row>
              <el-row :gutter="16" class="h30-percent">
                <el-col
                    :span="12" class="full-height"
                    v-for="item in volCurr.middle" :key="item.id">
                  <div class="circle-pie-chart-container">
                    <div class="circle-pie-chart-wrapper">
                      <circle-pie-chart
                          :ref="item.id" :id="item.id"
                          :color="item.color" :max="item.max"
                          :unit="item.unit" :value="item.value"></circle-pie-chart>
                    </div>
                    <div class="circle-pie-chart-text">
                      <span>{{ item.name }}</span>
                    </div>
                  </div>
                </el-col>
              </el-row>
              <el-row :gutter="16" class="h30-percent">
                <el-col
                    :span="12" class="full-height"
                    v-for="item in volCurr.bottom" :key="item.id">
                  <div class="circle-pie-chart-container">
                    <div class="circle-pie-chart-wrapper">
                      <circle-pie-chart
                          :ref="item.id" :id="item.id"
                          :color="item.color" :max="item.max"
                          :unit="item.unit" :value="item.value"></circle-pie-chart>
                    </div>
                    <div class="circle-pie-chart-text">
                      <span>{{ item.name }}</span>
                    </div>
                  </div>
                </el-col>
              </el-row>
            </flex-box>
          </el-col>
        </el-row>
      </div>
      <div class="h50-percent main-bottom">
        <div class="content-container">
          <div class="content-wrapper content-wrapper-main padding0880">
            <flex-box title="支路正/负对地电阻KΩ">
              <line-chart ref="resLine" id="resLine"></line-chart>
            </flex-box>
          </div>
          <div class="content-wrapper content-wrapper-w450 padding0888">
            <flex-box title="电池信息">
              <div class="flex-box-content">
                <div class="battery-info">
                  <div class="battery-icon-wrapper">
                    <div class="battery-icon"><i class="iconfont el-icon-6dianchi"></i></div>
                  </div>
                  <div class="battery-text-wrapper">
                    <span class="text-content">故障电池节数</span><br>
                    <span class="text-value">{{batteryNumber}}节</span>
                  </div>
                </div>
              </div>
              <div class="flex-box-content">
                <div class="circle-pie-chart-container">
                  <div class="circle-pie-chart-wrapper">
                    <circle-pie-chart
                        ref="batteryRes" id="batteryRes"
                        :color="batteryRes.color" :max="batteryRes.max"
                        :unit="batteryRes.unit" :value="batteryRes.value"></circle-pie-chart>
                  </div>
                  <div class="circle-pie-chart-text">
                    <span>电池对地电阻</span><br>
                    <span></span>
                  </div>
                </div>
              </div>
            </flex-box>
          </div>
        </div>
      </div>
    </div>
    <div class="content-wrapper content-wrapper-w360 padding0088">
      <table-list title="接地支路号">
        <el-table
            :data="branchNumber" stripe
            :show-header="false" height="100%" size="small">
          <el-table-column
              prop="name"
              label="名称"
              align="center"
              min-width="100"
              class-name="table-list-name no-border white-color">
          </el-table-column>
          <el-table-column
              prop="value"
              label="值"
              align="center"
              class-name="table-list-value">
            <div slot="footer" class="full-height w360 mgr8">
                <flex-layout>
                    <flex-box slot="header" title="接地支路号">
                        <div class="padding8161616">
                            <el-table
                                :data="branchNumber" stripe
                                class="border-table table-stripe-odd"
                                :show-header="false" size="small">
                                <el-table-column
                                    prop="name"
                                    label="名称"
                                    align="center"
                                    min-width="100"
                                    class-name="table-list-name">
                                </el-table-column>
                                <el-table-column
                                    prop="value"
                                    label="值"
                                    align="center"
                                    class-name="table-list-value">
          </el-table-column>
        </el-table>
      </table-list>
                                </el-table-column>
                            </el-table>
                        </div>
                    </flex-box>
                    <div class="full-height padding16000 padding-box">
                        <flex-box title="瞬时记录状态">
                            <div class="padding0808 full-height flex-center">
                                <el-table :data="insRecord" stripe
                                          class="table-stripe-odd"
                                          :show-header="false">
                                    <el-table-column
                                        prop="name"
                                        label="名称"
                                        align="center"
                                        min-width="120">
                                    </el-table-column>
                                    <el-table-column
                                        prop="value"
                                        label="值"
                                        align="center"
                                        class-name="table-list-value">
                                        <template slot-scope="scope">
                                            <hdw-light :type="scope.row.value"></hdw-light>
                                        </template>
                                    </el-table-column>
                                </el-table>
                            </div>
                        </flex-box>
                    </div>
                </flex-layout>
            </div>
        </flex-layout>
    </div>
  </div>
</template>
<script>
@@ -164,508 +255,638 @@
import FlexBox from "@/components/FlexBox";
import CalendarTime from "@/components/CalendarTime";
import {getValByKey} from "@/assets/js/tools";
import HdwLight from "@/pages/dataMager/components/HdwLight";
export default {
  name: "IsolatingDeviceTabPane",
  components: {
    CalendarTime,
    CirclePieChart,
    LineChart,
    TableList,
    FlexBox
  },
  props: {
    name: {
      type: String,
      default: ""
    name: "IsolatingDeviceTabPane",
    components: {
        HdwLight,
        CalendarTime,
        CirclePieChart,
        LineChart,
        FlexBox
    },
    info: {
      type: Object,
      default() {
        return {}
      }
    }
  },
  watch: {
    "$store.state.theme.collapse"() {
      this.$nextTick(() => {
        this.resize();
      });
    },
    name() {
      this.setInfo();
    },
    info() {
      this.setInfo();
    }
  },
  data() {
    let resLineConfig = {
      axisLineColor: "#125984",
      axisLineType: 'dashed',
      axisLabelColor: '#fff',
      line1Color: "#90ED7D",
      line2Color: '#F69F41',
      lineType: 'dashed',
    };
    return {
      branchNumber: [
        {key: 'insulatBranchNum1', name: '模块1', value: '???'},
        {key: 'insulatBranchNum2', name: '模块2', value: '???'},
        {key: 'insulatBranchNum3', name: '模块3', value: '???'},
        {key: 'insulatBranchNum4', name: '模块4', value: '???'},
        {key: 'insulatBranchNum5', name: '模块5', value: '???'},
        {key: 'insulatBranchNum6', name: '模块6', value: '???'},
        {key: 'insulatBranchNum7', name: '模块7', value: '???'},
        {key: 'insulatBranchNum8', name: '模块8', value: '???'},
        {key: 'insulatBranchNum9', name: '模块9', value: '???'},
        {key: 'insulatBranchNum10', name: '模块10', value: '???'},
        {key: 'insulatBranchNum11', name: '模块11', value: '???'},
        {key: 'insulatBranchNum12', name: '模块12', value: '???'},
        {key: 'insulatBranchNum13', name: '模块13', value: '???'},
        {key: 'insulatBranchNum14', name: '模块14', value: '???'},
        {key: 'insulatBranchNum15', name: '模块15', value: '???'},
        {key: 'insulatBranchNum16', name: '模块16', value: '???'},
      ],
      systemState: [
        {key: 'insulatRecordState', name: '瞬时记录状态', value: 0},
        {key: 'insulatSystemState', name: '系统状态', value: 0},
        {key: 'insulatState', name: '装置状态', value: 0},
      ],
      volCurr: {
        top: [
          {
            id: 'systemVol',
            key: 'insulatSystemVol',
            name: '系统电压',
            color: '#F2535F',
            value: 0,
            unit: 'V',
            max: 480,
          },
          {
            id: 'volCurrACVol',
            key: 'insulatAcVol',
            name: '交流电压',
            color: '#4AFD88',
            value: 0,
            unit: 'V',
            max: 480,
          },
        ],
        middle: [
          {
            id: 'posFloorVol',
            key: 'insulatGroundVol',
            name: '正对地电压',
            color: '#DCFD00',
            value: 0,
            unit: 'V',
            max: 480,
          },
          {
            id: 'nesFloorVol',
            key: 'insulatNegativeVol',
            name: '负对地电压',
            color: '#FA62E8',
            value: 0,
            unit: 'V',
            max: 480,
          },
        ],
        bottom: [
          {
            id: 'posFloorRes',
            key: 'insulatGroundRes',
            name: '正对地电阻',
            color: '#F1E287',
            value: 0,
            unit: 'kΩ',
            max: 50,
          },
          {
            id: 'NesFloorRes',
            key: 'insulatNegativeRes',
            name: '负对地电阻',
            color: '#00FEFF',
            value: 0,
            unit: 'KΩ',
            max: 50,
          },
        ]
      },
      batteryRes: {
        name: '负对地电阻',
        key: 'insulatBattRes',
        color: '#00FEFF',
        value: 0,
        unit: 'KΩ',
        max: 50,
      },
      resLine: {
        tooltip: {
          show: false
    props: {
        name: {
            type: String,
            default: ""
        },
        xAxis: [{
          type: 'category',
          boundaryGap: 0,
          axisLine: {
            onZero: false,
            lineStyle: {
              color: resLineConfig.axisLineColor,
              type: resLineConfig.axisLineType,
            },
          },
          axisTick: {
            show: false,
          },
          axisLabel: {
            color: resLineConfig.axisLabelColor,
          },
          splitLine: {
            show: true,
            lineStyle: {
              color: resLineConfig.axisLineColor,
              type: resLineConfig.axisLineType,
            },
          },
        }],
        yAxis: [{
          type: 'value',
          axisLine: {
            lineStyle: {
              color: resLineConfig.axisLineColor,
              type: resLineConfig.axisLineType,
            },
          },
          axisTick: {
            show: false,
          },
          axisLabel: {
            color: resLineConfig.axisLabelColor,
          },
          splitLine: {
            show: true,
            lineStyle: {
              color: resLineConfig.axisLineColor,
              type: resLineConfig.axisLineType,
            },
          },
          max: function (data) {
            let max = data.max;
            if (max == -Infinity) {
              return 1;
        info: {
            type: Object,
            default() {
                return {}
            }
            return Math.ceil(max * 1.01);
          }
        }],
        series: [
          {
            name: '绝缘监测模块支路正对地电阻',
            smooth: false,
            symbol: 'circle',
            symbolSize: 8,
            data: [
              ['模块1', 0],
              ['模块2', 0],
              ['模块3', 0],
              ['模块4', 0],
              ['模块5', 0],
              ['模块6', 0],
              ['模块7', 0],
              ['模块8', 0],
              ['模块9', 0],
              ['模块10', 0],
              ['模块11', 0],
              ['模块12', 0],
              ['模块13', 0],
              ['模块14', 0],
              ['模块15', 0],
              ['模块16', 0],
            ],
            itemStyle: {
              normal: {
                color: resLineConfig.line1Color
              },
            },
            lineStyle: {
              color: resLineConfig.line1Color,
              type: resLineConfig.lineType
            }
          },
          {
            name: '绝缘监测模块支路负对地电阻',
            smooth: false,
            symbol: 'circle',
            symbolSize: 8,
            data: [
              ['模块1', 0],
              ['模块2', 0],
              ['模块3', 0],
              ['模块4', ],
              ['模块5', 0],
              ['模块6', 0],
              ['模块7', 0],
              ['模块8', 0],
              ['模块9', 0],
              ['模块10', 0],
              ['模块11', 0],
              ['模块12', 0],
              ['模块13', 0],
              ['模块14', 0],
              ['模块15', 0],
              ['模块16', 0],
            ],
            itemStyle: {
              normal: {
                color: resLineConfig.line2Color,
              },
            },
            lineStyle: {
              color: resLineConfig.line2Color,
              type: resLineConfig.lineType
            }
          },
        ]
      },
    }
  },
  methods: {
    // 绝缘装置图表重置大小
    resize() {
      this.$nextTick(() => {
        this.$refs.resLine.resize();
        this.$refs.batteryRes.resize();
        // 重置大小
        for (let key in this.volCurr) {
          this.volCurr[key].map(item => {
            this.$refs[item.id][0].resize();
          });
        }
      });
    },
    setInfo() {
      // 设置branchNumber
      this.setBranchNumber();
      // 设置systemState
      this.setSystemState();
      // 设置volCurr
      this.setVolCurr();
      // 设置batteryRes
      this.batteryRes.value = getValByKey(this.batteryRes.key, this.info, 0);
      // 设置resLine
      this.setResLine();
    watch: {
        "$store.state.theme.collapse"() {
            this.$nextTick(() => {
                this.resize();
            });
        },
        name() {
            this.setInfo();
        },
        info() {
            this.setInfo();
        }
    },
    // 设置branchNumber
    setBranchNumber() {
      let info = this.info;
      this.branchNumber.map(item=>{
        item.value = getValByKey(item.key, info, "???");
      });
    data() {
        let resLineConfig = {
            axisLineColor: "#125984",
            axisLineType: 'dashed',
            axisLabelColor: '#fff',
            line1Color: "#90ED7D",
            line2Color: '#F69F41',
            lineType: 'dashed',
        };
        return {
            branchNumber: [
                {key: 'insulatBranchNum1', name: '模块1', value: '???'},
                {key: 'insulatBranchNum2', name: '模块2', value: '???'},
                {key: 'insulatBranchNum3', name: '模块3', value: '???'},
                {key: 'insulatBranchNum4', name: '模块4', value: '???'},
                {key: 'insulatBranchNum5', name: '模块5', value: '???'},
                {key: 'insulatBranchNum6', name: '模块6', value: '???'},
                {key: 'insulatBranchNum7', name: '模块7', value: '???'},
                {key: 'insulatBranchNum8', name: '模块8', value: '???'},
                {key: 'insulatBranchNum9', name: '模块9', value: '???'},
                {key: 'insulatBranchNum10', name: '模块10', value: '???'},
                {key: 'insulatBranchNum11', name: '模块11', value: '???'},
                {key: 'insulatBranchNum12', name: '模块12', value: '???'},
                {key: 'insulatBranchNum13', name: '模块13', value: '???'},
                {key: 'insulatBranchNum14', name: '模块14', value: '???'},
                {key: 'insulatBranchNum15', name: '模块15', value: '???'},
                {key: 'insulatBranchNum16', name: '模块16', value: '???'},
            ],
            systemState: [
                {key: 'insulatRecordState', name: '瞬时记录状态', value: 0},
                {key: 'insulatSystemState', name: '系统状态', value: 0},
                {key: 'insulatState', name: '装置状态', value: 0},
            ],
            volCurr: {
                top: [
                    {
                        id: 'systemVol',
                        key: 'insulatSystemVol',
                        name: '系统电压',
                        color: '#F2535F',
                        value: 0,
                        unit: 'V',
                        max: 480,
                    },
                    {
                        id: 'volCurrACVol',
                        key: 'insulatAcVol',
                        name: '交流电压',
                        color: '#4AFD88',
                        value: 0,
                        unit: 'V',
                        max: 480,
                    },
                ],
                middle: [
                    {
                        id: 'posFloorVol',
                        key: 'insulatGroundVol',
                        name: '正对地电压',
                        color: '#DCFD00',
                        value: 0,
                        unit: 'V',
                        max: 480,
                    },
                    {
                        id: 'nesFloorVol',
                        key: 'insulatNegativeVol',
                        name: '负对地电压',
                        color: '#FA62E8',
                        value: 0,
                        unit: 'V',
                        max: 480,
                    },
                ],
                bottom: [
                    {
                        id: 'posFloorRes',
                        key: 'insulatGroundRes',
                        name: '正对地电阻',
                        color: '#F1E287',
                        value: 0,
                        unit: 'kΩ',
                        max: 50,
                    },
                    {
                        id: 'NesFloorRes',
                        key: 'insulatNegativeRes',
                        name: '负对地电阻',
                        color: '#00FEFF',
                        value: 0,
                        unit: 'KΩ',
                        max: 50,
                    },
                ]
            },
            batteryRes: {
                name: '负对地电阻',
                key: 'insulatBattRes',
                color: '#00FEFF',
                value: 0,
                unit: 'KΩ',
                max: 50,
            },
            resLine: {
                xAxis: [{
                    type: 'category',
                    boundaryGap: 0,
                    axisLine: {
                        onZero: false,
                        lineStyle: {
                            color: resLineConfig.axisLineColor,
                            type: resLineConfig.axisLineType,
                        },
                    },
                    axisTick: {
                        show: false,
                    },
                    axisLabel: {
                        color: resLineConfig.axisLabelColor,
                    },
                    splitLine: {
                        show: true,
                        lineStyle: {
                            color: resLineConfig.axisLineColor,
                            type: resLineConfig.axisLineType,
                        },
                    },
                }],
                yAxis: [{
                    type: 'value',
                    axisLine: {
                        lineStyle: {
                            color: resLineConfig.axisLineColor,
                            type: resLineConfig.axisLineType,
                        },
                    },
                    axisTick: {
                        show: false,
                    },
                    axisLabel: {
                        color: resLineConfig.axisLabelColor,
                    },
                    splitLine: {
                        show: true,
                        lineStyle: {
                            color: resLineConfig.axisLineColor,
                            type: resLineConfig.axisLineType,
                        },
                    },
                    max: function (data) {
                        let max = data.max;
                        if (max == -Infinity) {
                            return 1;
                        }
                        return Math.ceil(max * 1.01);
                    }
                }],
                series: [
                    {
                        name: '支路正对地电阻',
                        smooth: false,
                        symbol: 'circle',
                        symbolSize: 8,
                        data: [
                            ['模块1', 0],
                            ['模块2', 0],
                            ['模块3', 0],
                            ['模块4', 0],
                            ['模块5', 0],
                            ['模块6', 0],
                            ['模块7', 0],
                            ['模块8', 0],
                            ['模块9', 0],
                            ['模块10', 0],
                            ['模块11', 0],
                            ['模块12', 0],
                            ['模块13', 0],
                            ['模块14', 0],
                            ['模块15', 0],
                            ['模块16', 0],
                        ],
                        itemStyle: {
                            normal: {
                                color: resLineConfig.line1Color
                            },
                        },
                        lineStyle: {
                            color: resLineConfig.line1Color,
                            type: resLineConfig.lineType
                        }
                    },
                    {
                        name: '支路负对地电阻',
                        smooth: false,
                        symbol: 'circle',
                        symbolSize: 8,
                        data: [
                            ['模块1', 0],
                            ['模块2', 0],
                            ['模块3', 0],
                            ['模块4',],
                            ['模块5', 0],
                            ['模块6', 0],
                            ['模块7', 0],
                            ['模块8', 0],
                            ['模块9', 0],
                            ['模块10', 0],
                            ['模块11', 0],
                            ['模块12', 0],
                            ['模块13', 0],
                            ['模块14', 0],
                            ['模块15', 0],
                            ['模块16', 0],
                        ],
                        itemStyle: {
                            normal: {
                                color: resLineConfig.line2Color,
                            },
                        },
                        lineStyle: {
                            color: resLineConfig.line2Color,
                            type: resLineConfig.lineType
                        }
                    },
                ]
            },
            insInfo: [
                {
                    name: '平衡桥',
                    count: Math.pow(2, 0),
                    value: 0
                },
                {
                    name: '检测桥',
                    count: Math.pow(2, 1),
                    value: 0
                },
                {
                    name: '采集器通讯',
                    count: Math.pow(2, 2),
                    value: 0
                },
                {
                    name: '电流',
                    count: Math.pow(2, 3),
                    value: 0
                },
            ],
            systemInfo1: [
                {
                    name: '绝缘下降',
                    count: Math.pow(2, 0),
                    normal: '无',
                    error: '有',
                    value: 0
                },
                {
                    name: '电压',
                    count: Math.pow(2, 1),
                    normal: '无偏',
                    error: '有偏',
                    value: 0
                },
                {
                    name: '电池绝缘下降',
                    count: Math.pow(2, 2),
                    normal: '无',
                    error: '有',
                    value: 0
                },
                {
                    name: '电压越线',
                    count: Math.pow(2, 3),
                    normal: '无',
                    error: '有',
                    value: 0
                },
            ],
            systemInfo2: [
                {
                    name: '接地故障',
                    count: Math.pow(2, 4),
                    normal: '无',
                    error: '有',
                    value: 0
                },
                {
                    name: '直流互窜',
                    count: Math.pow(2, 5),
                    normal: '无',
                    error: '有',
                    value: 0
                },
                {
                    name: '交流窜入',
                    count: Math.pow(2, 6),
                    normal: '无',
                    error: '有',
                    value: 0
                },
                {
                    name: '电池接地',
                    count: Math.pow(2, 7),
                    normal: '无',
                    error: '有',
                    value: 0
                },
            ],
            insRecord: [
                {
                    name: '新增瞬时记录',
                    count: Math.pow(2, 0),
                    value: 0
                }
            ],
        }
    },
    // 设置systemState
    setSystemState() {
      let info = this.info;
      this.systemState.map(item=>{
        item.value = getValByKey(item.key, info, -1);
      });
    },
    // 设置volCurr
    setVolCurr() {
      let info = this.info;
      this.volCurr.top.map(item=>{
        item.value = getValByKey(item.key, info, 0);
      });
      this.volCurr.middle.map(item=>{
        item.value = getValByKey(item.key, info, 0);
      });
      this.volCurr.bottom.map(item=>{
        item.value = getValByKey(item.key, info, 0);
      });
    },
    // 设置resLine
    setResLine() {
      let info = this.info;
      let pos = this.getPosRes();
      let posList = pos.map(item=>{
        let value = getValByKey(item.key, info, 0);
        return [item.name, value];
      });
    methods: {
        // 绝缘装置图表重置大小
        resize() {
            setTimeout(() =>{
                this.$nextTick(() => {
                    // 重置大小
                    for (let key in this.volCurr) {
                        this.volCurr[key].map(item => {
                            this.$refs[item.id][0].resize();
                        });
                    }
                    this.$refs.resLine.resize();
                    this.$refs.batteryRes.resize();
                });
            }, 300);
      let neg = this.getNegRes();
      let negList = neg.map(item=>{
        let value = getValByKey(item.key, info, 0);
        return [item.name, value];
      });
      this.resLine.series[0].data = posList;
      this.resLine.series[1].data = negList;
      this.$refs.resLine.setOption(this.resLine);
        },
        setInfo() {
            // 设置branchNumber
            this.setBranchNumber();
            // 设置systemState
            //this.setSystemState();
            // 设置insRecord
            this.setInsRecord();
            // 设置batteryInfo
            this.setInsInfo();
            // 设置系统状态
            this.setSystemInfo();
            // 设置volCurr
            this.setVolCurr();
            // 设置batteryRes
            this.batteryRes.value = getValByKey(this.batteryRes.key, this.info, 0);
            // 设置resLine
            this.setResLine();
        },
        // 设置branchNumber
        setBranchNumber() {
            let info = this.info;
            this.branchNumber.map(item => {
                item.value = getValByKey(item.key, info, "???");
            });
        },
        // 设置systemState
        setSystemState() {
            let info = this.info;
            this.systemState.map(item => {
                item.value = getValByKey(item.key, info, -1);
            });
        },
        // 设置volCurr
        setVolCurr() {
            let info = this.info;
            this.volCurr.top.map(item => {
                item.value = getValByKey(item.key, info, 0);
            });
            this.volCurr.middle.map(item => {
                item.value = getValByKey(item.key, info, 0);
            });
            this.volCurr.bottom.map(item => {
                item.value = getValByKey(item.key, info, 0);
            });
        },
        // 设置resLine
        setResLine() {
            let info = this.info;
            let pos = this.getPosRes();
            let posList = pos.map(item => {
                let value = getValByKey(item.key, info, 0);
                return [item.name, value];
            });
            let neg = this.getNegRes();
            let negList = neg.map(item => {
                let value = getValByKey(item.key, info, 0);
                return [item.name, value];
            });
            this.resLine.series[0].data = posList;
            this.resLine.series[1].data = negList;
            this.$refs.resLine.setOption(this.resLine);
        },
        getPosRes() {
            return [
                {key: 'insulatBranchResIs1', name: "模块1", value: 0},
                {key: 'insulatBranchResIs2', name: "模块2", value: 0},
                {key: 'insulatBranchResIs3', name: "模块3", value: 0},
                {key: 'insulatBranchResIs4', name: "模块4", value: 0},
                {key: 'insulatBranchResIs5', name: "模块5", value: 0},
                {key: 'insulatBranchResIs6', name: "模块6", value: 0},
                {key: 'insulatBranchResIs7', name: "模块7", value: 0},
                {key: 'insulatBranchResIs8', name: "模块8", value: 0},
                {key: 'insulatBranchResIs9', name: "模块9", value: 0},
                {key: 'insulatBranchResIs10', name: "模块10", value: 0},
                {key: 'insulatBranchResIs11', name: "模块11", value: 0},
                {key: 'insulatBranchResIs12', name: "模块12", value: 0},
                {key: 'insulatBranchResIs13', name: "模块13", value: 0},
                {key: 'insulatBranchResIs14', name: "模块14", value: 0},
                {key: 'insulatBranchResIs15', name: "模块15", value: 0},
                {key: 'insulatBranchResIs16', name: "模块16", value: 0},
            ]
        },
        getNegRes() {
            return [
                {key: 'insulatBranchResNe1', name: "模块1", value: 0},
                {key: 'insulatBranchResNe2', name: "模块2", value: 0},
                {key: 'insulatBranchResNe3', name: "模块3", value: 0},
                {key: 'insulatBranchResNe4', name: "模块4", value: 0},
                {key: 'insulatBranchResNe5', name: "模块5", value: 0},
                {key: 'insulatBranchResNe6', name: "模块6", value: 0},
                {key: 'insulatBranchResNe7', name: "模块7", value: 0},
                {key: 'insulatBranchResNe8', name: "模块8", value: 0},
                {key: 'insulatBranchResNe9', name: "模块9", value: 0},
                {key: 'insulatBranchResNe10', name: "模块10", value: 0},
                {key: 'insulatBranchResNe11', name: "模块11", value: 0},
                {key: 'insulatBranchResNe12', name: "模块12", value: 0},
                {key: 'insulatBranchResNe13', name: "模块13", value: 0},
                {key: 'insulatBranchResNe14', name: "模块14", value: 0},
                {key: 'insulatBranchResNe15', name: "模块15", value: 0},
                {key: 'insulatBranchResNe16', name: "模块16", value: 0},
            ]
        },
        // 设置瞬时记录
        setInsRecord() {
            let key = "insulatRecordState";
            let info = this.info;
            let value = getValByKey(key, info, 0);
            this.insRecord.map(item=>{
                item.value = value&item.count;
            });
        },
        // 设置装置状态
        setInsInfo() {
            let key = "insulatState";
            let info = this.info;
            let value = getValByKey(key, info, 0);
            this.insInfo.map(item=>{
                item.value = value&item.count;
            });
        },
        // 设置系统状态
        setSystemInfo() {
            let key = "insulatState";
            let info = this.info;
            let value = getValByKey(key, info, 0);
            this.systemInfo1.map(item=>{
                item.value = value&item.count;
            });
            this.systemInfo2.map(item=>{
                item.value = value&item.count;
            });
        }
    },
    getPosRes() {
      return [
        {key: 'insulatBranchResIs1', name: "模块1", value: 0},
        {key: 'insulatBranchResIs2', name: "模块2", value: 0},
        {key: 'insulatBranchResIs3', name: "模块3", value: 0},
        {key: 'insulatBranchResIs4', name: "模块4", value: 0},
        {key: 'insulatBranchResIs5', name: "模块5", value: 0},
        {key: 'insulatBranchResIs6', name: "模块6", value: 0},
        {key: 'insulatBranchResIs7', name: "模块7", value: 0},
        {key: 'insulatBranchResIs8', name: "模块8", value: 0},
        {key: 'insulatBranchResIs9', name: "模块9", value: 0},
        {key: 'insulatBranchResIs10', name: "模块10", value: 0},
        {key: 'insulatBranchResIs11', name: "模块11", value: 0},
        {key: 'insulatBranchResIs12', name: "模块12", value: 0},
        {key: 'insulatBranchResIs13', name: "模块13", value: 0},
        {key: 'insulatBranchResIs14', name: "模块14", value: 0},
        {key: 'insulatBranchResIs15', name: "模块15", value: 0},
        {key: 'insulatBranchResIs16', name: "模块16", value: 0},
      ]
    computed: {
        updateTime() {
            let recordTime = this.info.recordTime;
            return recordTime ? recordTime : "2020-01-01 00:00:00";
        },
        batteryNumber() {
            let number = this.info.insulatFaultNum;
            return number ? number : 0;
        }
    },
    getNegRes() {
      return [
        {key: 'insulatBranchResNe1', name: "模块1", value: 0},
        {key: 'insulatBranchResNe2', name: "模块2", value: 0},
        {key: 'insulatBranchResNe3', name: "模块3", value: 0},
        {key: 'insulatBranchResNe4', name: "模块4", value: 0},
        {key: 'insulatBranchResNe5', name: "模块5", value: 0},
        {key: 'insulatBranchResNe6', name: "模块6", value: 0},
        {key: 'insulatBranchResNe7', name: "模块7", value: 0},
        {key: 'insulatBranchResNe8', name: "模块8", value: 0},
        {key: 'insulatBranchResNe9', name: "模块9", value: 0},
        {key: 'insulatBranchResNe10', name: "模块10", value: 0},
        {key: 'insulatBranchResNe11', name: "模块11", value: 0},
        {key: 'insulatBranchResNe12', name: "模块12", value: 0},
        {key: 'insulatBranchResNe13', name: "模块13", value: 0},
        {key: 'insulatBranchResNe14', name: "模块14", value: 0},
        {key: 'insulatBranchResNe15', name: "模块15", value: 0},
        {key: 'insulatBranchResNe16', name: "模块16", value: 0},
      ]
    mounted() {
        // 设置支路内阻折线图
        this.setResLine();
        this.resize();
        // 添加resize监听事件
        window.addEventListener('resize', this.resize);
    },
    destroyed() {
        // 移除resize监听事件
        window.removeEventListener('resize', this.resize);
    }
  },
  computed: {
    updateTime() {
      let recordTime = this.info.recordTime;
      return recordTime?recordTime:"2020-01-01 00:00:00";
    },
    batteryNumber() {
      let number = this.info.insulatFaultNum;
      return number?number:0;
    }
  },
  mounted() {
    // 设置支路内阻折线图
    this.setResLine();
    this.resize();
    // 添加resize监听事件
    window.addEventListener('resize', this.resize);
  },
  destroyed() {
    // 移除resize监听事件
    window.removeEventListener('resize', this.resize);
  }
}
</script>
<style scoped>
.content-container {
  display: flex;
  height: 100%;
    display: flex;
    height: 100%;
}
.content-wrapper {
  height: 100%;
    height: 100%;
}
.content-wrapper-main {
  flex: 1;
    flex: 1;
}
.content-wrapper.content-wrapper-w360 {
  width: 360px;
    width: 360px;
}
.content-wrapper-w450 {
  width: 450px;
    width: 450px;
}
.h50-percent {
  box-sizing: border-box;
    box-sizing: border-box;
}
.padding0880 {
  box-sizing: border-box;
  padding: 0 8px 8px 0;
    box-sizing: border-box;
    padding: 0 8px 8px 0;
}
.padding0888 {
  box-sizing: border-box;
  padding: 0 8px 8px 8px;
    box-sizing: border-box;
    padding: 0 8px 8px 8px;
}
.padding0088 {
  box-sizing: border-box;
  padding: 0 0 8px 8px;
    box-sizing: border-box;
    padding: 0 0 8px 8px;
}
.circle-pie-chart-container {
  height: 100%;
    height: 100%;
}
.circle-pie-chart-wrapper {
  display: inline-block;
  width: 120px;
  height: 120px;
  vertical-align: middle;
    display: inline-block;
    width: 120px;
    height: 120px;
    vertical-align: middle;
}
.circle-pie-chart-text {
  display: inline-block;
  font-size: 14px;
  vertical-align: middle;
    display: inline-block;
    font-size: 14px;
    vertical-align: middle;
}
.center-content {
  display: flex;
  height: 100%;
  justify-content: center;
  align-items: center;
    display: flex;
    height: 100%;
    justify-content: center;
    align-items: center;
}
.flex-box-content {
  display: flex;
  height: 50%;
  justify-content: center;
  align-items: center;
    display: flex;
    height: 50%;
    justify-content: center;
    align-items: center;
}
.battery-info {
  text-align: left;
  display: inline-block;
    display: flex;
    align-items:center;
    justify-content:center;
    height: 100%;
}
.battery-info-wrapper {
    text-align: center;
}
.battery-icon-wrapper {
  display: inline-block;
  padding: 8px;
  border-radius: 50%;
    display: inline-block;
    border-radius: 50%;
}
.battery-icon i {
  font-size: 88px;
  color: transparent;
  background: linear-gradient(to right, #ff9184, #ff3761);
  -webkit-background-clip: text;
}
.battery-text-wrapper {
  display: inline-block;
    font-size: 88px;
    color: transparent;
    background: linear-gradient(to right, #ff9184, #ff3761);
    -webkit-background-clip: text;
}
.text-content {
  font-size: 14px;
    font-size: 14px;
}
.text-value {
  font-size: 24px;
  color: #ff3761;
    font-size: 24px;
    color: #ff3761;
}
.battery-res-pie-wrapper {
    display: inline-block;
    width: 88px;
    height: 88px;
}
</style>
src/pages/dataMager/js/Circle.js
@@ -68,7 +68,7 @@
    }
    clear() {
        let ctx = this.context;
        ctx.clearRect(0, 0, this.width, this.width);
        ctx.clearRect(0, 0, this.width, this.height);
    }
    resize() {
        let el = this.el;
src/pages/dataTest/CircuitDiagram.vue
@@ -123,7 +123,7 @@
                }
            } else if (regEquipType(devId, 'BTS9120')) {      // 交流电网
                rs = "grid";
            } else if (regEquipType(devId, "BTS9605")) {
            } else if (regEquipType(devId, ["BTS9605", "BTS9611"])) {
                rs = "collect";
            }
            return rs;
src/pages/dataTest/realTime.vue
@@ -1058,7 +1058,7 @@
                    dev_id: batt.FBSDeviceId,
                }).then((res) => {
                    let rs = JSON.parse(res.data.result);
                    //console.log(rs);
                    console.log(rs);
                    let outTime = 2 * 60; //设备超时时间(2分钟)
                    let isOutTime = true; //通讯中断        判断设备是否通讯中断    true:中断    false:正常
                    if (rs.code == 1) {
@@ -1082,7 +1082,7 @@
                                this.setEquip61850(data);
                            } else if (regEquipType(dev_id, ["BTS", "BTS9110", "BTS9120"])) {
                                this.setEquipBTS(data);
                            } else if (regEquipType(dev_id, "BTS9605")) {
                            } else if (regEquipType(dev_id, ["BTS9605","BTS9611"])) {
                                this.setEquip9605(data);
                            } else {
                                this.disconnect();
@@ -1902,11 +1902,11 @@
                let batt = this.batt;
                if (regEquipType(batt.FBSDeviceId, "equip61850")) {
                    return "放电参数设置";
                } else if (
                    regEquipType(batt.FBSDeviceId, ["BTS", "BTS9110", "BTS9120", "BTS9605"])
                ) {
                } else if (regEquipType(batt.FBSDeviceId, ["BTS", "BTS9110", "BTS9120", "BTS9605"])) {
                    return "BTS设备放电参数设置";
                } else {
                }else if(regEquipType(batt.FBSDeviceId, ["BTS9611", "BTS9605"])){
          return "内阻测试";
        } else {
                    return "未知设备(待开发)";
                }
            },