<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="机房名称" prop="stationName">
|
<el-input
|
placeholder="请输入机房名称"
|
v-model="batt.stationName"
|
readonly="readonly">
|
</el-input>
|
</el-form-item>
|
<el-row :gutter="layout.gutter">
|
<el-col :span="layout.span">
|
<el-form-item label="被测电池组号">
|
<el-select v-model="params.battGroupNum" :disabled="true">
|
<el-option :value="1" label="电池组1"></el-option>
|
<el-option :value="2" label="电池组2"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="测试类型">
|
<el-select v-model="params.testCmd">
|
<el-option :value="37" 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="放电电流(A)">
|
<el-input v-model="params.disCurr"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="放电容量(AH)">
|
<el-input v-model="params.disCap"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="放电时间(分钟)">
|
<el-input v-model="params.disTime"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="组端下限(V)">
|
<el-input v-model="params.groupvolLow"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="单体下限(V)">
|
<el-input v-model="params.monomervolLow"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="单体下限个数">
|
<el-input v-model="params.monomerLowCount"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="单体温度高阈值(℃)">
|
<el-input v-model="params.monomertmpHigh"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="静置时间(分钟)">
|
<el-input v-model="params.disWaitTime"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="标称单体电压(V)">
|
<el-input v-model="params.monVol"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="标称容量(AH)">
|
<el-input v-model="params.monCapStd"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<div class="form-footer">
|
<three-btn v-if="isCanTest" :disabled="!startTestFlag" @click="startTestCheck">启动测试</three-btn>
|
<three-btn @click="getParams(true)">读取</three-btn>
|
<three-btn :disabled="!setTestFlag" @click="submitFrom">设定</three-btn>
|
</div>
|
</el-form>
|
</div>
|
</template>
|
|
<script>
|
import {
|
searchEleOperationParams,
|
updateEleOperationParams,
|
startEleOperation,
|
} from "@/views/dataTest/js/realTime";
|
import {checkUserPwd} from "@/views/login/js/api";
|
export default {
|
name: "EleOperationParams",
|
props: {
|
batt: {
|
type: Object,
|
default() {
|
return {
|
stationName: ""
|
};
|
},
|
},
|
groupNum: {
|
type: Number,
|
default: 1,
|
},
|
visible: {
|
type: Boolean,
|
default: false,
|
},
|
isCanTest: {
|
type: Boolean,
|
default: true,
|
}
|
},
|
params() {
|
return {
|
devId: "",
|
battGroupNum: 1, // 被测电池组号
|
testCmd: 37, // 测试类型
|
disCurr: 0, // 放电电流
|
disCap: 0, // 放电容量
|
disTime: 0, // 放电时间
|
groupvolLow: 0, // 组端下限
|
monomervolLow: 0, // 单体下限
|
monomerLowCount: 0, // 单体下限个数
|
onlineVolLowAction: 0,// 停电处理
|
monomertmpHigh: 0, // 单体温度高阈值
|
disWaitTime: 0, // 静置时间
|
monVol: 0, // 标称单体电压
|
monCapStd: 0, // 标称容量
|
}
|
},
|
data() {
|
let params = this.$options.params();
|
return {
|
startTestFlag: false, // 启动测试的状态
|
setTestFlag: false, // 设置参数的状态
|
layout: {
|
span: 12,
|
gutter: 16,
|
},
|
params: params,
|
rules: {
|
disCurr: [
|
|
],
|
}
|
}
|
},
|
watch: {
|
params: {
|
handler(params) {
|
this.startTestFlag = false;
|
},
|
deep: true,
|
},
|
},
|
methods: {
|
getParams(isLoad) {
|
let baseParams = this.$options.params();
|
let devId = this.batt.fbsdeviceId;
|
let groupNum = this.params.battGroupNum;
|
let loading;
|
if(isLoad) {
|
loading = this.$layer.loading(1);
|
}
|
this.setTestFlag = false;
|
searchEleOperationParams(devId, groupNum).then(res=>{
|
this.$layer.close(loading);
|
let rs = res.data;
|
let params = {...this.params};
|
if(rs.code == 1 && rs.data) {
|
if(isLoad) {
|
this.$message.success("读取成功!");
|
}
|
this.setTestFlag = true;
|
let data = rs.data2;
|
Object.keys(params).forEach(key=>{
|
if(!(key == "testCmd" || key == "battGroupNum") && data[key]) {
|
params[key] = data[key];
|
}
|
});
|
}else {
|
this.$message.error("读取失败!");
|
this.setTestFlag = false;
|
}
|
this.params = {...params};
|
}).catch(error=>{
|
this.params = {...baseParams};
|
this.$message.error("读取失败,请联系管理员!");
|
this.$layer.close(loading);
|
console.log(error);
|
})
|
},
|
submitFrom() {
|
this.$refs.ruleForm.validate((valid) => {
|
// 校验通过
|
if (valid) {
|
// 设置参数
|
this.setParams();
|
} else {
|
this.$layer.msg("存在校验未通过的数据!");
|
return false;
|
}
|
});
|
},
|
setParams() {
|
let params = {...this.params};
|
let loading = this.$layer.loading();
|
updateEleOperationParams(params).then(res=>{
|
this.$layer.close(loading);
|
let rs = res.data;
|
if(rs.code == 1 && rs.data) {
|
this.$message.success("修改成功!");
|
this.startTestFlag = true;
|
}else {
|
this.$message.error("修改失败!");
|
this.startTestFlag = false;
|
}
|
}).catch(error=>{
|
this.startTestFlag = false;
|
this.$message.error("修改失败,请联系管理员!");
|
console.log(error);
|
this.$layer.close(loading);
|
});
|
},
|
startTestCheck() {
|
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();
|
startEleOperation(this.params.devId, this.params.testCmd).then(res=>{
|
let rs = res.data;
|
this.$layer.close(loading);
|
if(rs.code == 1 && rs.data) {
|
this.$emit("update:visible", false);
|
this.$message.success("启动测试成功!");
|
}else {
|
this.$message.error("启动测试失败!");
|
}
|
}).catch(error=>{
|
this.$layer.close(loading);
|
this.$message.error("启动测试失败!");
|
console.log(error);
|
});
|
},
|
},
|
mounted() {
|
this.params.battGroupNum = this.groupNum;
|
this.getParams(true);
|
}
|
}
|
</script>
|
|
<style scoped>
|
.params-container {
|
width: 600px;
|
background-color: #ffffff;
|
}
|
.form-footer {
|
margin-bottom: 4px;
|
}
|
</style>
|