he wei
2025-03-20 e4fd81e0e31914f5d93624d0f348929f24cb9f43
UA 6186 6286 添加读取设置设备告警参数
5个文件已修改
2个文件已添加
661 ■■■■■ 已修改文件
src/assets/js/const/const_6186.js 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/const/const_devType.js 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/tools/regEquipType.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dataTest/components/DevAlarmParams6186.vue 440 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dataTest/js/devAlaramParams.js 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dataTest/movingRingSystem/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dataTest/realTime6186.vue 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/const/const_6186.js
New file
@@ -0,0 +1,127 @@
export default {
  paramsRules: {
    groupvolHighVal: {
      // 组端电压高阈值
      pattern: /^[0-9]{1,3}(\.[0-9]{0,1})?$/,
      regVal: true,
      min: 0,
      max: 999,
      msg: "取值范围0~999(保留一位小数)",
    },
    groupvolLowVal: {
      // 组端电压低阈值
      pattern: /^[0-9]{1,3}(\.[0-9]{0,1})?$/,
      regVal: true,
      min: 0,
      max: 999,
      msg: "取值范围0~999(保留一位小数)",
    },
    moncapHighVal: {
      // 单体容量高阈值
      pattern: /^[0-9]{1,4}$/,
      regVal: true,
      min: 0,
      max: 9999,
      msg: "取值范围0~9999(整数)",
    },
    moncapLowVal: {
      // 单体容量低阈值
      pattern: /^[0-9]{1,4}$/,
      regVal: true,
      min: 0,
      max: 9999,
      msg: "取值范围0~9999(整数)",
    },
    monresHighVal: {
      // 单体内阻高阈值
      pattern: /^[0-9]{1,3}(\.[0-9]{0,3})?$/,
      regVal: true,
      min: 0,
      max: 999,
      msg: "取值范围0~999(保留三位小数)",
    },
    monresLowVal: {
      // 单体内阻低阈值
      pattern: /^[0-9]{1,3}(\.[0-9]{0,3})?$/,
      regVal: true,
      min: 0,
      max: 999,
      msg: "取值范围0~999(保留三位小数)",
    },
    montmpHighVal: {
      // 单体温度高阈值
      pattern: /^-?[0-9]{1,3}(\.[0-9]{0,1})?$/,
      regVal: true,
      min: -10,
      max: 999,
      msg: "取值范围-10~999(保留一位小数)",
    },
    montmpLowVal: {
      // 单体温度低阈值
      pattern: /^-?[0-9]{1,3}(\.[0-9]{0,1})?$/,
      regVal: true,
      min: -10,
      max: 999,
      msg: "取值范围-10~999(保留一位小数)",
    },
    monvolHighVal: {
      // 单体电压高阈值
      pattern: /^[0-9]{1,3}(\.[0-9]{0,3})?$/,
      regVal: true,
      min: 0,
      max: 999,
      msg: "取值范围0~999(保留三位小数)",
    },
    monvolLowVal: {
      // 单体电压低阈值
      pattern: /^[0-9]{1,3}(\.[0-9]{0,3})?$/,
      regVal: true,
      min: 0,
      max: 999,
      msg: "取值范围0~999(保留三位小数)",
    },
    onlinevolHighVal: {
      // 在线电压高阈值
      pattern: /^[0-9]{1,3}(\.[0-9]{0,1})?$/,
      regVal: true,
      min: 0,
      max: 999,
      msg: "取值范围0~999(保留一位小数)",
    },
    onlinevolLowVal: {
      // 在线电压低阈值
      pattern: /^[0-9]{1,3}(\.[0-9]{0,1})?$/,
      regVal: true,
      min: 0,
      max: 999,
      msg: "取值范围0~999(保留一位小数)",
    },
    monomerLowCount: {
      // 单体下限个数
      pattern: /^[0-9]{1,3}$/,
      regVal: true,
      min: 0,
      max: 240,
      msg: "取值范围0~240(整数)",
    },
    discurrHighVal: {
      // 放电电流上限阈值
      pattern: /^[0-9]{1,3}(\.[0-9]{0,1})?$/,
      regVal: true,
      min: 0,
      max: 999,
      msg: "取值范围0~999(保留一位小数)",
    },
    chrcurrHighVal: {
      // 充电电流上限阈值
      pattern: /^[0-9]{1,3}(\.[0-9]{0,1})?$/,
      regVal: true,
      min: 0,
      max: 999,
      msg: "取值范围0~999(保留一位小数)",
    },
  },
};
src/assets/js/const/const_devType.js
@@ -279,6 +279,40 @@
      ],
    },
    {
      value: 6286,
      label: "61850假负载-Z(485)",
      tabList: [
        {
          label: '电路拓扑图',
          name: 'eleLine'
        },
        {
          label: '电压',
          name: 'vol'
        },
        {
          label: '内阻',
          name: 'res'
        },
        {
          label: '温度',
          name: 'temp'
        },
        {
          label: '均衡电流',
          name: 'curr'
        },
        {
          label: '数据表格',
          name: 'tblData'
        },
        {
          label: '资产信息',
          name: 'asset'
        },
      ],
    },
    {
      value: 6187,
      label: "61850逆变",
    },
