<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="设备ID">
|
<el-input v-model="otherParams.FBSDeviceId" readonly></el-input>
|
</el-form-item>
|
</div>
|
<!-- <div class="table-cell pr16">
|
<el-form-item label="电池组编号">
|
<el-input v-model="otherParams.GroupIndexInFBSDevice" readonly></el-input>
|
</el-form-item>
|
</div> -->
|
<div class="table-cell pr16">
|
<el-form-item label="单体电压" prop="MonVol">
|
<el-input
|
v-model="params.MonVol"
|
:disabled="workstate != 0"
|
></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell pr16">
|
<el-form-item label="单体节数" prop="MonCount">
|
<el-input
|
v-model="params.MonCount"
|
:disabled="workstate != 0"
|
></el-input>
|
</el-form-item>
|
</div>
|
</div>
|
<div class="table-row">
|
<div class="table-cell pr16">
|
<el-form-item label="温度告警(℃)">
|
<el-input v-model="params.CharHighTmp"></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell pr16">
|
<el-form-item label="标称容量" prop="OffLineYH_Cycle">
|
<el-input
|
v-model="params.OffLineYH_Cycle"
|
:disabled="workstate != 0"
|
></el-input>
|
</el-form-item>
|
</div>
|
</div>
|
</div>
|
<el-tabs
|
v-model="acTabs"
|
type="border-card"
|
class="flex-layout noborder"
|
@tab-click="tabClick"
|
>
|
<el-tab-pane
|
label="充电"
|
name="charge"
|
:disabled="type !== 'charge' && type !== 'activate'"
|
>
|
<div class="table-layout">
|
<div class="table-row">
|
<div class="table-cell pr16">
|
<el-form-item label="恒压电压(V)" prop="OnLineVol_Low">
|
<el-input
|
v-model="params.OnLineVol_Low"
|
@input="volInput"
|
></el-input>
|
<!-- @change="volChanged" -->
|
</el-form-item>
|
</div>
|
<div class="table-cell pr16">
|
<el-form-item label="恒压电流(A)" prop="ChargeCurrSet">
|
<el-input v-model="params.ChargeCurrSet"></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell pr16">
|
<el-form-item label="恒压时长(分钟)" prop="CharTimeLong">
|
<el-input v-model="params.CharTimeLong"></el-input>
|
</el-form-item>
|
</div>
|
<!-- <div class="table-cell">
|
<el-form-item label="充电过温(℃)" prop="CharHighTmp">
|
<el-input v-model="params.CharHighTmp"></el-input>
|
</el-form-item>
|
</div> -->
|
</div>
|
<div class="table-row">
|
<div class="table-cell pr16">
|
<el-form-item label="浮充电压(V)" prop="AutoTestStartVol">
|
<el-input v-model="params.AutoTestStartVol"></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell pr16">
|
<el-form-item label="浮充电流(A)" prop="CharSotpCurr">
|
<el-input v-model="params.CharSotpCurr"></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell pr16">
|
<el-form-item label="浮充时长(分钟)" prop="FloatCharTimeLong">
|
<el-input v-model="params.FloatCharTimeLong"></el-input>
|
</el-form-item>
|
</div>
|
<!-- <div class="table-cell pr16">
|
<el-form-item label="充电容量(AH)" prop="CharCap">
|
<el-input v-model.number="params.CharCap"></el-input>
|
</el-form-item>
|
</div> -->
|
</div>
|
<div class="table-row">
|
<div class="table-cell pr16">
|
<el-form-item label="单体上限(V)" prop="MonVolHightLimit">
|
<el-input v-model="params.MonVolHightLimit"></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell pr16">
|
<el-form-item
|
label="单体上限数量(个)"
|
prop="MonVolHightLimitCount"
|
>
|
<el-input v-model="params.MonVolHightLimitCount"></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell pr16">
|
<el-form-item label="保护电压(V)" prop="DCVolHighLimit">
|
<el-input v-model="params.DCVolHighLimit"></el-input>
|
</el-form-item>
|
</div>
|
</div>
|
<div class="table-row">
|
<div class="table-cell pr16">
|
<el-form-item label="恒流阶段总数" prop="FlowOver_Count">
|
<el-select
|
v-model="params.FlowOver_Count"
|
placeholder="请选择"
|
>
|
<el-option
|
v-for="item in flowOverCount"
|
:key="item"
|
:label="item"
|
:value="item"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
</div>
|
<div class="table-cell pr16">
|
<el-form-item
|
label="恒流1阶段充电电流"
|
prop="FlowOver_CharCurr_1"
|
>
|
<el-input v-model="params.FlowOver_CharCurr_1"></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell pr16">
|
<el-form-item
|
label="恒流2阶段充电电流"
|
prop="FlowOver_CharCurr_2"
|
>
|
<el-input
|
:disabled="params.FlowOver_Count < 2"
|
v-model="params.FlowOver_CharCurr_2"
|
></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell">
|
<el-form-item
|
label="恒流3阶段充电电流"
|
prop="FlowOver_CharCurr_3"
|
>
|
<el-input
|
:disabled="params.FlowOver_Count < 3"
|
v-model="params.FlowOver_CharCurr_3"
|
></el-input>
|
</el-form-item>
|
</div>
|
</div>
|
<div class="table-row">
|
<div class="table-cell pr16"></div>
|
<div class="table-cell pr16">
|
<el-form-item
|
label="恒流1阶段充电时长"
|
prop="FlowOver_CharTime_1"
|
>
|
<el-input v-model="params.FlowOver_CharTime_1"></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell pr16">
|
<el-form-item
|
label="恒流2阶段充电时长"
|
prop="FlowOver_CharTime_2"
|
>
|
<el-input
|
:disabled="params.FlowOver_Count < 2"
|
v-model="params.FlowOver_CharTime_2"
|
></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell">
|
<el-form-item
|
label="恒流3阶段充电时长"
|
prop="FlowOver_CharTime_3"
|
>
|
<el-input
|
:disabled="params.FlowOver_Count < 3"
|
v-model="params.FlowOver_CharTime_3"
|
></el-input>
|
</el-form-item>
|
</div>
|
</div>
|
</div>
|
</el-tab-pane>
|
<el-tab-pane
|
label="放电"
|
name="discharge"
|
:disabled="type !== 'discharge' && type !== 'activate'"
|
>
|
<div class="table-layout">
|
<div class="table-row">
|
<div class="table-cell pr16">
|
<el-form-item label="放电模式">
|
<!-- 恒电流 功率 电阻 -->
|
<el-select
|
v-model="params.OnlineLowAction"
|
:disabled="workstate != 0"
|
placeholder="请选择"
|
>
|
<el-option
|
v-for="item in testType"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
</div>
|
<div class="table-cell pr16">
|
<el-form-item label="预放电流(A)" prop="DisCurr">
|
<el-input
|
v-model="params.DisCurr"
|
:disabled="params.OnlineLowAction != 0"
|
></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell pr16">
|
<el-form-item label="预放容量(AH)" prop="DisCap">
|
<el-input v-model="params.DisCap"></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell">
|
<el-form-item label="小时率" prop="HourRate">
|
<el-select
|
v-model="params.HourRate"
|
@change="hourRateChanged"
|
:disabled="params.OnlineLowAction != 0"
|
placeholder="请选择"
|
>
|
<el-option
|
v-for="item in HourRate"
|
:key="item"
|
:label="item"
|
:value="item"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
</div>
|
</div>
|
<div class="table-row">
|
<div class="table-cell pr16">
|
<el-form-item label="预放阻值(Ω)" prop="DisPreRes">
|
<el-input
|
v-model="params.DisPreRes"
|
:disabled="params.OnlineLowAction != 2"
|
>i</el-input
|
>
|
</el-form-item>
|
</div>
|
<div class="table-cell pr16">
|
<el-form-item label="预放功率(KW)" prop="DisPower">
|
<el-input
|
v-model="params.DisPower"
|
:disabled="params.OnlineLowAction != 1"
|
></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell pr16">
|
<el-form-item label="预放时间(分钟)" prop="DisTime">
|
<el-input v-model="params.DisTime"></el-input>
|
</el-form-item>
|
</div>
|
<!-- <div class="table-cell">
|
<el-form-item label="放电过温" prop="MonomerTmp_High">
|
<el-input v-model.number="params.MonomerTmp_High"></el-input>
|
</el-form-item>
|
</div> -->
|
<div class="table-cell">
|
<el-form-item label="组端下限(V)" prop="GroupVol_Low">
|
<el-input v-model="params.GroupVol_Low"></el-input>
|
</el-form-item>
|
</div>
|
</div>
|
<div class="table-row">
|
<div class="table-cell pr16">
|
<el-form-item label="单体下限(V)" prop="MonomerVol_Low">
|
<el-input v-model="params.MonomerVol_Low"></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell pr16">
|
<el-form-item label="下限个数(个)" prop="MonomerLowCount">
|
<el-input v-model="params.MonomerLowCount"></el-input>
|
</el-form-item>
|
</div>
|
</div>
|
</div>
|
</el-tab-pane>
|
<el-tab-pane
|
label="活化"
|
name="activate"
|
:disabled="type !== 'activate'"
|
>
|
<div class="table-layout">
|
<div class="table-row">
|
<div class="table-cell pr16">
|
<el-form-item label="活化开始">
|
<!-- 放电 充电 -->
|
<el-select
|
v-model="params.OffLineYHOnceCycle"
|
placeholder="请选择"
|
>
|
<el-option
|
v-for="item in cycleStart"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
</div>
|
</div>
|
<div class="table-row">
|
<div class="table-cell pr16">
|
<el-form-item label="循环次数(次)" prop="OffLineYHTimes">
|
<el-input v-model="params.OffLineYHTimes"></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell pr16">
|
<el-form-item label="充完静置(分钟)" prop="DisWaitTime">
|
<el-input v-model="params.DisWaitTime"></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell">
|
<el-form-item label="放完静置(分钟)" prop="CharWaitTime">
|
<el-input v-model="params.CharWaitTime"></el-input>
|
</el-form-item>
|
</div>
|
</div>
|
</div>
|
</el-tab-pane>
|
</el-tabs>
|
<div class="form-footer">
|
<three-btn :disabled="!startTestFlag" @click="startTestCheck"
|
>启动{{ typeStr }}</three-btn
|
>
|
<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_aio } from "@/assets/js/const";
|
import config from "@/assets/js/config";
|
// import checkFace from "@/components/checkFace";
|
let rules = const_aio.dischargeRules;
|
export default {
|
name: "dischargeParams",
|
components: {
|
// checkFace
|
},
|
props: {
|
batt: {
|
type: Object,
|
default() {
|
return {};
|
},
|
},
|
type: {
|
type: String,
|
default: "charge",
|
},
|
workstate: {
|
type: Number,
|
default: 0,
|
},
|
},
|
data() {
|
let cmd = const_aio.cmd;
|
let testType = const_aio.testType;
|
let cycleStart = const_aio.cycleStart;
|
let HourRate = const_aio.HourRate;
|
let batt = this.batt;
|
// 修改组端下限的取值范围
|
// rules.GroupVol_Low.min = (batt.MonCount*batt.MonVolStd*0.875).toHold(1);
|
// rules.GroupVol_Low.max = (batt.MonCount*batt.MonVolStd*1.125).toHold(1);
|
// rules.GroupVol_Low.msg = "取值范围"+rules.GroupVol_Low.min+"~"+rules.GroupVol_Low.max+"(保留一位小数)";
|
|
// 修改电池单体下限的取值范围
|
// rules.MonomerVol_Low.min = (batt.MonVolStd*0.9).toHold(1);
|
// rules.MonomerVol_Low.max = (batt.MonVolStd*1.2).toHold(1);
|
// rules.MonomerVol_Low.msg = "取值范围"+rules.MonomerVol_Low.min+"~"+rules.MonomerVol_Low.max+"(保留一位小数)";
|
|
// 单体下限数量
|
rules.MonomerLowCount.max = batt.MonCount;
|
rules.MonomerLowCount.msg =
|
"取值范围" + rules.MonomerLowCount.min + "~" + rules.MonomerLowCount.max;
|
|
// 单体上限数量
|
rules.MonVolHightLimitCount.max = batt.MonCount;
|
rules.MonVolHightLimitCount.msg =
|
"取值范围" +
|
rules.MonVolHightLimitCount.min +
|
"~" +
|
rules.MonVolHightLimitCount.max;
|
|
return {
|
setFaceShow: false,
|
startFaceShow: false,
|
flowOverCount: const_aio.flowOverCount,
|
cmd: cmd, // 操作命令
|
startTestFlag: false, // 启动测试的状态
|
setTestFlag: false, // 设置参数的状态
|
testType: testType, // 测试类型
|
cycleStart: cycleStart, // 活化起点
|
HourRate: HourRate, // 放电小时率
|
acTabs: "activate",
|
params: {
|
AutoTestStartVol: 0, //浮充电压(V)
|
BattGroupNum: 0, //电池组编号
|
CharCap: 0, //充电容量(AH)(不显示)
|
CharHighTmp: 0, //充电过温
|
CharSotpCurr: 0, //截止电流
|
CharTimeLong: 0, //充电时长
|
CharWaitTime: 0, //放完静置
|
ChargeCurrSet: 0, //充电电流
|
DCVolHighLimit: 0, //组端上限
|
DisCap: 0, //放电容量
|
DisCurr: 0, //放电电流
|
DisPower: 0, //预放功率
|
DisPreRes: 0, //放电阻值
|
DisTime: 0, //放电时长
|
DisWaitTime: 0, //充完静置
|
FloatCharTimeLong: 0, //浮充时长
|
GroupVol_Low: 0, //组端下限
|
HourRate: 0, //放电小时率
|
MonCount: 0, //单体数量
|
MonVol: 0, //单体电压
|
MonVolHightLimit: 0, //单体上限
|
MonVolHightLimitCount: 0, //单体上限数量
|
MonomerLowCount: 0, //单体下限数量
|
MonomerTmp_High: 0, //放电过温
|
MonomerVol_Low: 0, //单体下限
|
OffLineYHOnceCycle: 1, //活化起点
|
OffLineYHTimes: 1, //活化次数
|
OffLineYH_Cycle: 0, //电池组标称容量
|
FlowOver_Count: 1, //恒流总阶段数
|
FlowOver_CharCurr_1: 0, //恒流1阶段充电电流
|
FlowOver_CharCurr_2: 0, //恒流2阶段充电电流
|
FlowOver_CharCurr_3: 0, //恒流3阶段充电电流
|
FlowOver_CharTime_1: 0, //恒流3阶段充电时长
|
FlowOver_CharTime_2: 0, //恒流3阶段充电时长
|
FlowOver_CharTime_3: 0, //恒流3阶段充电时长
|
OffLineYHstarttime: "2000-01-01 00:00:00", //养护开始时间
|
OnLineVol_Low: 0, //充电电压
|
OnlineLowAction: 0, //测试类型 0:恒电流,1:恒功率,2:恒电阻
|
TestCmd: 0, //备用
|
dev_id: 0, //设备id
|
dev_ip: "127.0.0.0", //设备ip
|
op_cmd: cmd.setParams, //指令
|
},
|
ranges: {
|
GroupVol_Low: {
|
name: "组端电压下限",
|
unit: "V",
|
min: rules.GroupVol_Low.min,
|
max: rules.GroupVol_Low.max,
|
},
|
MonomerVol_Low: {
|
name: "单体电压下限",
|
unit: "V",
|
min: rules.MonomerVol_Low.min,
|
max: rules.MonomerVol_Low.max,
|
},
|
},
|
rules: {
|
AutoTestStartVol: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.AutoTestStartVol);
|
},
|
trigger: "change",
|
},
|
],
|
// CharCap: [{
|
// validator(rule, value, callback) {
|
// testVal(rule, value, callback, rules.CharCap)
|
// },
|
// trigger: 'change'
|
// }],
|
CharHighTmp: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.CharHighTmp);
|
},
|
trigger: "change",
|
},
|
],
|
CharSotpCurr: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.CharSotpCurr);
|
},
|
trigger: "change",
|
},
|
],
|
CharWaitTime: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.CharWaitTime);
|
},
|
trigger: "change",
|
},
|
],
|
ChargeCurrSet: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.ChargeCurrSet);
|
},
|
trigger: "change",
|
},
|
],
|
DCVolHighLimit: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.DCVolHighLimit);
|
},
|
trigger: "change",
|
},
|
],
|
DisCap: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.DisCap);
|
},
|
trigger: "change",
|
},
|
],
|
DisCurr: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.DisCurr);
|
},
|
trigger: "change",
|
},
|
],
|
DisPower: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.DisPower);
|
},
|
trigger: "change",
|
},
|
],
|
DisPreRes: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.DisPreRes);
|
},
|
trigger: "change",
|
},
|
],
|
DisTime: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.DisTime);
|
},
|
trigger: "change",
|
},
|
],
|
DisWaitTime: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.DisWaitTime);
|
},
|
trigger: "change",
|
},
|
],
|
// FloatCharTimeLong: [{
|
// validator(rule, value, callback) {
|
// testVal(rule, value, callback, rules.FloatCharTimeLong)
|
// },
|
// trigger: 'change'
|
// }],
|
GroupVol_Low: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.GroupVol_Low);
|
},
|
trigger: "change",
|
},
|
],
|
MonVolHightLimit: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.MonVolHightLimit);
|
},
|
trigger: "change",
|
},
|
],
|
MonVolHightLimitCount: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.MonVolHightLimitCount);
|
},
|
trigger: "change",
|
},
|
],
|
MonomerLowCount: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.MonomerLowCount);
|
},
|
trigger: "change",
|
},
|
],
|
// MonomerTmp_High: [{
|
// validator(rule, value, callback) {
|
// testVal(rule, value, callback, rules.MonomerTmp_High)
|
// },
|
// trigger: 'change'
|
// }],
|
MonomerVol_Low: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.MonomerVol_Low);
|
},
|
trigger: "change",
|
},
|
],
|
OffLineYHTimes: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.OffLineYHTimes);
|
},
|
trigger: "change",
|
},
|
],
|
OnLineVol_Low: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.OnLineVol_Low);
|
},
|
trigger: "change",
|
},
|
],
|
MonCount: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.MonCount);
|
},
|
trigger: "change",
|
},
|
],
|
MonVol: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.MonVol);
|
},
|
trigger: "change",
|
},
|
],
|
OffLineYH_Cycle: [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.OffLineYH_Cycle);
|
},
|
trigger: "change",
|
},
|
],
|
},
|
};
|
},
|
// watch: {
|
// "params.MonCount"(n) {
|
// this.updateRulesGroupVol_low(n, this.params.MonVol);
|
// },
|
// "params.MonVol"(n) {
|
// this.updateRulesGroupVol_low(this.params.MonCount, n);
|
// },
|
// },
|
methods: {
|
initParams() {
|
// 初始化参数
|
this.params = {
|
AutoTestStartVol: 0, //浮充电压(V)
|
BattGroupNum: 0, //电池组编号
|
CharCap: 0, //充电容量(AH)
|
CharHighTmp: 0, //充电过温
|
CharSotpCurr: 0, //截止电流
|
CharTimeLong: 0, //充电时长
|
CharWaitTime: 0, //放完静置
|
ChargeCurrSet: 0, //充电电流
|
DCVolHighLimit: 0, //组端上限
|
DisCap: 0, //放电容量
|
DisCurr: 0, //放电电流
|
DisPower: 0, //预放功率
|
DisPreRes: 0, //放电阻值
|
DisTime: 0, //放电时长
|
DisWaitTime: 0, //充完静置
|
FloatCharTimeLong: 0, //浮充时长
|
GroupVol_Low: 0, //组端下限
|
HourRate: 0, //放电小时率
|
MonCount: 0, //单体数量
|
MonVol: 0, //单体电压
|
MonVolHightLimit: 0, //单体上限
|
MonVolHightLimitCount: 0, //单体上限数量
|
MonomerLowCount: 0, //单体下限数量
|
MonomerTmp_High: 0, //放电过温
|
MonomerVol_Low: 0, //单体下限
|
OffLineYHOnceCycle: 1, //活化起点
|
OffLineYHTimes: 1, //活化次数
|
OffLineYH_Cycle: 0, //电池组标称容量
|
FlowOver_Count: 1, //恒流总阶段数
|
FlowOver_CharCurr_1: 0, //恒流1阶段充电电流
|
FlowOver_CharCurr_2: 0, //恒流2阶段充电电流
|
FlowOver_CharCurr_3: 0, //恒流3阶段充电电流
|
FlowOver_CharTime_1: 0, //恒流3阶段充电时长
|
FlowOver_CharTime_2: 0, //恒流3阶段充电时长
|
FlowOver_CharTime_3: 0, //恒流3阶段充电时长
|
OffLineYHstarttime: "2000-01-01 00:00:00", //养护开始时间
|
OnLineVol_Low: 0, //充电电压
|
OnlineLowAction: 0, //测试类型 0:恒电流,1:恒功率,2:恒电阻
|
TestCmd: 0, //备用
|
dev_id: 0, //设备id
|
dev_ip: "127.0.0.0", //设备ip
|
op_cmd: const_aio.cmd.setParams, //指令
|
};
|
},
|
volInput(v) {
|
console.log("volchange", v);
|
// 修改浮充的取值范围
|
rules.AutoTestStartVol.max = v * 1;
|
rules.AutoTestStartVol.msg =
|
"取值范围" +
|
rules.AutoTestStartVol.min +
|
"~" +
|
rules.AutoTestStartVol.max;
|
|
this.rules.AutoTestStartVol = [
|
{
|
validator(rule, value, callback) {
|
testVal(rule, value, callback, rules.AutoTestStartVol);
|
},
|
trigger: "change",
|
},
|
];
|
},
|
// volChanged(v) {
|
// // 如果保护电压比恒压电压高 就把保护电压改为恒压电压
|
// if (v == v * 1 && this.params.DCVolHighLimit > v) {
|
// this.params.DCVolHighLimit = v * 1;
|
// }
|
// },
|
// 设置组端下限范围
|
// updateRulesGroupVol_low(moncount, monvolstd) {
|
// // 修改组端下限的取值范围
|
// rules.GroupVol_Low.min = (moncount * monvolstd * 0.875).toHold(1);
|
// rules.GroupVol_Low.max = (moncount * monvolstd * 1.125).toHold(1);
|
// rules.GroupVol_Low.msg =
|
// "取值范围" +
|
// rules.GroupVol_Low.min +
|
// "~" +
|
// rules.GroupVol_Low.max +
|
// "(保留一位小数)";
|
|
// this.rules.GroupVol_Low = [
|
// {
|
// validator(rule, value, callback) {
|
// testVal(rule, value, callback, rules.GroupVol_Low);
|
// },
|
// trigger: "change",
|
// },
|
// ];
|
// },
|
tabClick(tab) {
|
this.acTabs = tab.name;
|
// // 根据tab更新电路图
|
// if(this.acTabs === "eleLine") {
|
// this.diagram.update = true;
|
// }else {
|
// this.diagram.update = false;
|
// }
|
// // 更新图表
|
// this.setChart();
|
|
// // 重置图表的大小
|
// this.$nextTick(() => {
|
// this.resize();
|
// // 设置表格的数据
|
// if(this.acTabs == "tblData") {
|
// this.table.datas = tblData;
|
// }
|
// });
|
},
|
// 获取参数
|
getParams(showLoad) {
|
// 定义等待框
|
let loading;
|
if (showLoad) {
|
loading = this.$layer.loading(1);
|
}
|
// 启动按钮不可点击
|
this.startTestFlag = false;
|
|
// 查询后台
|
this.$apis.aio.realtime
|
.getParams({
|
dev_id: this.batt.FBSDeviceId,
|
op_cmd: const_aio.cmd.getParams,
|
})
|
.then((res) => {
|
let rs = JSON.parse(res.data.result);
|
// console.log('00000', rs, '-------=====');
|
// debugger;
|
if (rs.code == 1) {
|
let fsparam = rs.data[0];
|
// 遍历参数属性并赋值
|
for (let key in this.params) {
|
this.params[key] = fsparam[key];
|
}
|
// 设置的命令和dev_id
|
this.params.op_cmd = this.cmd.setParams;
|
this.$layer.msg("读取成功!");
|
// 设置按钮可点击
|
this.setTestFlag = true;
|
} else {
|
// 初始化参数
|
// this.initParams();
|
// 设置按钮不可点击
|
// TODO
|
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.setParamsCheck();
|
} else {
|
this.$layer.msg("存在校验未通过的数据!");
|
return false;
|
}
|
});
|
},
|
setParamsCheck() {
|
if (config.dischargeByFace.value) {
|
this.setFaceShow = true;
|
} else {
|
this.setParams(true);
|
}
|
},
|
// 设置参数
|
setParams() {
|
// 等待框
|
let loading = this.$layer.loading(1);
|
// this.params.dev_id = 618500001;
|
// 请求后台
|
this.$apis.aio.realtime
|
.setParams(this.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("设置失败,设置请求异常!");
|
});
|
},
|
startTestCheck() {
|
if (config.dischargeByFace.value) {
|
this.startFaceShow = true;
|
} else {
|
this.confirmStartTest();
|
}
|
},
|
// 确认框
|
confirmStartTest() {
|
this.$layer.prompt(
|
{
|
title: "输入启动口令,并确认",
|
formType: 2,
|
area: ["300px", "180px"],
|
},
|
(pass, index) => {
|
// 请求后台校验密码
|
this.$apis.login
|
.checkUserPwd(pass)
|
.then((res) => {
|
let rs = JSON.parse(res.data.result);
|
if (rs.code == 1) {
|
// 关闭弹出框
|
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);
|
let num = 0;
|
switch (this.type) {
|
case "charge":
|
num = this.cmd.startCharge;
|
break;
|
case "discharge":
|
num = this.cmd.startDisCharge;
|
break;
|
case "activate":
|
num = this.cmd.startActivate;
|
break;
|
}
|
// 请求后台
|
this.$apis.aio.realtime
|
.sendCmd({
|
op_cmd: num,
|
dev_id: this.batt.FBSDeviceId,
|
})
|
.then((res) => {
|
let rs = JSON.parse(res.data.result);
|
if (rs.code == 1) {
|
// 提示信息
|
this.$layer.msg("启动测试成功");
|
this.$emit("startok");
|
} else {
|
// 提示信息
|
this.$layer.msg("启动测试失败!");
|
}
|
// 关闭等待框
|
this.$layer.close(loading);
|
})
|
.catch((error) => {
|
console.log(error);
|
// 关闭等待框
|
this.$layer.close(loading);
|
// 提示信息
|
this.$layer.msg("启动测试失败,启动测试请求异常!");
|
});
|
},
|
checkValIsInObjects(val, objects) {
|
let rs = false;
|
for (let i = 0; i < objects.length; i++) {
|
let obj = objects[i];
|
if (obj.value === val) {
|
rs = true;
|
break;
|
}
|
}
|
return false;
|
},
|
setFaceSuccess() {
|
this.setFaceShow = false;
|
this.setParams();
|
},
|
startFaceSuccess() {
|
this.startFaceShow = false;
|
this.startTest();
|
},
|
hourRateChanged (v) {
|
// console.log(v, '====');
|
let curr = const_aio.GetFDCurrent(this.params.OffLineYH_Cycle, v);
|
// console.log(curr, '====');
|
this.params.DisCurr = curr;
|
}
|
},
|
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,
|
};
|
},
|
rangeLabel() {
|
let ranges = this.ranges;
|
let result = {};
|
for (let key in ranges) {
|
let item = ranges[key];
|
result[key] =
|
item.name + "(" + item.min + "~" + item.max + item.unit + ")";
|
}
|
return result;
|
},
|
typeStr() {
|
let res = "";
|
switch (this.type) {
|
case "charge":
|
res = "充电";
|
break;
|
case "discharge":
|
res = "放电";
|
break;
|
case "activate":
|
res = "活化";
|
break;
|
}
|
return res;
|
},
|
},
|
mounted() {
|
console.log("mounted");
|
this.acTabs = this.type;
|
// 获取数据
|
this.getParams(true);
|
},
|
};
|
</script>
|
|
<style scoped>
|
.form-footer {
|
margin-top: 16px;
|
margin-bottom: 16px;
|
text-align: right;
|
}
|
|
.form-footer .three-btn {
|
margin-left: 12px;
|
}
|
.params-container {
|
padding: 0.4rem;
|
background-color: #ececec;
|
}
|
>>> .is-disabled {
|
cursor: not-allowed;
|
}
|
>>> .el-tab-pane {
|
padding-top: 0;
|
padding-bottom: 16px;
|
}
|
>>> .el-tabs--border-card > .el-tabs__header {
|
background: #4ba1fa;
|
border-color: #4ba1fa;
|
}
|
>>> .el-tabs--border-card > .el-tabs__header .el-tabs__item {
|
color: #042271;
|
}
|
>>> .el-tabs--border-card
|
> .el-tabs__header
|
.el-tabs__item:not(.is-disabled):hover {
|
color: #042271;
|
}
|
>>> .el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active {
|
background-color: #042271;
|
border-color: #042271;
|
color: #fff;
|
}
|
>>> .el-tabs {
|
margin-top: 10px;
|
}
|
</style>
|