longyvfengyun
2022-04-01 8415b2c3b3887a2555825016f845ddf13faeb5c2
内容提交
10个文件已修改
4个文件已添加
737 ■■■■ 已修改文件
src/assets/js/const/const_devType.js 232 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/tools/regEquipType.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/PageHeader.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/params/BTS/DischargeParams.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/params/DischargeDialogContent.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataTest/CircuitDiagram.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataTest/components/bmsInfo.vue 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataTest/components/lithiumPackTab.vue 243 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataTest/components/monLithiumPack/images/active.png 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataTest/components/monLithiumPack/images/normal.png 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataTest/components/monLithiumPack/index.vue 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataTest/diagrams/lithium/index.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataTest/history.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataTest/realTime.vue 135 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/const/const_devType.js
@@ -1,118 +1,122 @@
export default {
    batt: [
        {
            value: 61850,
            label: '61850BTS'
        },
        {
            value: 9100,
            label: 'DCDCBTS'
        },
        {
            value: 9110,
            label: '假负载BTS'
        },
        {
            value: 9120,
            label: '逆变BTS'
        },
        {
            value: 9130,
            label: "锂电BTS"
        },
        {
            value: 71850,
            label: "71850BTS"
        },
        {
            value: 9605,
            label: "9605BTS"
        },
        {
            value: 9611,
            label: "9600显示屏"
        },
        {
            value: 8059,
            label: "充放电一体机"
        },
        {
            value: 3100,
            label: "储能设备"
        },
        {
            value: 4019,
            label: "LD9设备"
        },
        {
            value: 9606,
            label: "皮特设备"
        }
    ],
    power: [
        {
            value: 110,
            label: "国网电源系统",
        },
        {
            value: 115,
            label: "南网电源系统",
        },
        {
            value: 111,
            label: "绝缘装置",
        },
        {
            value: 112,
            label: "充电机",
        },
        {
            value: 113,
            label: "空调系统",
        },
        {
            value: 114,
            label: "视频系统",
        },
    ],
    agreements: {
        power: [
            {
                label: "ZJDY",
                value: "ZJDY"
            }
        ],
        battery: [
            {
                label: "ZJDYBTSE",
                value: "ZJDYBTSE"
            },
            {
                label: "ZJDYBTSE2",
                value: "ZJDYBTSE2"
            }
        ],
        video: [
            {
                label: "ZJDYVIDEO",
                value: "ZJDYVIDEO"
            }
        ],
        air: [
            {
                label: "ZJDYAIR",
                value: "ZJDYAIR"
            }
        ]
  batt: [
    {
      value: 61850,
      label: '61850BTS'
    },
    moduleNames: [
        {
            label: "模块1",
            value: "ZJDYBTSE"
        },
        {
            label: "模块2",
            value: "ZJDYBTSE2"
        }
    {
      value: 9100,
      label: 'DCDCBTS'
    },
    {
      value: 9110,
      label: '假负载BTS'
    },
    {
      value: 9120,
      label: '逆变BTS'
    },
    {
      value: 9130,
      label: "锂电BTS"
    },
    {
      value: 71850,
      label: "71850BTS"
    },
    {
      value: 9605,
      label: "9605BTS"
    },
    {
      value: 9611,
      label: "9600显示屏"
    },
    {
      value: 8059,
      label: "充放电一体机"
    },
    {
      value: 3100,
      label: "储能设备"
    },
    {
      value: 4019,
      label: "LD9设备"
    },
    {
      value: 9606,
      label: "皮特设备"
    },
    {
      value: 9131,
      label: "锂电池包"
    },
  ],
  power: [
    {
      value: 110,
      label: "国网电源系统",
    },
    {
      value: 115,
      label: "南网电源系统",
    },
    {
      value: 111,
      label: "绝缘装置",
    },
    {
      value: 112,
      label: "充电机",
    },
    {
      value: 113,
      label: "空调系统",
    },
    {
      value: 114,
      label: "视频系统",
    },
  ],
  agreements: {
    power: [
      {
        label: "ZJDY",
        value: "ZJDY"
      }
    ],
    battery: [
      {
        label: "ZJDYBTSE",
        value: "ZJDYBTSE"
      },
      {
        label: "ZJDYBTSE2",
        value: "ZJDYBTSE2"
      }
    ],
    video: [
      {
        label: "ZJDYVIDEO",
        value: "ZJDYVIDEO"
      }
    ],
    air: [
      {
        label: "ZJDYAIR",
        value: "ZJDYAIR"
      }
    ]
  },
  moduleNames: [
    {
      label: "模块1",
      value: "ZJDYBTSE"
    },
    {
      label: "模块2",
      value: "ZJDYBTSE2"
    }
  ]
};
src/assets/js/tools/regEquipType.js
@@ -22,9 +22,10 @@
        isolating: /^111/,
        charger: /^112/,
        air: /^113/,
        aio0: /^8060/,
        aio: /^8059/,
        lithium: /^9130/,
        aio0: /^8060/,      // 二期一体机
        aio: /^8059/,       // 一期一体机
        lithium: /^9130/,   // 锂电池
        lithiumPack: /^9131/, // 锂电池包
        storage: /^3100/
    };
    let effectPtns = [];
src/components/PageHeader.vue
@@ -1210,7 +1210,6 @@
    initPageConfig() {
      this.$apis.pageSetting.realTime.getRealTabsConfig().then(res=>{
        let rs = JSON.parse(res.data.result);
        console.log(rs);
        // 设置pageConfig
        this.$store.dispatch('user/changeRealTabsConfig', rs.data);
      }).catch(error=>{
src/components/params/BTS/DischargeParams.vue
@@ -188,6 +188,10 @@
          rules.GroupVol_Low.min = (16*batt.MonVolStd*0.875).toHold(1);
          rules.GroupVol_Low.max = (16*batt.MonVolStd*1.125).toHold(1);
          rules.GroupVol_Low.msg = "取值范围"+rules.GroupVol_Low.min+"~"+rules.GroupVol_Low.max+"(保留一位小数)";
        }else if(regEquipType(batt.FBSDeviceId, "lithiumPack")) {
          rules.GroupVol_Low.min = (48*0.875).toHold(1);
          rules.GroupVol_Low.max = (48*1.125).toHold(1);
          rules.GroupVol_Low.msg = "取值范围"+rules.GroupVol_Low.min+"~"+rules.GroupVol_Low.max+"(保留一位小数)";
        }else {
          rules.GroupVol_Low.min = (batt.MonCount*batt.MonVolStd*0.875).toHold(1);
          rules.GroupVol_Low.max = (batt.MonCount*batt.MonVolStd*1.125).toHold(1);
src/components/params/DischargeDialogContent.vue
@@ -60,6 +60,7 @@
        "BTS9110",
        "BTS9120",
        "lithium",
        "lithiumPack"
      ]);
    },
    reg9605() {
src/pages/dataTest/CircuitDiagram.vue
@@ -190,7 +190,7 @@
        rs = "grid";
      } else if (regEquipType(devId, ["BTS9605", "BTS9611"])) {
        rs = "collect";
      } else if (regEquipType(devId, ["lithium"])) {
      } else if (regEquipType(devId, ["lithium", "lithiumPack"])) {
        rs = "lithium";
      }else if(regEquipType(devId, "LD9")) {
        rs = "ld9"
src/pages/dataTest/components/bmsInfo.vue
@@ -10,10 +10,9 @@
          <div class="mon-vol-bar">
            <flex-box title="单体电压" size="mini">
              <el-select v-model="group" slot="tools" size="mini" @change="changeGroup">
                <el-option :value="0" label="组1"></el-option>
                <el-option :value="1" label="组2"></el-option>
                <el-option :value="2" label="组3"></el-option>
                <el-option :value="3" label="组4"></el-option>
                <el-option
                    v-for="(item, key) in packList" :key="'key'+key"
                    :value="item.value" :label="item.label"></el-option>
              </el-select>
              <divide-bar ref="monVol" name="单体电压" unit="V"></divide-bar>
            </flex-box>
@@ -385,9 +384,25 @@
        },
      ],
      junhengStateCode: [],
      packList: [],
    }
  },
  methods: {
    /**
     * 设置电池包列表
     * @param num 电池包的个数
     */
    setPackList(num) {
      let list = [];
      num = num?num:4;
      for(let i=0; i<num; i++) {
        list.push({
          value: i,
          label: "锂电池包"+(i+1)
        })
      }
      this.packList = list;
    },
    resize() {
      this.$nextTick(()=>{
        // 单体电压图表
@@ -427,6 +442,7 @@
      let batt = this.batt;
      let searchParams = {
        devId: batt.FBSDeviceId,
        groupNum: batt.GroupIndexInFBSDevice
      };
      // 查询后台
      this.$apis.dcdc.getDcDcAnalogParams(searchParams).then(res=>{
@@ -438,6 +454,9 @@
        if(rs.code == 1) {
          data = rs.data;
        }
        console.log(rs);
        this.setPackList(data.length);
        // 格式化并并设置数据
        this.formatData(data);
      }).catch(error=>{
@@ -595,6 +614,7 @@
    }
  },
  mounted() {
    this.setPackList();
    let list = getDCDCWarnParams().list;
    // 单体电压告警
    let monVolWarnKey = [];
src/pages/dataTest/components/lithiumPackTab.vue
New file
@@ -0,0 +1,243 @@
<template>
  <div class="module-wrapper"
       v-loading="loading"
       element-loading-text="拼命加载中"
       element-loading-spinner="el-icon-loading"
       element-loading-background="rgba(0, 0, 0, 0.2)">
    <div class="module-content-item">
      <layout-box>
        <div class="ele-mon-pack">
          <flex-box title="锂电池包" size="mini">
            <el-row :span="16">
              <el-col :span="8" v-for="(item, key) in list" :key="'key'+key">
                <mon-lithium-pack :info="item" @click="changPack"></mon-lithium-pack>
              </el-col>
            </el-row>
          </flex-box>
        </div>
      </layout-box>
    </div>
    <div class="module-content-item">
      <layout-box>
        <div class="layout-content">
          <div class="mon-vol-bar">
            <flex-box title="单体电压" size="mini">
              <divide-bar ref="monVol" name="单体电压" unit="V"></divide-bar>
            </flex-box>
          </div>
          <div class="mon-temp-bar">
            <flex-box title="单体温度" size="mini">
              <divide-bar ref="monTemp" name="单体温度" unit="℃"></divide-bar>
            </flex-box>
          </div>
        </div>
      </layout-box>
    </div>
  </div>
</template>
<script>
import LayoutBox from "@/pages/dataTest/components/layout-box";
import FlexBox from "@/components/FlexBox";
import DivideBar from "@/components/myCharts/DivideBar";
import {getValByKey} from "@/assets/js/tools";
import MonLithiumPack from "@/pages/dataTest/components/monLithiumPack";
export default {
  name: "lithiumPackTab",
  components: {
    MonLithiumPack,
    DivideBar,
    LayoutBox,
    FlexBox
  },
  props: {
    changeFlag: {
      type: Number,
      default: 0,
    },
    update: {
      type: Boolean,
      default: false,
    },
    monVols: {
      type: Array,
      default() {
        return []
      }
    },
    monTemps: {
      type: Array,
      default() {
        return []
      },
    },
  },
  data() {
    return {
      loading: false,
      list: [],
      monNum: 16,
      packNum: 20
    }
  },
  watch: {
    changeFlag() {
      this.setMonData();
    },
    update() {
      this.setMonData();
    }
  },
  methods: {
    resize() {
      this.$nextTick(()=>{
        // 单体电压图表
        if(this.$refs.monVol) {
          this.$refs.monVol.resize();
        }
        // 单体温度图表
        if (this.$refs.monTemp) {
          this.$refs.monTemp.resize();
        }
      });
    },
    /**
     * 切换锂电池包
     * @param item
     */
    changPack(item) {
      this.clearActivePack();
      this.$nextTick(()=>{
        item.active = true;
      });
      this.loading = true;
      setTimeout(()=>{
        this.loading = false;
        this.setMonData();
      }, 1000)
    },
    clearActivePack() {
      for(let i=0; i<this.list.length; i++) {
        this.list[i].active = false;
      }
    },
    setMonPackData() {
      // 设置锂电池包
      for(let i=0; i<this.packNum; i++) {
        this.list.push({
          num: (i+1),
          active: false
        });
      }
      this.list[0].active = true;
    },
    setMonData() {
      if(!this.update && !this.loading) {
        return;
      }
      let activeNum = this.getActiveNum();
      let monNum = this.monNum;
      let monVols = [];
      for(let i=1; i<321; i++) {
        monVols.push(i);
      }
      // 单体电压
      let monVolValues = this.getValues(this.monVols, activeNum, monNum);
      let monVol = {
        xLabel: [],
        sData: []
      };
      for(let i=0; i<monVolValues.length; i++) {
        monVol.xLabel.push("单体"+(i+1));
        monVol.sData.push(monVolValues[i]);
      }
      if(this.$refs.monVol) {
        this.$refs.monVol.setData(monVol);
      }
      let monTemps = [];
      for(let i=1; i<321; i++) {
        monTemps.push(i);
      }
      // 单体温度
      let monTempValues = this.getValues(this.monTemps, activeNum, monNum);
      let monTemp = {
        xLabel: [],
        sData: []
      };
      for(let i=0; i<monTempValues.length; i++) {
        monTemp.xLabel.push("单体"+(i+1));
        monTemp.sData.push(monTempValues[i]);
      }
      if(this.$refs.monTemp) {
        this.$refs.monTemp.setData(monTemp);
      }
    },
    /**
     * 获取激活的电池包
     * @returns {number}
     */
    getActiveNum() {
      let list = this.list;
      let num = 0;
      for(let i=0; i<list.length; i++) {
        if(list[i].active) {
          num = list[i].num;
          break;
        }
      }
      return num-1;
    },
    getValues(list, activeNum, monNum) {
      let values = [];
      for(let i=activeNum*monNum; i<activeNum*monNum+monNum; i++) {
        values.push(list[i]?list[i]:0);
      }
      return values;
    }
  },
  mounted() {
    this.setMonPackData();
    this.setMonData();
  }
}
</script>
<style scoped>
.module-wrapper {
  display: flex;
  width: 100%;
  height: 100%;
  flex-direction: row;
  box-sizing: border-box;
}
.module-content-item{
  flex: 1;
  height: 100%;
  overflow-x: hidden;
  margin-right: 8px;
}
.layout-content {
  box-sizing: border-box;
  padding: 12px 16px 16px 16px;
  height: 100%;
}
.mon-vol-bar,
.mon-temp-bar {
  box-sizing: border-box;
  height: 50%;
}
.mon-vol-bar {
  padding-bottom: 8px;
}
.mon-temp-bar {
  padding-top: 8px;
}
.ele-mon-pack {
  box-sizing: border-box;
  padding: 12px 16px 16px 16px;
  height: 100%;
}
</style>
src/pages/dataTest/components/monLithiumPack/images/active.png
src/pages/dataTest/components/monLithiumPack/images/normal.png
src/pages/dataTest/components/monLithiumPack/index.vue
New file
@@ -0,0 +1,75 @@
<template>
  <div class="mon-lithium-pack" :class="{'active': info.active}" @click="handleClick">
    <div class="lithium-text">锂电池包</div>
    <div class="lithium-value">{{info.num}}</div>
  </div>
</template>
<script>
export default {
  name: "monLithiumPack",
  props: {
    info: {
      type: Object,
      default() {
        return {
          num: 1,
          active: false,
        }
      }
    }
  },
  data() {
    return {}
  },
  methods: {
    handleClick() {
      this.$emit('click', this.info);
    }
  }
}
</script>
<style scoped>
.mon-lithium-pack {
  display: inline-block;
  background-image: url("./images/normal.png");
  background-repeat: no-repeat;
  background-size: 100% 100%;
  width: 200px;
  padding-top: 14px;
  padding-bottom: 14px;
  text-align: center;
  margin-left: 16px;
  margin-right: 16px;
  margin-top: 8px;
  margin-bottom: 8px;
  cursor: pointer;
}
.mon-lithium-pack.active {
  background-image: url("./images/active.png");
}
.lithium-text,
.lithium-value {
  display: inline-block;
  color: #020f4a;
  font-weight: bold;
  font-size: 14px;
}
.mon-lithium-pack:hover .lithium-text,
.mon-lithium-pack:hover .lithium-value {
  color: #FFFFFF;
}
.lithium-value {
  width: 18px;
  height: 18px;
  margin-left: 6px;
  font-size: 8px;
  border: 1px solid #020f4a;
  border-radius: 50%;
}
.mon-lithium-pack:hover .lithium-value {
  border: 1px solid #FFFFFF;
}
</style>
src/pages/dataTest/diagrams/lithium/index.vue
@@ -5,7 +5,7 @@
    </div>
    <div class="diagram-stc" ref="static"></div>
    <div class="diagram-flush" ref="flush"></div>
    <div class="diagram-box" :style="dcDcStyle" @click="dialog = true"></div>
    <div class="diagram-box" :style="dcDcStyle" @click="dialog = true" v-if="isLithium"></div>
    <!-- 均衡参数设置 -->
    <el-dialog
      title="DCDC内部数据"
@@ -30,6 +30,7 @@
import circuitDiagram from "./js/circuitDiagram";
import diagramStates from "./js/diagramStates";
import DevStateList from "@/pages/dataTest/components/DevStateList";
import {regEquipType} from "@/assets/js/tools";
let diagram;
export default {
  components: {
@@ -166,6 +167,10 @@
        height: dcdcInfo.height + "px",
      };
    },
    isLithium() {
      let batt = this.batt;
      return regEquipType(batt.FBSDeviceId, ["lithium"]);
    }
  },
  mounted() {
    diagram = circuitDiagram(this.$refs.static, this.$refs.flush);
src/pages/dataTest/history.vue
@@ -300,7 +300,7 @@
            baseURL = baseURL ? baseURL : "";
            return {
                HistoryData: [],
                show_num: 1,
                show_num: 5,
                loading: false,
                isNew: true,
                showComparison: false,
src/pages/dataTest/realTime.vue
@@ -395,6 +395,17 @@
              ></bar-chart>
            </el-tab-pane>
            <el-tab-pane
              key="lithiumPack"
              label="锂电池信息"
              name="lithiumPack" v-if="isLithiumPack">
              <lithium-pack-tab
                ref="lithiumPack"
                :update="acTabs=='lithiumPack'"
                :change-flag="dataChangeFlag"
                :mon-vols="monVols"
                :mon-temps="monTemps"></lithium-pack-tab>
            </el-tab-pane>
            <el-tab-pane
              key="res"
              label="内阻"
              name="res"
@@ -486,7 +497,7 @@
              label="数据表格"
              name="tblData"
              class="el-table-wrapper"
              v-if="pageConfig.tblData"
              v-if="pageConfig.tblData && !isLithiumPack"
            >
              <el-table stripe size="small" :data="table.datas" height="100%" :row-class-name="setTableRowClass">
                <el-table-column
@@ -657,7 +668,7 @@
            <el-tab-pane label="电价统计分析" name="elePrice" v-if="isLithium && pageConfig.elePrice">
              <ele-price-tpl ref="elePriceTpl" :devId="batt.FBSDeviceId" :name="acTabs" :batt="batt"></ele-price-tpl>
            </el-tab-pane>
            <el-tab-pane label="BMS信息" name="bmsInfo" v-if="isLithium" v-show="false">
            <el-tab-pane label="BMS信息" name="bmsInfo" v-if="isLithium || isLithiumPack" v-show="false">
              <bms-info ref="bmsInfo" :batt="batt" :real-update="acTabs=='bmsInfo'"></bms-info>
            </el-tab-pane>
          </el-tabs>
@@ -932,12 +943,14 @@
import BmsInfo from "@/pages/dataTest/components/bmsInfo";
import AutoCheck from "@/pages/dataTest/dialogs/autoCheck";
import const_9120 from "@/assets/js/const/const_9120";
import LithiumPackTab from "@/pages/dataTest/components/lithiumPackTab";
/* import moment from "moment"; */
let vol, resChart, temp, conduct, currChart, leakVol, monConnRes;
let tblData = [];
export default {
  components: {
    LithiumPackTab,
    AutoCheck,
    stopOutlineCuring,
    BmsInfo,
@@ -1489,7 +1502,14 @@
      lithiumParams: {
        analog: lithiumInfo.analog().params,
      },
      buscoupleSwitch: 0,   // 空开状态 0-断开 1-闭合
      // 空开状态 0-断开 1-闭合
      buscoupleSwitch: 0,
      // 数据更新标识
      dataChangeFlag: 0,
      // 单体电压信息
      monVols: [],
      // 单体温度信息
      monTemps: [],
    };
  },
  methods: {
@@ -1550,6 +1570,8 @@
        this.$refs.elePriceTpl.resize();
      } else if(this.acTabs == "bmsInfo") {
        this.$refs.bmsInfo.resize();
      }else if(this.acTabs == "lithiumPack") {
        this.$refs.lithiumPack.resize();
      }else {
        this.$G.chartManage.resize(this.acTabs);
      }
@@ -1777,9 +1799,11 @@
            this.inversionData(),
          ])
          .then(() => {
            this.dataChangeFlag = Math.random(); // 数据更新
            this.timer.open();
          })
          .catch(() => {
            this.dataChangeFlag = Math.random(); // 数据更新
            this.timer.open();
          });
      }, 3000);
@@ -1941,11 +1965,11 @@
          list = list.map(item=>{
            return (Number(item)-Math.abs(rsa.data[0].batt_test_cap)).toHold(1);
          }).join(",");
          console.log("*******");
          console.log("标准曲线实际容量:"+rsa.data[0].stationId);
          console.log("标准曲线剩余容量:"+list);
          console.log("旧算法剩余容量:"+rsa.data[0].batt_rest_cap);
          console.log("*******");
          // console.log("*******");
          // console.log("标准曲线实际容量:"+rsa.data[0].stationId);
          // console.log("标准曲线剩余容量:"+list);
          // console.log("旧算法剩余容量:"+rsa.data[0].batt_rest_cap);
          // console.log("*******");
          this.inputs.list = list;
        }
      });