src/assets/js/tools/regEquipType.js
@@ -36,6 +36,7 @@
        fbo4831: /^4831/,
        // 61850假负载-Z
        fbo6186: /^6186/,
        fbo6286: /^6286/,
        // 61850逆变
        fbo6187: /^6187/,
        // 61850假负载-L
src/views/dataTest/components/DevAlarmParams6186.vue
New file
@@ -0,0 +1,440 @@
<script>
import {
  get6186Alarm,
  set6186Alarm,
} from "@/views/dataTest/js/devAlaramParams";
import { testVal } from "@/assets/js/tools";
import const_6186 from "@/assets/js/const/const_6186";
const { paramsRules } = const_6186;
export default {
  name: "DevAlarmParams",
  props: {
    batt: {
      type: Object,
      default() {
        return {};
      },
    },
    visible: {
      type: Boolean,
      default: false,
    },
  },
  data() {
    const validFn = (propName, rule, value, callback) => [
      {
        validator(rule, value, callback) {
          testVal(rule, value, callback, paramsRules[propName]);
        },
        trigger: ["change", "blur"],
      },
    ];
    return {
      isCanSet: false,
      layout: {
        span: 8,
        gutter: 16,
      },
      params: {
        devId: 0, // 设备ID
        groupvolHighVal: 0, // 组端电压高阈值
        groupvolLowVal: 0, // 组端电压低阈值
        moncapHighVal: 0, // 单体容量高阈值
        moncapLowVal: 0, // 单体容量低阈值
        monresHighVal: 0, // 单体内阻高阈值
        monresLowVal: 0, // 单体内阻低阈值
        montmpHighVal: 0, // 单体温度高阈值
        montmpLowVal: 0, // 单体温度低阈值
        monvolHighVal: 0, // 单体电压高阈值
        monvolLowVal: 0, // 单体电压低阈值
        battgroupnum: 1,
        groupvolEn: 0,
        monvolEn: 0,
        montmpEn: 0,
        monresEn: 0,
        moncapEn: 0,
        onlinevolHighVal: 0,
        onlinevolLowVal: 0,
        onlinevolEn: 0,
        discurrHighVal: 0,
        discurrEn: 0,
        chrcurrHighVal: 0,
        chrcurrEn: 0,
        num: 0,
        opCmd: 0, // 操作命令
      },
      rules: {
        groupvolHighVal: validFn("groupvolHighVal"),
        groupvolLowVal: validFn("groupvolLowVal"),
        moncapHighVal: validFn("moncapHighVal"),
        moncapLowVal: validFn("moncapLowVal"),
        monresHighVal: validFn("monresHighVal"),
        monresLowVal: validFn("monresLowVal"),
        montmpHighVal: validFn("montmpHighVal"),
        montmpLowVal: validFn("montmpLowVal"),
        monvolHighVal: validFn("monvolHighVal"),
        monvolLowVal: validFn("monvolLowVal"),
        onlinevolHighVal: validFn("onlinevolHighVal"),
        onlinevolLowVal: validFn("onlinevolLowVal"),
        discurrHighVal: validFn("discurrHighVal"),
        chrcurrHighVal: validFn("chrcurrHighVal"),
      },
    };
  },
  computed: {
    groupvolEnChecked: {
      get() {
        return this.params.groupvolEn == 0;
      },
      set(val) {
        this.params.groupvolEn = val ? 0 : 1;
      },
    },
    monvolEnChecked: {
      get() {
        return this.params.monvolEn == 0;
      },
      set(val) {
        this.params.monvolEn = val ? 0 : 1;
      },
    },
    montmpEnChecked: {
      get() {
        return this.params.montmpEn == 0;
      },
      set(val) {
        this.params.montmpEn = val ? 0 : 1;
      },
    },
    monresEnChecked: {
      get() {
        return this.params.monresEn == 0;
      },
      set(val) {
        this.params.monresEn = val ? 0 : 1;
      },
    },
    moncapEnChecked: {
      get() {
        return this.params.moncapEn == 0;
      },
      set(val) {
        this.params.moncapEn = val ? 0 : 1;
      },
    },
    onlinevolEnChecked: {
      get() {
        return this.params.onlinevolEn == 0;
      },
      set(val) {
        this.params.onlinevolEn = val ? 0 : 1;
      },
    },
    discurrEnChecked: {
      get() {
        return this.params.discurrEn == 0;
      },
      set(val) {
        this.params.discurrEn = val ? 0 : 1;
      },
    },
    chrcurrEnChecked: {
      get() {
        return this.params.chrcurrEn == 0;
      },
      set(val) {
        this.params.chrcurrEn = val ? 0 : 1;
      },
    },
  },
  methods: {
    async getParams() {
      let batt = this.batt;
      this.isCanSet = false;
      let loading = this.$layer.loading();
      try {
        let groupnum = batt.groupIndexInFBSDevice + 1;
        let res = await get6186Alarm(batt.fbsdeviceId, groupnum);
        this.$layer.close(loading);
        let rs = res.data;
        if (rs.code === 1 && rs.data) {
          this.isCanSet = true;
          this.$message.success("读取成功");
          this.params = rs.data2;
        } else {
          this.isCanSet = false;
          this.$message.warning("读取异常");
        }
      } catch (e) {
        this.$layer.close(loading);
        this.isCanSet = false;
        console.log(e);
        this.$message.error(e);
      }
    },
    async setParams() {
      let params = {...this.params};
      // Object.keys(this.params).forEach((key) => {
      //   if (/En$/.test(key)) {
      //     params[key] = this.params[key] ? 0 : 1;
      //   } else {
      //     params[key] = this.params[key];
      //   }
      // });
      let loading = this.$layer.loading();
      try {
        let res = await set6186Alarm(params);
        this.$layer.close(loading);
        let rs = res.data;
        if (rs.code === 1 && rs.data) {
          this.$message.success("设置成功");
        } else {
          this.$message.warning("设置失败");
        }
      } catch (e) {
        this.$layer.close(loading);
        console.log(e);
        this.$message.error(e);
      }
    },
    close() {
      this.$emit("update:visible", false);
    },
  },
  mounted() {
    this.getParams();
  },
};
</script>
<template>
  <div class="dev-alarm-params">
    <el-form
      ref="ruleForm"
      size="mini"
      label-position="top"
      :model="params"
      :rules="rules"
      class="params-dialog"
    >
      <el-form-item label="机房名称" prop="stationName">
        <el-input
          placeholder="请输入机房名称"
          v-model="batt.stationName"
          readonly="readonly"
        >
        </el-input>
      </el-form-item>
      <el-row :gutter="layout.gutter">
        <el-col :span="layout.span">
          <el-form-item label="组端电压高阈值" prop="groupvolHighVal">
            <el-input
              placeholder="请输入组端电压高阈值"
              v-model="params.groupvolHighVal"
            >
            </el-input>
          </el-form-item>
        </el-col>
        <el-col :span="layout.span">
          <el-form-item label="组端电压低阈值" prop="groupvolLowVal">
            <el-input
              placeholder="请输入组端电压低阈值"
              v-model="params.groupvolLowVal"
            >
            </el-input>
          </el-form-item>
        </el-col>
        <el-col :span="layout.span">
          <el-form-item label="组端电压告警使能" prop="groupvolEn">
            <el-checkbox v-model="groupvolEnChecked" />
          </el-form-item>
        </el-col>
        <el-col :span="layout.span">
          <el-form-item label="单体容量高阈值" prop="moncapHighVal">
            <el-input
              placeholder="请输入单体容量高阈值"
              v-model="params.moncapHighVal"
            >
            </el-input>
          </el-form-item>
        </el-col>
        <el-col :span="layout.span">
          <el-form-item label="单体容量低阈值" prop="moncapLowVal">
            <el-input
              placeholder="请输入单体容量低阈值"
              v-model="params.moncapLowVal"
            >
            </el-input>
          </el-form-item>
        </el-col>
        <el-col :span="layout.span">
          <el-form-item label="单体容量告警使能" prop="moncapEn">
            <el-checkbox v-model="moncapEnChecked" />
          </el-form-item>
        </el-col>
        <el-col :span="layout.span">
          <el-form-item label="单体内阻高阈值" prop="monresHighVal">
            <el-input
              placeholder="请输入单体内阻高阈值"
              v-model="params.monresHighVal"
            >
            </el-input>
          </el-form-item>
        </el-col>
        <el-col :span="layout.span">
          <el-form-item label="单体内阻低阈值" prop="monresLowVal">
            <el-input
              placeholder="请输入单体内阻低阈值"
              v-model="params.monresLowVal"
            >
            </el-input>
          </el-form-item>
        </el-col>
        <el-col :span="layout.span">
          <el-form-item label="单体内阻告警使能" prop="monresEn">
            <el-checkbox v-model="monresEnChecked" />
          </el-form-item>
        </el-col>
        <el-col :span="layout.span">
          <el-form-item label="单体温度高阈值" prop="montmpHighVal">
            <el-input
              placeholder="请输入单体温度高阈值"
              v-model="params.montmpHighVal"
            >
            </el-input>
          </el-form-item>
        </el-col>
        <el-col :span="layout.span">
          <el-form-item label="单体温度低阈值" prop="montmpLowVal">
            <el-input
              placeholder="请输入单体温度低阈值"
              v-model="params.montmpLowVal"
            >
            </el-input>
          </el-form-item>
        </el-col>
        <el-col :span="layout.span">
          <el-form-item label="单体温度告警使能" prop="montmpEn">
            <el-checkbox v-model="montmpEnChecked" />
          </el-form-item>
        </el-col>
        <el-col :span="layout.span">
          <el-form-item label="单体电压高阈值" prop="monvolHighVal">
            <el-input
              placeholder="请输入单体电压高阈值"
              v-model="params.monvolHighVal"
            >
            </el-input>
          </el-form-item>
        </el-col>
        <el-col :span="layout.span">
          <el-form-item label="单体电压低阈值" prop="monvolLowVal">
            <el-input
              placeholder="请输入单体电压低阈值"
              v-model="params.monvolLowVal"
            >
            </el-input>
          </el-form-item>
        </el-col>
        <el-col :span="layout.span">
          <el-form-item label="单体电压告警使能" prop="monvolEn">
            <el-checkbox v-model="monvolEnChecked" />
          </el-form-item>
        </el-col>
        <el-col :span="layout.span">
          <el-form-item label="在线电压高阈值" prop="onlinevolHighVal">
            <el-input
              placeholder="请输入在线电压高阈值"
              v-model="params.onlinevolHighVal"
            >
            </el-input>
          </el-form-item>
        </el-col>
        <el-col :span="layout.span">
          <el-form-item label="在线电压低阈值" prop="onlinevolLowVal">
            <el-input
              placeholder="请输入在线电压低阈值"
              v-model="params.onlinevolLowVal"
            >
            </el-input>
          </el-form-item>
        </el-col>
        <el-col :span="layout.span">
          <el-form-item label="在线电压告警使能" prop="onlinevolEn">
            <el-checkbox v-model="onlinevolEnChecked" />
          </el-form-item>
        </el-col>
        <!-- <el-col :span="layout.span">
          <el-form-item label="电池组组号" prop="battgroupnum">
            <el-select v-model="params.battgroupnum">
              <el-option label="1" :value="1"></el-option>
              <el-option label="2" :value="2"></el-option>
            </el-select>
          </el-form-item>
        </el-col> -->
        <el-col :span="layout.span" :offset="layout.span">
          <el-form-item label="放电电流上限阈值" prop="discurrHighVal">
            <el-input
              placeholder="请输入放电电流上限阈值"
              v-model="params.discurrHighVal"
            >
            </el-input>
          </el-form-item>
        </el-col>
        <el-col :span="layout.span">
          <el-form-item label="放电电流告警使能" prop="discurrEn">
            <el-checkbox v-model="discurrEnChecked" />
          </el-form-item>
        </el-col>
        <el-col :span="layout.span" :offset="layout.span">
          <el-form-item label="充电电流上限阈值" prop="chrcurrHighVal">
            <el-input
              placeholder="请输入充电电流上限阈值"
              v-model="params.chrcurrHighVal"
            >
            </el-input>
          </el-form-item>
        </el-col>
        <el-col :span="layout.span">
          <el-form-item label="充电电流告警使能" prop="chrcurrEn">
            <el-checkbox v-model="chrcurrEnChecked" />
          </el-form-item>
        </el-col>
      </el-row>
      <div class="form-footer">
        <el-button type="primary" size="mini" @click="getParams"
          >读取
        </el-button>
        <el-button
          type="success"
          size="mini"
          :disabled="!isCanSet"
          @click="setParams"
          >设定
        </el-button>
      </div>
    </el-form>
  </div>
