<template>
|
<el-form ref="ruleForm" size="mini" label-position="top" :model="params" :rules="rules" class="params-dialog">
|
<el-row :gutter="row.gutter">
|
<el-col :span="row.span">
|
<el-form-item label="电池管理方式">
|
<el-select v-model="params.battauto" :disabled="readOnly" placeholder="请选择">
|
<el-option v-for="item in battManageList" :key="'battm_' + item.value" :label="item.label"
|
:value="item.value"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="row.span">
|
<el-form-item label="定时均充功能">
|
<el-select v-model="params.timerchargeable" :disabled="readOnly" placeholder="请选择">
|
<el-option v-for="item in JCList" :key="'jc_' + item.value" :label="item.label"
|
:value="item.value"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="row.span">
|
<el-form-item label="电池标称容量(50~200AH)" prop="battnominalcap">
|
<el-input v-model="params.battnominalcap" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="row.span">
|
<el-form-item :label="'电池浮充电压' + (isac ? '(20~30V)' : '(10~15V)')" prop="battfloatvol">
|
<el-input v-model="params.battfloatvol" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="row.span">
|
<el-form-item :label="'电池均充电压' + (isac ? '(20~30V)' : '(10~15V)')" prop="battchargevol">
|
<el-input v-model="params.battchargevol" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="row.span">
|
<el-form-item :label="`电池充电限流(${battchargecurr1Range}A)`" prop="battchargecurr1">
|
<el-input v-model="params.battchargecurr1" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="row.span">
|
<el-form-item :label="`浮充转均充电流(${battchargecurr2Range}A)`" prop="battchargecurr2">
|
<el-input v-model="params.battchargecurr2" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="row.span">
|
<el-form-item :label="`均充转浮充电流(${battchargecurr3Range}A)`" prop="battchargecurr3">
|
<el-input v-model="params.battchargecurr3" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="row.span">
|
<el-form-item label="尾电流充电时间(H)">
|
<el-select v-model="params.tailcurrchargetime" :disabled="readOnly" placeholder="请选择">
|
<el-option v-for="item in CharTimeList" :key="'charTime_' + item" :label="item + '(H)'"
|
:value="item"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="row.span">
|
<el-form-item label="定时均充周期(30~180天)" prop="timerchargeperiod">
|
<el-input v-model="params.timerchargeperiod" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="row.span">
|
<el-form-item label="最长均充时间(1~30H)" prop="maxchargetimehour">
|
<el-input v-model="params.maxchargetimehour" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="row.span">
|
<el-form-item label="温度补偿开关">
|
<el-select v-model="params.tempcompensatedable" :disabled="readOnly" placeholder="请选择">
|
<el-option v-for="item in switchTempList" :key="'temp_' + item.value" :label="item.label"
|
:value="item.value"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="row.span">
|
<el-form-item label="电池过温点(20~80℃)" prop="batthightemp">
|
<el-input v-model="params.batthightemp" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="row.span">
|
<el-form-item label="电池欠温点(-40~10℃)" prop="battlowtemp">
|
<el-input v-model="params.battlowtemp" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="row.span">
|
<el-form-item label="温补中心点(10~40℃)" prop="compensatedtemp">
|
<el-input v-model="params.compensatedtemp" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="row.span">
|
<el-form-item label="温补系数(0~50mV/℃)" prop="tempcompensatedcoe">
|
<el-input v-model="params.tempcompensatedcoe" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="row.span">
|
<el-form-item :label="'电池放电终止电压' + (isac ? '(20~30V)' : '(10~50V)')" prop="battdischargelowvol">
|
<el-input v-model="params.battdischargelowvol" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="row.span">
|
<el-form-item label="单节放电终止电压(1.6~15V)" prop="mondischargelowvol">
|
<el-input v-model="params.mondischargelowvol" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="row.span">
|
<el-form-item label="本地远程设置">
|
<el-select v-model="params.localremoteset" :disabled="readOnly" placeholder="请选择">
|
<el-option v-for="item in OnlineTestFlagList" :key="'OnlineTestFlag_' + item.value" :label="item.label"
|
:value="item.value"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="row.span">
|
<el-form-item label="电池充电控制">
|
<el-select v-model="params.battchrgctrl" :disabled="readOnly" placeholder="请选择">
|
<el-option v-for="item in CharWaitTimeList" :key="'CharWaitTime_' + item.value" :label="item.label"
|
:value="item.value"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="row.span">
|
<el-form-item label="电池放电控制">
|
<el-select v-model="params.battdisctrl" :disabled="readOnly" placeholder="请选择">
|
<el-option v-for="item in DisWaitTimeList" :key="'DisWaitTime_' + item.value" :label="item.label"
|
:value="item.value"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="row.span">
|
<el-form-item :label="`核容限流(${herongcurrRange}A)`" prop="herongcurr">
|
<el-input v-model="params.herongcurr" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="row.span">
|
<el-form-item label="核容时限(0~20H)" prop="herongtimehour">
|
<el-input v-model="params.herongtimehour" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="row.span">
|
<el-form-item label="内部单体下限值(1.6~13.6V)" prop="monvollow">
|
<el-input v-model="params.monvollow" :readonly="readOnly"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
</template>
|
|
<script>
|
import { testVal } from "@/assets/js/tools";
|
import const_9149 from "@/assets/js/const/const_9149";
|
import const_9144 from "@/assets/js/const/const_9144";
|
import toFixed from "@/assets/js/tools/toFixed";
|
|
const rules9 = const_9149.dischargeRules;
|
const rules4 = const_9144.dischargeRules;
|
|
export default {
|
name: "BtsDischargeParams",
|
props: {
|
batt: {
|
type: Object,
|
default() {
|
return {};
|
},
|
},
|
// 只读模式 显示参数用
|
readOnly: {
|
type: Boolean,
|
default: false
|
},
|
params: {
|
type: Object,
|
required: true,
|
default() {
|
return {}
|
}
|
},
|
type: {
|
type: String,
|
default: 'charge'
|
},
|
isac: {
|
type: Boolean,
|
default: false,
|
},
|
},
|
data() {
|
let {
|
cmd,
|
testCmd,
|
CharWaitTimeList,
|
DisWaitTimeList,
|
OnlineTestFlagList,
|
switchTempList,
|
CharTimeList,
|
JCList,
|
paramsTypeList,
|
battManageList,
|
groupIndexList,
|
getInitParams,
|
} = const_9149;
|
// console.log(this.isac, 'isac');
|
let rules = this.isac ? rules9 : rules4;
|
return {
|
row: {
|
gutter: 16,
|
span: 6,
|
},
|
cacheParams: {
|
0: null,
|
1: null,
|
2: null,
|
3: null
|
},
|
startNum: 0,
|
battGroupNum: 0,
|
CharWaitTimeList,
|
DisWaitTimeList,
|
OnlineTestFlagList,
|
switchTempList,
|
CharTimeList,
|
JCList,
|
paramsTypeList,
|
battManageList,
|
setFaceShow: false,
|
startFaceShow: false,
|
cmd: cmd, // 操作命令
|
testCmd,
|
startTestFlag: false, // 启动测试的状态
|
setTestFlag: false, // 设置参数的状态
|
groupIndexList,
|
rules: {
|
battnominalcap: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.battnominalcap);
|
},
|
trigger: "change",
|
},
|
],
|
battfloatvol: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.battfloatvol);
|
},
|
trigger: "change",
|
},
|
],
|
battchargevol: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.battchargevol);
|
},
|
trigger: "change",
|
},
|
],
|
battchargecurr1: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.battchargecurr1);
|
},
|
trigger: "change",
|
},
|
],
|
battchargecurr2: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.battchargecurr2);
|
},
|
trigger: "change",
|
},
|
],
|
battchargecurr3: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.battchargecurr3);
|
},
|
trigger: "change",
|
},
|
],
|
timerchargeperiod: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.timerchargeperiod);
|
},
|
trigger: "change",
|
},
|
],
|
maxchargetimehour: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.maxchargetimehour);
|
},
|
trigger: "change",
|
},
|
],
|
batthightemp: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.batthightemp);
|
},
|
trigger: "change",
|
},
|
],
|
battlowtemp: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.battlowtemp);
|
},
|
trigger: "change",
|
},
|
],
|
compensatedtemp: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.compensatedtemp);
|
},
|
trigger: "change",
|
},
|
],
|
tempcompensatedcoe: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.tempcompensatedcoe);
|
},
|
trigger: "change",
|
},
|
],
|
battdischargelowvol: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.battdischargelowvol);
|
},
|
trigger: "change",
|
},
|
],
|
mondischargelowvol: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.mondischargelowvol);
|
},
|
trigger: "change",
|
},
|
],
|
herongcurr: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.herongcurr);
|
},
|
trigger: "change",
|
},
|
],
|
herongtimehour: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.herongtimehour);
|
},
|
trigger: "change",
|
},
|
],
|
monvollow: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.monvollow);
|
},
|
trigger: "change",
|
},
|
]
|
},
|
};
|
},
|
watch: {
|
'params.battnominalcap': {
|
handler(num) {
|
// 计算rules
|
let names = ['herongcurr', 'battchargecurr3', 'battchargecurr2', 'battchargecurr1'];
|
this.upDateRules(names, num);
|
},
|
immediate: true
|
}
|
},
|
methods: {
|
battNumChanged() {
|
let num = this.battGroupNum;
|
let cache = this.cacheParams[num];
|
if (cache) {
|
this.params = cache;
|
this.startTestFlag = true;
|
} else {
|
this.initParams();
|
this.startTestFlag = false;
|
}
|
},
|
upDateRules(names, num) {
|
let range = [0, 1];
|
let rules = this.isac ? rules9 : rules4;
|
names.forEach((v) => {
|
switch (v) {
|
case 'herongcurr':
|
range = [0.1, 0.5];
|
break;
|
case 'battchargecurr3':
|
range = [0.01, 0.1];
|
break;
|
case 'battchargecurr2':
|
range = [0.01, 0.1];
|
break;
|
case 'battchargecurr1':
|
range = [0.05, 0.2];
|
break;
|
}
|
|
// 修改取值范围
|
rules[v].min = toFixed(range[0] * num, 2);
|
rules[v].max = toFixed(range[1] * num, 2);
|
rules[v].msg =
|
"取值范围" +
|
rules[v].min +
|
"~" +
|
rules[v].max +
|
"(保留两位小数)";
|
|
this.rules[v] = [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules[v]);
|
},
|
trigger: "change",
|
},
|
];
|
|
|
let value = this.params[v];
|
this.params[v] = '';
|
this.$nextTick(() => {
|
this.params[v] = value;
|
})
|
});
|
},
|
},
|
computed: {
|
// 0.1C-0.5C //核容限流(A)
|
herongcurrRange() {
|
let { battnominalcap } = this.params;
|
let r0 = toFixed(0.1 * battnominalcap, 2);
|
let r1 = toFixed(0.5 * battnominalcap, 2);
|
return `${r0}~${r1}`;
|
},
|
// 0.01-0.10C //均充转浮充电流(A)
|
battchargecurr3Range() {
|
let { battnominalcap } = this.params;
|
let r0 = toFixed(0.01 * battnominalcap, 2);
|
let r1 = toFixed(0.1 * battnominalcap, 2);
|
return `${r0}~${r1}`;
|
},
|
// 0.01-0.10C //浮充转均充电流(A)
|
battchargecurr2Range() {
|
let { battnominalcap } = this.params;
|
let r0 = toFixed(0.01 * battnominalcap, 2);
|
let r1 = toFixed(0.1 * battnominalcap, 2);
|
return `${r0}~${r1}`;
|
},
|
// 0.05-0.20 C //电池充电限流(A)
|
battchargecurr1Range() {
|
let { battnominalcap } = this.params;
|
let r0 = toFixed(0.05 * battnominalcap, 2);
|
let r1 = toFixed(0.2 * battnominalcap, 2);
|
return `${r0}~${r1}`;
|
},
|
},
|
mounted() {
|
},
|
};
|
</script>
|
|
<style scoped></style>
|