whychdw
2021-09-07 99941e4894efe4978b7236432a2e0a54d2d9e6bb
均衡控制
1个文件已添加
5个文件已修改
374 ■■■■ 已修改文件
src/assets/js/apis/system/index.js 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/const/const_system.js 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/PageMenu.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/params/SystemParams.vue 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/params/balance-control-params.vue 248 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataTest/realTime.vue 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/apis/system/index.js
@@ -17,7 +17,7 @@
        return axios({
            method: 'post',
            url: 'Fbs9100_sysparamAction_action_serchByCondition',
            data: 'json='+JSON.stringify(data),
            data: 'json=' + JSON.stringify(data),
        });
    },
@@ -33,7 +33,7 @@
        return axios({
            method: 'post',
            url: 'Fbs9100_sysparamAction_action_update61850',
            data: 'json='+JSON.stringify(data),
            data: 'json=' + JSON.stringify(data),
        });
    },
    /**
@@ -51,7 +51,39 @@
        return axios({
            method: 'post',
            url: 'Fbs9100_sysparamAction_action_update61850',
            data: 'json='+JSON.stringify(searchParams)
            data: 'json=' + JSON.stringify(searchParams)
        });
    }
    },
    balanceControl: {
        /**
         * 获取参数
         *
         * @param   {[type]}  data  传参
         *
         * @return  {[type]}        返回值
         */
        getParams(data) {
            // 请求后台查询内容
            return axios({
                method: 'post',
                url: 'Fbs9100_sysparamAction_action_searchJunHengParam',
                data: 'json=' + JSON.stringify(data),
            });
        },
        /**
         * 设置参数
         *
         * @param   {Object}  data  查询后台需要的参数
         *
         * @return  {AxiosPromise}  查询结果
         */
        setParams(data) {
            // 请求后台查询内容
            return axios({
                method: 'post',
                url: 'Fbs9100_sysparamAction_action_update61850JunHeng',
                data: 'json=' + JSON.stringify(data),
            });
        },
    },
};
src/assets/js/const/const_system.js
@@ -5,6 +5,12 @@
    get: 0x80,          //  获取参数
    clear: 0xB8,        // 清除告警
  },
  balanceControl: {
    cmd: {
      get: 0xC1,
      set: 0xC3
    },
  },
  rules: {
    GroupVolSorce: {    // 在线电压低阀值
      pattern: /^[0-9]+(\.[0-9]{0,1})?$/,
@@ -41,19 +47,26 @@
      max: 57.4,
      msg: '取值范围40~57.4(保留一位小数)'
    },
    junHengEnabled: {
      pattern: /^[0-9]+(\.[0-9]{0,3})?$/,
      regVal: true,
      min: 0,
      max: 2.2,
      msg: '取值范围0~2.2V(保留三位小数)'
    },
    junHengStVol: {     // 均衡停止电压阀值
      pattern: /^[0-9]+(\.[0-9]{0,1})?$/,
      pattern: /^[0-9]+(\.[0-9]{0,3})?$/,
      regVal: true,
      min: 0,
      max: 20,
      msg: '取值范围0~20(保留一位小数)'
      msg: '取值范围0~20V(保留三位小数)'
    },
    junHengStCurr: {    // 均衡停止电流阀值
      pattern: /^[0-9]+(\.[0-9]{0,1})?$/,
      pattern: /^[0-9]+(\.[0-9]{0,2})?$/,
      regVal: true,
      min: 0,
      max: 5,
      msg: '取值范围0~5(保留一位小数)'
      msg: '取值范围0~5A(保留两位小数)'
    }
  },
};
src/components/PageMenu.vue
@@ -32,7 +32,6 @@
          }
          this.menus = getPageMenu();
          this.changeMenus(this.menus, data);
          console.log(this.menus);
        })
        .catch((error) => {
          this.menus = getPageMenu();
src/components/params/SystemParams.vue
@@ -76,43 +76,6 @@
            </el-form-item>
          </div>
        </div>
        <div class="table-row">
          <div class="table-cell pr16">
            <el-form-item label="均衡功能状态" prop="junHengEnabled">
              <el-select
                v-model="params.junHengEnabled"
                :disabled="!junhengState"
              >
                <el-option
                  v-for="item in junhengStateTypes"
                  :key="item.value"
                  :value="item.value"
                  :label="item.label"
                ></el-option>
              </el-select>
            </el-form-item>
          </div>
          <div class="table-cell">
            <el-form-item label="均衡停止电压阀值(0~20)" prop="junHengStVol">
              <el-input
                v-model="params.junHengStVol"
                :readonly="readOnly"
                :disabled="!junhengState"
              ></el-input>
            </el-form-item>
          </div>
        </div>
        <div class="table-row">
          <div class="table-cell pr16">
            <el-form-item label="均衡停止电流阀值(0~5)" prop="junHengStCurr">
              <el-input
                v-model="params.junHengStCurr"
                :readonly="readOnly"
                :disabled="!junhengState"
              ></el-input>
            </el-form-item>
          </div>
        </div>
      </div>
      <div class="form-footer">
        <three-btn @click="getParams(true)">读取</three-btn>
src/components/params/balance-control-params.vue
New file
@@ -0,0 +1,248 @@
<template>
  <div class="params-container">
    <el-form
      ref="ruleForm"
      size="mini"
      label-position="top"
      :model="params"
      :rules="rules"
      class="params-dialog bg-white"
    >
      <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="junHengEnabledLabel" prop="junHengEnabled">
            <el-input v-model="params.junHengEnabled"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="layout.span">
          <el-form-item label="均衡停止电压阀值(0~20)" prop="junHengStVol">
            <el-input v-model="params.junHengStVol"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="layout.span">
          <el-form-item label="均衡停止电流阀值(0~5)" prop="junHengStCurr">
            <el-input v-model="params.junHengStCurr"></el-input>
          </el-form-item>
        </el-col>
      </el-row>
      <div class="form-footer">
        <three-btn @click="getParams(true)">读取</three-btn>
        <three-btn :disabled="!setTestFlag" @click="submitFrom">设定</three-btn>
      </div>
    </el-form>
  </div>
</template>
<script>
import { testVal } from "@/assets/js/tools";
import { const_system } from "@/assets/js/const";
export default {
  props: {
    batt: {
      type: Object,
      default() {
        return {};
      },
    },
    visible: {
      type: Boolean,
      default: false,
    },
  },
  data() {
    let cmd = const_system.balanceControl.cmd;
    let rules = const_system.rules;
    let max = this.batt.MonVolStd * 1.1;
    rules.junHengEnabled.max = max;
    rules.junHengEnabled.msg = "取值范围0~" + max + "V(保留三位小数)";
    let junHengEnabledLabel = "均衡电压(0~" + max + "V)";
    return {
      cmd: cmd,
      setTestFlag: false, // 设置参数的状态
      layout: {
        span: 12,
        gutter: 16,
      },
      params: {
        op_cmd: 0,
        junHengEnabled: 0, // 均衡功能启用状态(0:禁用)
        junHengStVol: 0, // 均衡停止电压阀值
        junHengStCurr: 0, // 均衡停止电流阀值
      },
      junHengEnabledLabel: junHengEnabledLabel,
      rules: {
        junHengEnabled: [
          {
            validator(rule, value, callback) {
              testVal(rule, value, callback, rules.junHengEnabled);
            },
            trigger: "change",
          },
        ],
        junHengStVol: [
          {
            validator(rule, value, callback) {
              testVal(rule, value, callback, rules.junHengStVol);
            },
            trigger: "change",
          },
        ],
        junHengStCurr: [
          {
            validator(rule, value, callback) {
              testVal(rule, value, callback, rules.junHengStCurr);
            },
            trigger: "change",
          },
        ],
      },
    };
  },
  methods: {
    // 初始化参数
    initParams() {
      this.params = {
        op_cmd: 0,
        junHengEnabled: 0, // 均衡功能启用状态(0:禁用)
        junHengStVol: 0, // 均衡停止电压阀值
        junHengStCurr: 0, // 均衡停止电流阀值
      };
    },
    // 读取参数
    getParams(showLoad) {
      // 定义等待框
      let loading;
      if (showLoad) {
        loading = this.$layer.loading(1);
      }
      // 查询后台
      this.$apis.system.balanceControl
        .getParams({
          op_cmd: this.cmd.get,
          dev_id: this.batt.FBSDeviceId,
        })
        .then((res) => {
          let rs = JSON.parse(res.data.result);
          if (rs.code == 1) {
            let data = rs.data[0];
            // 遍历参数属性并赋值
            for (let key in this.params) {
              let value = data[key];
              this.params[key] = value;
            }
            // 设置的命令和dev_id
            this.params.num = this.cmd.set;
            this.params.dev_id = this.batt.FBSDeviceId;
            this.$layer.msg("读取成功!");
            // 设置按钮可点击
            this.setTestFlag = true;
          } else {
            // 初始化参数
            this.initParams();
            // 设置按钮不可点击
            this.setTestFlag = false;
            this.$layer.msg("读取失败!");
          }
          // 关闭等待框
          this.$layer.close(loading);
        })
        .catch((error) => {
          console.log(error);
          // 初始化参数
          this.initParams();
          // 设置按钮不可点击
          this.setTestFlag = false;
          // 关闭等待框
          this.$layer.close(loading);
          this.$layer.msg("读取失败,读取请求异常!");
        });
    },
    // 提交表单设置参数
    submitFrom() {
      this.$refs.ruleForm.validate((valid) => {
        // 校验通过
        if (valid) {
          // 设置参数
          this.setParams();
        } else {
          this.$layer.msg("存在校验未通过的数据!");
          return false;
        }
      });
    },
    // 设置参数
    setParams() {
      let params = {};
      // 遍历参数属性并赋值
      for (let key in this.params) {
        let value = this.params[key];
        params[key] = value;
      }
      // 设置命令
      params.op_cmd = this.cmd.set;
      console.log(params);
      // 等待框
      let loading = this.$layer.loading(1);
      // 请求后台
      this.$apis.system.balanceControl
        .setParams(params)
        .then((res) => {
          let rs = JSON.parse(res.data.result);
          if (rs.code == 1) {
            // 启动按钮可点击
            this.startTestFlag = true;
            // 提示信息
            this.$layer.msg("设置成功");
          } else {
            // 启动按钮不可点击
            this.startTestFlag = false;
            // 提示信息
            this.$layer.msg("设置失败!");
          }
          // 关闭等待框
          this.$layer.close(loading);
        })
        .catch((error) => {
          console.log(error);
          // 关闭等待框
          this.$layer.close(loading);
          // 启动按钮不可点击
          this.startTestFlag = false;
          // 提示信息
          this.$layer.msg("设置失败,设置请求异常!");
        });
    },
  },
  mounted() {
    // 获取参数
    this.getParams(true);
  },
  beforeDestroy() {},
};
</script>
<style scoped>
.params-container {
  width: 700px;
  background-color: #ffffff;
}
.table-layout {
  margin-top: 16px;
}
.bg-white .table-cell {
  color: #000000;
}
</style>
src/pages/dataTest/realTime.vue
@@ -154,6 +154,13 @@
                      >系统参数设置</a
                    >
                  </li>
                  <li class="hdw-menu-item">
                    <a
                      @click="balanceControlDialog = true"
                      href="javascript:void(0);"
                      >均衡控制参数设置</a
                    >
                  </li>
                  <li class="hdw-menu-item" v-if="control.data.clearWarn.show">
                    <a @click="clearWarn" href="javascript:void(0);"
                      >清除告警</a
@@ -665,6 +672,21 @@
    >
      <history-res v-if="hisResDialog" :batt="batt"></history-res>
    </el-dialog>
    <!-- 均衡参数设置 -->
    <el-dialog
      title="均衡控制参数设置"
      width="auto"
      :visible.sync="balanceControlDialog"
      :close-on-click-modal="false"
      top="0"
      class="dialog-center"
      :modal-append-to-body="false"
    >
      <balance-control-params
        v-if="balanceControlDialog"
        :batt="batt"
      ></balance-control-params>
    </el-dialog>
    <right-menu
      :visible.sync="rightMenu.show"
      :x="rightMenu.x"
@@ -736,6 +758,7 @@
import getDevType from "@/assets/js/tools/getDevType";
import historyRes from "@/pages/dataTest/components/historyRes";
import BalanceSupplyModule from "./components/balance-supply-module.vue";
import BalanceControlParams from "@/components/params/balance-control-params.vue";
/* import moment from "moment"; */
let vol, resChart, temp, conduct, currChart, leakVol;
let tblData = [];
@@ -764,6 +787,7 @@
    // NiBianInfo,
    balanceSupplyModule,
    BalanceSupplyModule,
    BalanceControlParams,
  },
  watch: {
    "$route.params.BattGroupId"(BattGroupId) {
@@ -788,6 +812,7 @@
    let stateList = const_61850.stateList;
    let historyStateList = const_61850.historyStateList;
    return {
      balanceControlDialog: false,
      hisResDialog: false,
      esVideoDialog: false,
      esVideoSn: "",
@@ -2656,7 +2681,7 @@
    },
    isJhgd() {
      let batt = this.batt;
      return regEquipType(batt.FBSDeviceId, ["BTS9110", "equip61850"]);
      return regEquipType(batt.FBSDeviceId, ["BTS9110", "equip61850", "BTS"]);
    },
  },
  created() {