</template>
<style scoped>
.dev-alarm-params {
  width: 680px;
  background-color: #ffffff;
  padding: 8px;
}
.form-footer {
  text-align: right;
  margin-bottom: 0;
}
</style>
src/views/dataTest/js/devAlaramParams.js
@@ -23,3 +23,29 @@
    data,
  });
};
/**
 * 根据机房的设备id获取告警参数
 * @param devId
 * @return {AxiosPromise}
 */
export const get6186Alarm = (devId, battgroupnum) => {
  console.log(devId);
  return axios({
    method: "GET",
    url: "dev6185Almparam/get6186Alarm",
    params: {
      devId,
      battgroupnum
    },
  });
};
export const set6186Alarm = (data) => {
  return axios({
    method: "POST",
    url: "dev6185Almparam/set6186Alarm",
    data,
  });
};
src/views/dataTest/movingRingSystem/index.vue
@@ -129,7 +129,7 @@
                            this.$router.push({
                                path: "/dataTest/movingRingSystem/real-time6183/" + dev_id1,
                            });
                        } else if (regEquipType(dev_id1, "fbo6186")) {
                        } else if (regEquipType(dev_id1, ["fbo6186", "fbo6286"])) {
                            this.$router.push({
                                path: "/dataTest/movingRingSystem/real-time6186/" + data.battGroupId,
                            });
src/views/dataTest/realTime6186.vue
@@ -103,6 +103,11 @@
                    <a @click="stopResTest" href="javascript:void(0);">停止内阻测试</a>
                  </li>
                  <li class="hdw-menu-item">
                    <a @click="alarmParamsShow" href="javascript:void(0);"
                      >告警参数设置
                    </a>
                  </li>
                  <li class="hdw-menu-item">
                    <a href="javascript:void(0);" @click="restartSystem">重启设备</a>
                  </li>
                </ul>
@@ -278,6 +283,22 @@
      :modal="false" class="dialog-center" :modal-append-to-body="false" :destroy-on-close="true">
      <check-face v-if="restartFaceShow" @checkSuccess="restartFaceSuccess"></check-face>
    </el-dialog>
    <!-- 设备告警参数设置 -->
    <el-dialog
      title="设备告警参数设置"
      :visible.sync="alarmParamsInfo.visible"
      width="auto"
      top="0"
      class="dialog-center"
      :close-on-press-escape="false"
      :modal-append-to-body="false"
    >
      <dev-alarm-params
        v-if="alarmParamsInfo.visible"
        :batt="batt"
        :visible.sync="alarmParamsInfo.visible"
      ></dev-alarm-params>
    </el-dialog>
  </flex-layout>
</template>
@@ -299,6 +320,7 @@
    import ElePriceTpl from "./components/elePriceTpl";
    import qrCode from "@/assets/js/outside/qrCode";
    import sysConfig from "@/assets/js/config";
  import DevAlarmParams from "@/views/dataTest/components/DevAlarmParams6186.vue";
    import {
        const_61850,
    } from "@/assets/js/const";
@@ -385,7 +407,8 @@
            historyRes,
            ThreeStation,
            hr6186Content,
            CircuitDiagram
            CircuitDiagram,
      DevAlarmParams,
        },
        watch: {
            "$route.params.BattGroupId"(battGroupId) {
@@ -410,6 +433,9 @@
                JSON.stringify(const_61850.lastCapacityTest)
            );
            return {
        alarmParamsInfo: {
          visible: false,
        },
        tabConfigFromBattInf: {},
        loadCurr: 0,
        controlFailTypeName: "",
@@ -628,6 +654,9 @@
                    }
                });
            },
      alarmParamsShow() {
        this.alarmParamsInfo.visible = true;
      },
            toggleChange() {
                this.resize();
            },