<template>
|
<div class="params-container">
|
<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="table-layout">
|
<div class="table-row">
|
<div class="table-cell pr16">
|
<el-form-item
|
label="在线电压低阀值(40~57.4V)"
|
prop="GroupVolSorce"
|
>
|
<el-input v-model="params.GroupVolSorce"></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell">
|
<el-form-item label="浮充电流阀值(3~20A)" prop="CurrentTyte">
|
<el-input v-model="params.CurrentTyte"></el-input>
|
</el-form-item>
|
</div>
|
</div>
|
<div class="table-row">
|
<div class="table-cell pr16">
|
<el-form-item
|
label="电流异常阀值(2~5A)"
|
prop="PowerBreakChargeCurr"
|
>
|
<el-input
|
v-model="params.PowerBreakChargeCurr"
|
:readonly="readOnly"
|
></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell">
|
<el-form-item
|
label="电压过高阀值(40~57.4V)"
|
prop="POF_BG_Boost_VolStop"
|
>
|
<el-input
|
v-model="params.POF_BG_Boost_VolStop"
|
:readonly="readOnly"
|
></el-input>
|
</el-form-item>
|
</div>
|
</div>
|
<div class="table-row">
|
<div class="table-cell pr16">
|
<el-form-item
|
label="电压过低阀值(40~57.4V)"
|
prop="POF_BG_Boost_VolStart"
|
>
|
<el-input
|
v-model="params.POF_BG_Boost_VolStart"
|
:readonly="readOnly"
|
></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell">
|
<el-form-item label="主从机设置">
|
<el-select v-model="params.MonomerOrder">
|
<el-option
|
v-for="item in types"
|
:key="item.value"
|
:value="item.value"
|
:label="item.label"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
</div>
|
</div>
|
</div>
|
<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 {};
|
},
|
},
|
},
|
data() {
|
let cmd = const_system.cmd;
|
let rules = const_system.rules;
|
return {
|
cmd: cmd,
|
setTestFlag: false, // 设置参数的状态
|
readOnly: false,
|
junhengState: false,
|
params: {
|
num: 0,
|
dev_id: 0, // 设备id
|
GroupVolSorce: 0, // 在线电压低阀值
|
CurrentTyte: 0, // 浮充电流阀值
|
PowerBreakChargeCurr: 0, // 电流异常阀值
|
POF_BG_Boost_VolStop: 0, // 电压过高阀值
|
POF_BG_Boost_VolStart: 0, // 电压过低阀值
|
MonomerOrder: 0, // 主从机设置
|
LoaderCount: -1, // 主从机使能
|
DtCardCount: -1, // 干接点使能
|
junHengEnabled: 0, // 均衡功能启用状态(1:启用;0:禁用)
|
junHengStVol: 0, // 均衡停止电压阀值
|
junHengStCurr: 0, // 均衡停止电流阀值
|
},
|
rules: {
|
GroupVolSorce: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.GroupVolSorce);
|
},
|
trigger: "change",
|
},
|
],
|
CurrentTyte: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.CurrentTyte);
|
},
|
trigger: "change",
|
},
|
],
|
PowerBreakChargeCurr: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.PowerBreakChargeCurr);
|
},
|
trigger: "change",
|
},
|
],
|
POF_BG_Boost_VolStop: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.POF_BG_Boost_VolStop);
|
},
|
trigger: "change",
|
},
|
],
|
POF_BG_Boost_VolStart: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.POF_BG_Boost_VolStart);
|
},
|
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",
|
},
|
],
|
},
|
types: [
|
{
|
label: "主机模式",
|
value: 0,
|
},
|
{
|
label: "从机模式",
|
value: 1,
|
},
|
],
|
junhengStateTypes: [
|
{
|
label: "关闭",
|
value: 0,
|
},
|
{
|
label: "启用",
|
value: 1,
|
},
|
],
|
};
|
},
|
methods: {
|
initParams() {
|
// 初始化参数
|
this.params = {
|
num: 0,
|
dev_id: 0, // 设备id
|
GroupVolSorce: 0, // 在线电压低阀值
|
CurrentTyte: 0, // 浮充电流阀值
|
PowerBreakChargeCurr: 0, // 电流异常阀值
|
POF_BG_Boost_VolStop: 0, // 电压过高阀值
|
POF_BG_Boost_VolStart: 0, // 电压过低阀值
|
MonomerOrder: 0, // 主从机设置
|
LoaderCount: 0, // 主从机使能
|
DtCardCount: 0, // 干接点使能
|
junHengEnabled: 0, // 均衡功能启用状态(1:启用;0:禁用)
|
junHengStVol: 0, // 均衡停止电压阀值
|
junHengStCurr: 0, // 均衡停止电流阀值
|
};
|
},
|
// 获取参数
|
getParams(showLoad) {
|
// 定义等待框
|
let loading;
|
if (showLoad) {
|
loading = this.$layer.loading(1);
|
}
|
|
// 查询后台
|
this.$apis.system
|
.getParams({
|
num: 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];
|
|
// 特殊值处理
|
if (key == "GroupVolSorce" || key == "CurrentTyte") {
|
value = value / 10;
|
}
|
|
this.params[key] = value;
|
}
|
// 设置均衡状态
|
this.junhengState = this.params.junHengEnabled ? true : false;
|
// 设置的命令和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];
|
|
// 特殊值处理
|
if (key == "GroupVolSorce" || key == "CurrentTyte") {
|
value = value * 10;
|
}
|
|
params[key] = value;
|
}
|
// 等待框
|
let loading = this.$layer.loading(1);
|
// 请求后台
|
this.$apis.system
|
.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("设置失败,设置请求异常!");
|
});
|
},
|
},
|
computed: {
|
otherParams() {
|
let batt = this.batt;
|
let groupInfo =
|
"单体数量:" +
|
this.batt.MonCount +
|
";电压(V):" +
|
this.batt.MonVolStd +
|
";容量(AH):" +
|
this.batt.MonCapStd;
|
return {
|
groupName: batt.StationName,
|
FBSDeviceId: batt.FBSDeviceId,
|
groupInfo: groupInfo,
|
GroupIndexInFBSDevice: this.batt.GroupIndexInFBSDevice + 1,
|
};
|
},
|
},
|
mounted() {
|
// 获取参数
|
this.getParams(true);
|
},
|
};
|
</script>
|
|
<style scoped>
|
.params-container {
|
padding: 8px;
|
background-color: #ececec;
|
}
|
.form-footer {
|
margin-top: 16px;
|
margin-bottom: 16px;
|
text-align: right;
|
}
|
.form-footer .three-btn {
|
margin-left: 12px;
|
}
|
</style>
|