<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">
|
<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="offlineyhCycle">
|
<el-input v-model="params.offlineyhCycle" :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="onlinevolLow">
|
<el-input
|
v-model="params.onlinevolLow"
|
@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>
|
<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>
|
<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="flowoverCount">
|
<el-select
|
v-model="params.flowoverCount"
|
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="flowoverCharcurr1"
|
>
|
<el-input v-model="params.flowoverCharcurr1"></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell pr16">
|
<el-form-item
|
label="恒流2阶段充电电流"
|
prop="flowoverCharcurr2"
|
>
|
<el-input
|
:disabled="params.flowoverCount < 2"
|
v-model="params.flowoverCharcurr2"
|
></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell">
|
<el-form-item
|
label="恒流3阶段充电电流"
|
prop="flowoverCharcurr3"
|
>
|
<el-input
|
:disabled="params.flowoverCount < 3"
|
v-model="params.flowoverCharcurr3"
|
></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="flowoverChartime1"
|
>
|
<el-input v-model="params.flowoverChartime1"></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell pr16">
|
<el-form-item
|
label="恒流2阶段充电时长"
|
prop="flowoverChartime2"
|
>
|
<el-input
|
:disabled="params.flowoverCount < 2"
|
v-model="params.flowoverChartime2"
|
></el-input>
|
</el-form-item>
|
</div>
|
<div class="table-cell">
|
<el-form-item
|
label="恒流3阶段充电时长"
|
prop="flowoverChartime3"
|
>
|
<el-input
|
:disabled="params.flowoverCount < 3"
|
v-model="params.flowoverChartime3"
|
></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.onlineVolLowAction"
|
: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.onlineVolLowAction != 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.onlineVolLowAction != 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="预放阻值(mΩ)" prop="disPreRes">
|
<el-input
|
v-model="params.disPreRes"
|
:disabled="params.onlineVolLowAction != 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.onlineVolLowAction != 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="组端下限(V)" prop="groupvolLow">
|
<el-input v-model="params.groupvolLow"></el-input>
|
</el-form-item>
|
</div>
|
</div>
|
<div class="table-row">
|
<div class="table-cell pr16">
|
<el-form-item label="单体下限(V)" prop="monomervolLow">
|
<el-input v-model="params.monomervolLow"></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 { sendCmd, getParams, setParams } from "../js/realTimeAio";
|
import { checkUserPwd } from "@/views/login/js/api";
|
|
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.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, //浮充时长
|
groupvolLow: 0, //组端下限
|
hourRate: 0, //放电小时率
|
monCount: 0, //单体数量
|
monVol: 0, //单体电压
|
monVolHightLimit: 0, //单体上限
|
monVolHightLimitCount: 0, //单体上限数量
|
monomerLowCount: 0, //单体下限数量
|
monomertmpHigh: 0, //放电过温
|
monomervolLow: 0, //单体下限
|
offLineYHOnceCycle: 1, //活化起点
|
offLineYHTimes: 1, //活化次数
|
offlineyhCycle: 0, //电池组标称容量
|
flowoverCount: 1, //恒流总阶段数
|
flowoverCharcurr1: 0, //恒流1阶段充电电流
|
flowoverCharcurr2: 0, //恒流2阶段充电电流
|
flowoverCharcurr3: 0, //恒流3阶段充电电流
|
flowoverChartime1: 0, //恒流3阶段充电时长
|
flowoverChartime2: 0, //恒流3阶段充电时长
|
flowoverChartime3: 0, //恒流3阶段充电时长
|
offLineYHstarttime: "2000-01-01 00:00:00", //养护开始时间
|
onlinevolLow: 0, //充电电压
|
onlineVolLowAction: 0, //测试类型 0:恒电流,1:恒功率,2:恒电阻
|
testCmd: 0, //备用
|
devId: 0, //设备id
|
devIp: "127.0.0.0", //设备ip
|
opCmd: cmd.setParams, //指令
|
},
|
ranges: {
|
groupvolLow: {
|
name: "组端电压下限",
|
unit: "V",
|
min: rules.GroupVol_Low.min,
|
max: rules.GroupVol_Low.max,
|
},
|
monomervolLow: {
|
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",
|
},
|
],
|
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",
|
},
|
],
|
groupvolLow: [
|
{
|
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",
|
},
|
],
|
monomervolLow: [
|
{
|
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",
|
},
|
],
|
onlinevolLow: [
|
{
|
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",
|
},
|
],
|
offlineyhCycle: [
|
{
|
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, //浮充时长
|
groupvolLow: 0, //组端下限
|
hourRate: 0, //放电小时率
|
monCount: 0, //单体数量
|
monVol: 0, //单体电压
|
monVolHightLimit: 0, //单体上限
|
monVolHightLimitCount: 0, //单体上限数量
|
monomerLowCount: 0, //单体下限数量
|
monomertmpHigh: 0, //放电过温
|
monomervolLow: 0, //单体下限
|
offLineYHOnceCycle: 1, //活化起点
|
offLineYHTimes: 1, //活化次数
|
offlineyhCycle: 0, //电池组标称容量
|
flowoverCount: 1, //恒流总阶段数
|
flowoverCharcurr1: 0, //恒流1阶段充电电流
|
flowoverCharcurr2: 0, //恒流2阶段充电电流
|
flowoverCharcurr3: 0, //恒流3阶段充电电流
|
flowoverChartime1: 0, //恒流3阶段充电时长
|
flowoverChartime2: 0, //恒流3阶段充电时长
|
flowoverChartime3: 0, //恒流3阶段充电时长
|
offLineYHstarttime: "2000-01-01 00:00:00", //养护开始时间
|
onlinevolLow: 0, //充电电压
|
onlineVolLowAction: 0, //测试类型 0:恒电流,1:恒功率,2:恒电阻
|
testCmd: 0, //备用
|
devId: 0, //设备id
|
devIp: "127.0.0.0", //设备ip
|
opCmd: 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.groupvolLow = [
|
// {
|
// validator(rule, value, callback) {
|
// testVal(rule, value, callback, rules.GroupVol_Low);
|
// },
|
// trigger: "change",
|
// },
|
// ];
|
// },
|
tabClick(tab) {
|
this.acTabs = tab.name;
|
},
|
// 获取参数
|
getParams(showLoad) {
|
// 定义等待框
|
let loading;
|
if (showLoad) {
|
loading = this.$layer.loading(1);
|
}
|
// 启动按钮不可点击
|
this.startTestFlag = false;
|
|
// 查询后台
|
getParams({
|
devId: this.batt.fbsdeviceId,
|
opCmd: const_aio.cmd.getParams,
|
})
|
.then((res) => {
|
res = res.data;
|
if (res.code && res.data) {
|
let fsparam = res.data2;
|
// 遍历参数属性并赋值
|
for (let key in this.params) {
|
this.params[key] = fsparam[key];
|
}
|
// 设置的命令和devId
|
this.params.opCmd = 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.devId = 618500001;
|
// 请求后台
|
setParams(this.params)
|
.then((res) => {
|
res = res.data;
|
if (res.code && res.data) {
|
// 启动按钮可点击
|
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();
|
// }
|
this.confirmStartTest();
|
},
|
// 确认框
|
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);
|
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;
|
}
|
// 请求后台
|
sendCmd({
|
opCmd: num,
|
devId: this.batt.fbsdeviceId,
|
})
|
.then((res) => {
|
res = res.data;
|
if (res.code && res.data) {
|
// 提示信息
|
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.offlineyhCycle, 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>
|