@@ -2032,8 +2056,8 @@
          this.setEquipBase(data);
          // 判断是否超时
          var nowTime = new Date(data.note).getTime(); //当前时间
          var record = new Date(data.record_datetime).getTime();
          let nowTime = new Date(data.note).getTime(); //当前时间
          let record = new Date(data.record_datetime).getTime();
          if (Math.abs(nowTime - record) / 1000 > outTime) {
            this.disconnect();
          } else {
@@ -2044,7 +2068,7 @@
            if (regEquipType(dev_id, "equip61850")) {
              this.setEquip61850(data);
            } else if (
              regEquipType(dev_id, ["BTS", "BTS9110", "BTS9120", "lithium", "LD9"])
              regEquipType(dev_id, ["BTS", "BTS9110", "BTS9120", "lithium", "LD9", "lithiumPack"])
            ) {
              this.setEquipBTS(data);
            } else if (regEquipType(dev_id, ["BTS9605", "BTS9611"])) {
@@ -2451,6 +2475,12 @@
            return ["#" + item.mon_num, value];
          });
        }
        // 设置电压值
        this.monVols = volTempVol.map(item=>{
          return item[1];
        });
        let volBarNum = getBarNum(volTempVol);
        vol.title.text =
          "最大值=" +
@@ -2489,6 +2519,10 @@
            return ["#" + item.mon_num, value];
          });
        }
        this.monTemps = volTempte.map(item=>{
          return item[1];
        });
        let tempBarNum = getBarNum(volTempte);
        temp.title.text =
          "最大值=" +
