<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>
|
<el-row :gutter="layout.gutter">
|
<el-col :span="12">
|
<el-form-item label="设备ID">
|
<el-input v-model="otherParams.fbsdeviceId" readonly></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="电池组信息">
|
<el-input v-model="otherParams.groupInfo" readonly></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="均衡功能">
|
<el-select v-model="params.paramJunhengModel" :disabled="readOnly">
|
<el-option :value="0" label="禁用"></el-option>
|
<el-option :value="1" label="启用"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="测试类型">
|
<el-select v-model="testType" :disabled="readOnly">
|
<el-option :value="81" label="核容放电"></el-option>
|
<el-option :value="50" label="内阻测试"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="测试起始电池序号">
|
<el-select v-model="params.paramTeststartBattNum" :disabled="readOnly">
|
<el-option
|
v-for="(item, key) in monNums"
|
:key="'key' + key"
|
:value="item.value"
|
:label="item.label"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="标称容量(1~999AH)" prop="paramCap">
|
<el-input v-model="params.paramCap" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="放电电流(1~12.00A)" prop="paramDischargeCurr">
|
<el-input v-model="params.paramDischargeCurr" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="充电电流(1~12.00A)" prop="paramChargeCurr">
|
<el-input v-model="params.paramChargeCurr" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item
|
label="单体电压下限阀值(0~14.0V)"
|
prop="paramMonCurrLow"
|
>
|
<el-input v-model="params.paramMonCurrLow" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item
|
label="单体电压上限阀值(0~14.0V)"
|
prop="paramMonCurrHigh"
|
>
|
<el-input v-model="params.paramMonCurrHigh" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="温度告警上限(0~100℃)" prop="paramTmpHigh">
|
<el-input v-model="params.paramTmpHigh" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item
|
label="在线电压阀值(60.0~270.0V)"
|
prop="paramOnlineVol"
|
>
|
<el-input v-model="params.paramOnlineVol" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item
|
label="在线电压恢复阀值(60.0~270.0V)"
|
prop="paramOnlineVolRecover"
|
>
|
<el-input v-model="params.paramOnlineVolRecover" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="内阻告警上限(0~65.0mΩ)" prop="paramResHigh">
|
<el-input v-model="params.paramResHigh" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item
|
label="充电电流下限阀值(0.30~4.00A)"
|
prop="paramChargeCurrLow"
|
>
|
<el-input v-model="params.paramChargeCurrLow" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item
|
label="充电容量下限阀值(60~100%)"
|
prop="paramChargeCapLow"
|
>
|
<el-input v-model="params.paramChargeCapLow" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="容量告警下限(0~99.9AH)" prop="paramCapLow">
|
<el-input v-model="params.paramCapLow" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<div class="form-footer">
|
<template v-if="!readOnly">
|
<three-btn :disabled="!startTestFlag" @click="confirmStartTest">启动测试</three-btn>
|
<three-btn @click="getParams(true)">读取</three-btn>
|
<three-btn :disabled="!setTestFlag" @click="submitFrom">设定</three-btn>
|
</template>
|
<three-btn v-else @click="$emit('close')">关闭</three-btn>
|
</div>
|
</el-form>
|
</template>
|
|
<script>
|
import const_ld_nine from "@/assets/js/const/const_ld_nine";
|
import { testVal } from "@/assets/js/tools";
|
import {
|
getLD9Params,
|
setLD9Params,
|
ld9Control as start
|
} from '../js/realTime';
|
import {
|
checkUserPwd
|
} from '@/views/login/js/api'
|
|
export default {
|
name: "LdNineParams",
|
props: {
|
batt: {
|
type: Object,
|
default() {
|
return {};
|
},
|
},
|
// 只读模式 显示参数用
|
readOnly: {
|
type: Boolean,
|
default: false
|
},
|
paramData: {
|
type: Object,
|
default () {
|
return {}
|
}
|
}
|
},
|
data() {
|
let cmd = const_ld_nine.cmd;
|
let testType = const_ld_nine.testType;
|
let rules = const_ld_nine.rules;
|
|
return {
|
startTestFlag: false, // 启动测试的状态
|
setTestFlag: false, // 设置参数的状态
|
layout: {
|
gutter: 16,
|
span: 8,
|
},
|
cmd: cmd,
|
params: {
|
num: 0,
|
devId: 0,
|
paramTeststartBattNum: 0, //测试起始电池序号
|
paramCap: 0, //标称容量
|
opCmd: 0,
|
paramDischargeCurr: 0, //放电电流0.001
|
paramMonCurrHigh: 0, //单体上限0.001
|
paramChargeCurr: 0, //充电电流0.001
|
paramMonCurrLow: 0, //单体下限0.001
|
paramOnlineVol: 0, //在线电压阀值0.01
|
paramChargeCurrLow: 0, //充电电流下限阀值0.001
|
paramChargeCapLow: 0, //充电容量下限阀值%
|
paramOnlineVolRecover: 0, //在线电压恢复阀值0.01
|
paramJunhengModel: 0, //均衡功能 0->禁用 1->启用
|
paramDatasource: 0, // 数据来源
|
paramResArgs: 0, // 内阻测试系数
|
paramCapLow: 0, // 容量告警下限
|
paramTmpHigh: 0, // 温度告警上限
|
paramResHigh: 0, // 内阻告警上限
|
},
|
rules: {
|
paramCap: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.param_cap);
|
},
|
trigger: "change",
|
},
|
],
|
paramDischargeCurr: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.param_discharge_curr);
|
},
|
trigger: "change",
|
},
|
],
|
paramChargeCurr: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.param_charge_curr);
|
},
|
trigger: "change",
|
},
|
],
|
paramMonCurrLow: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.param_mon_curr_low);
|
},
|
trigger: "change",
|
},
|
],
|
paramMonCurrHigh: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.param_mon_curr_high);
|
},
|
trigger: "change",
|
},
|
],
|
paramTmpHigh: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.param_tmp_high);
|
},
|
trigger: "change",
|
},
|
],
|
paramOnlineVol: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.param_online_vol);
|
},
|
trigger: "change",
|
},
|
],
|
paramOnlineVolRecover: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.param_online_vol_recover);
|
},
|
trigger: "change",
|
},
|
],
|
paramResHigh: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.param_res_high);
|
},
|
trigger: "change",
|
},
|
],
|
paramChargeCurrLow: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.param_charge_curr_low);
|
},
|
trigger: "change",
|
},
|
],
|
paramChargeCapLow: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.param_charge_cap_low);
|
},
|
trigger: "change",
|
},
|
],
|
paramCapLow: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.param_cap_low);
|
},
|
trigger: "change",
|
},
|
],
|
},
|
testType: 81,
|
};
|
},
|
methods: {
|
getParams(showLoad) {
|
// 定义等待框
|
let loading;
|
if (showLoad) {
|
loading = this.$layer.loading(1);
|
}
|
// 启动按钮不可点击
|
this.startTestFlag = false;
|
let batt = this.batt;
|
getLD9Params({
|
num: this.cmd.get,
|
battGroupid: batt.battGroupId,
|
devId: batt.fbsdeviceId
|
})
|
.then((res) => {
|
// 关闭等待框
|
this.$layer.close(loading);
|
res = res.data;
|
if (res.code && res.data) {
|
this.$layer.msg("读取成功!");
|
this.params = res.data2.list[0];
|
// 设置按钮可点击
|
this.setTestFlag = true;
|
} else {
|
// 设置按钮不可点击
|
this.setTestFlag = false;
|
this.$layer.msg("读取失败!");
|
}
|
})
|
.catch((error) => {
|
// 关闭等待框
|
this.$layer.close(loading);
|
// 设置按钮不可点击
|
this.setTestFlag = false;
|
this.$layer.msg("读取失败,请检查网络。");
|
});
|
},
|
submitFrom() {
|
this.$refs.ruleForm.validate((valid) => {
|
// 校验通过
|
if (valid) {
|
// 设置参数
|
this.setParams(true);
|
} else {
|
this.$layer.msg("存在校验未通过的数据!");
|
return false;
|
}
|
});
|
},
|
// 设定参数
|
setParams(showLoad) {
|
// 定义等待框
|
let loading;
|
if (showLoad) {
|
loading = this.$layer.loading(1);
|
}
|
// 启动按钮不可点击
|
this.startTestFlag = false;
|
let batt = this.batt;
|
let param = this.params;
|
setLD9Params({
|
num: this.cmd.set,
|
devId: batt.fbsdeviceId,
|
paramTeststartBattNum: param.paramTeststartBattNum,
|
paramCap: param.paramCap,
|
paramDischargeCurr: param.paramDischargeCurr,
|
paramMonCurrHigh: param.paramMonCurrHigh,
|
paramChargeCurr: param.paramChargeCurr,
|
paramMonCurrLow: param.paramMonCurrLow,
|
paramOnlineVol: param.paramOnlineVol,
|
paramChargeCurrLow: param.paramChargeCurrLow,
|
paramChargeCapLow: param.paramChargeCapLow,
|
paramOnlineVolRecover: param.paramOnlineVolRecover,
|
paramJunhengModel: param.paramJunhengModel,
|
paramCapLow: param.paramCapLow,
|
paramTmpHigh: param.paramTmpHigh,
|
paramResHigh: param.paramResHigh,
|
})
|
.then((res) => {
|
// 关闭等待框
|
this.$layer.close(loading);
|
res = res.data;
|
if (res.code && res.data) {
|
this.$layer.msg("设定成功!");
|
this.startTestFlag = true;
|
} else {
|
// 设置按钮不可点击
|
this.startTestFlag = false;
|
this.$layer.msg("设定失败!");
|
}
|
})
|
.catch((error) => {
|
// 关闭等待框
|
this.$layer.close(loading);
|
// 设置按钮不可点击
|
this.startTestFlag = false;
|
this.$layer.msg("设定失败,请检查网络。");
|
});
|
},
|
// 确认框
|
confirmStartTest() {
|
this.$layer.prompt(
|
{
|
title: "输入启动口令,并确认",
|
formType: 2,
|
area: ["300px", "180px"],
|
},
|
(pass, index) => {
|
// 请求后台校验密码
|
checkUserPwd(pass)
|
.then((res) => {
|
res = res.data;
|
if (res.code) {
|
// 关闭弹出框
|
this.$layer.close(index);
|
this.$layer.msg("密码检测通过,启动测试");
|
// 启动测试
|
this.startTest();
|
} else {
|
this.$layer.msg("启动口令错误!");
|
}
|
})
|
.catch((error) => {
|
console.log(error);
|
this.$layer.msg("网络请求异常");
|
});
|
}
|
);
|
},
|
// 启动
|
startTest() {
|
// 等待框
|
let loading = this.$layer.loading(1);
|
// 请求后台
|
start({
|
num: this.testType,
|
devId: this.batt.fbsdeviceId
|
})
|
.then((res) => {
|
res = res.data;
|
if (res.code && res.data2) {
|
// 提示信息
|
this.$layer.msg("启动测试成功");
|
this.$emit('close');
|
} 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,
|
};
|
},
|
monNums() {
|
let monCount = this.batt.monCount;
|
let list = [];
|
for (let i = 0; i <= monCount; i++) {
|
if (monCount > 9 && i == 0) {
|
list.push({
|
value: 0,
|
label: "默认",
|
});
|
} else {
|
list.push({
|
value: i,
|
label: "单体" + i,
|
});
|
}
|
}
|
return list;
|
},
|
},
|
mounted() {
|
if (this.readOnly) {
|
this.initParams();
|
this.params = {
|
...this.params,
|
...this.paramData
|
};
|
} else {
|
this.getParams(true);
|
}
|
},
|
};
|
</script>
|
|
<style scoped>
|
</style>
|