@@ -2630,6 +2664,7 @@
              "BTS9120",
              "BTS9605",
              "lithium",
              "lithiumPack"
            ])
          ) {
            // 停止设备
@@ -2864,15 +2899,16 @@
     */
    getLithiumAnalog() {
      let batt = this.batt;
      let isLithium = regEquipType(batt.FBSDeviceId, ["lithium"]);
      let isLithium = regEquipType(batt.FBSDeviceId, ["lithium", "lithiumPack"]);
      if (isLithium) {
        this.$apis.dcdc
          .getDcDcAnalogParams({
            devId: batt.FBSDeviceId,
            groupNum: batt.GroupIndexInFBSDevice
          })
          .then((res) => {
            let rs = JSON.parse(res.data.result);
            if (rs.code == 1) {
            if (rs.code == 1 && rs.data.length != 0) {
              // 剩余容量进行累加
              let restCap = 0;
              rs.data.map(item=>{
@@ -3244,7 +3280,7 @@
      }
      // 如果当前为锂电池
      let isLithium = regEquipType(batt.FBSDeviceId, ["lithium"]);
      let isLithium = regEquipType(batt.FBSDeviceId, ["lithium", "lithiumPack"]);
      if (isLithium) {
        list.batt_syrl_cap =
          this.lithiumParams.analog.restCap.toFixed(1) + "AH";
@@ -3276,6 +3312,7 @@
          "BTS9120",
          "BTS9605",
          "lithium",
          "lithiumPack"
        ])
      ) {
        return "BTS设备放电参数设置";
@@ -3322,6 +3359,11 @@
      let batt = this.batt;
      return regEquipType(batt.FBSDeviceId, ["lithium"]);
    },
    isLithiumPack() {
      // 锂电包
      let batt = this.batt;
      return regEquipType(batt.FBSDeviceId, ["lithiumPack"]);
    },
    isLd9() {
      // LD9BTS
      let batt = this.batt;
@@ -3335,25 +3377,52 @@
    tabsConfig() {
      let batt = this.batt;
      let isLithium = regEquipType(batt.FBSDeviceId, ["lithium"]);
      let vol = true;
      let res = !isLithium;
      let temp = true;
      let conduct = !isLithium;
      let curr = !isLithium;
      let leakVol = !isLithium;
      let dianchigaojing = !isLithium;
      let monConnRes = !isLithium;
      return {
        vol: vol,
        res: res,
        temp: temp,
        conduct: conduct,
        curr: curr,
        leakVol: leakVol,
        dianchigaojing: dianchigaojing,
        monConnRes: monConnRes,
      };
      let isLithiumPack = regEquipType(batt.FBSDeviceId, ["lithiumPack"]);
      if(isLithium) {
        return {
          vol: true,
          res: false,
          temp: true,
          conduct: false,
          curr: false,
          leakVol: false,
          dianchigaojing: false,
          monConnRes: false,
        }
      }else if(isLithiumPack) {
        return {
          vol: false,
          res: false,
          temp: false,
          conduct: false,
          curr: false,
          leakVol: false,
          dianchigaojing: false,
          monConnRes: false,
        }
      }else if(!batt.FBSDeviceId) {
        return {
          vol: false,
          res: false,
          temp: false,
          conduct: false,
          curr: false,
          leakVol: false,
          dianchigaojing: false,
          monConnRes: false,
        }
      }else {
        return {
          vol: true,
          res: true,
          temp: true,
          conduct: true,
          curr: true,
          leakVol: true,
          dianchigaojing: true,
          monConnRes: true,
        }
      }
    },
    isTestDev() {
      let batt = this.batt;