<style scoped>
|
input[readonly=readonly] {
|
background-color: #EFEFEF;
|
}
|
.item-title.item-label {
|
color: #3B78D8;
|
}
|
</style>
|
<template>
|
<div data-name="batt-param-set" class="page">
|
<!-- Top Navbar -->
|
<div class="navbar">
|
<div class="navbar-inner">
|
<div class="left">
|
<a href="#" class="link back">
|
<i class="icon f7-icons">chevron_left</i>
|
</a>
|
</div>
|
<div class="title center">电池参数设置</div>
|
<!-- <div class="right">
|
<a href="#" class="link ac"><i class="icon f7-icons">more_vertical</i></a>
|
</div> -->
|
</div>
|
</div>
|
<div class="toolbar toolbar-bottom" id="battParamSetBtn">
|
<div class="toolbar-inner">
|
<button
|
class="col button button-fill color-blue"
|
style="margin-right: 10px;"
|
v-on:click="readParams()" >读取参数</button>
|
<button class="col button button-fill"
|
v-bind:class="{'color-blue': setBtnStatus, 'color-gray': !setBtnStatus}"
|
v-bind:disabled="!setBtnStatus"
|
v-on:click="setParams()">设置参数</button>
|
</div>
|
</div>
|
<div class="page-content" id="battParamSet">
|
<form class="card list">
|
<ul>
|
<li>
|
<div class="item-content item-input">
|
<div class="item-inner">
|
<div class="item-title item-label">设备id</div>
|
<div class="item-input-wrap">
|
<input type="text" readonly="readonly" v-model="param.dev_id">
|
</div>
|
</div>
|
</div>
|
</li>
|
<li>
|
<div class="item-content item-input">
|
<div class="item-inner">
|
<div class="item-title item-label">机房名称</div>
|
<div class="item-input-wrap">
|
<input type="text" readonly="readonly" v-model="staticParam.homeName">
|
</div>
|
</div>
|
</div>
|
</li>
|
<li>
|
<div class="item-content item-input">
|
<div class="item-inner">
|
<div class="item-title item-label">电池标称容量(1~6000.0AH)</div>
|
<div class="item-input-wrap">
|
<input type="text" v-model="param.STD_CAP">
|
</div>
|
</div>
|
</div>
|
</li>
|
<li>
|
<div class="item-content item-input">
|
<div class="item-inner">
|
<div class="item-title item-label">电池标称内阻(1~6000uΩ)</div>
|
<div class="item-input-wrap">
|
<input type="text" v-model="param.STD_RES">
|
</div>
|
</div>
|
</div>
|
</li>
|
<li>
|
<div class="item-content item-input">
|
<div class="item-inner">
|
<div class="item-title item-label">电池组数(1~2)</div>
|
<div class="item-input-wrap">
|
<input type="text" v-model="param.BattGroupCount">
|
</div>
|
</div>
|
</div>
|
</li>
|
<li>
|
<div class="item-content item-input">
|
<div class="item-inner">
|
<div class="item-title item-label">每组电池单体数量(1~300)</div>
|
<div class="item-input-wrap">
|
<input type="text" v-model="param.EachGroupBattCount">
|
</div>
|
</div>
|
</div>
|
</li>
|
<li>
|
<div class="item-content item-input">
|
<div class="item-inner">
|
<div class="item-title item-label">单体标称电压(0.1~20.0V)</div>
|
<div class="item-input-wrap">
|
<input type="text" v-model="param.MonomerVol">
|
</div>
|
</div>
|
</div>
|
</li>
|
<li>
|
<div class="item-content item-input">
|
<div class="item-inner">
|
<div class="item-title item-label">电池组端标称电压(0.1~6000.0V)</div>
|
<div class="item-input-wrap">
|
<input type="text" v-model="param.GroupVol">
|
</div>
|
</div>
|
</div>
|
</li>
|
<li>
|
<div class="item-content item-input">
|
<div class="item-inner">
|
<div class="item-title item-label">电池标称温度(0.1~60.0℃)</div>
|
<div class="item-input-wrap">
|
<input type="text" v-model="param.BattTemp">
|
</div>
|
</div>
|
</div>
|
</li>
|
<li>
|
<div class="item-content item-input">
|
<div class="item-inner">
|
<div class="item-title item-label">电池浮充电压阀值(0.1~60.0V)</div>
|
<div class="item-input-wrap">
|
<input type="text" v-model="param.FloatChargeVol">
|
</div>
|
</div>
|
</div>
|
</li>
|
<li>
|
<div class="item-content item-input">
|
<div class="item-inner">
|
<div class="item-title item-label">电池浮充电流阀值(0.1~30.0A)</div>
|
<div class="item-input-wrap">
|
<input type="text" v-model="param.FloatChargeCurr">
|
</div>
|
</div>
|
</div>
|
</li>
|
<li>
|
<div class="item-content item-input">
|
<div class="item-inner">
|
<div class="item-title item-label">在线电压低阀值(0.1~60.0V)</div>
|
<div class="item-input-wrap">
|
<input type="text" v-model="param.OnlineVolLow">
|
</div>
|
</div>
|
</div>
|
</li>
|
<li>
|
<div class="item-content item-input">
|
<div class="item-inner">
|
<div class="item-title item-label">电池组连接类型</div>
|
<div class="item-input-wrap">
|
<input type="text" v-model="param.GroupConnType">
|
</div>
|
</div>
|
</div>
|
</li>
|
</ul>
|
</form>
|
</div>
|
</div>
|
</template>
|
<script>
|
return {
|
data: function() {
|
var params = this.$route.params;
|
return {
|
params: params
|
}
|
},
|
on: {
|
pageInit: function() {
|
var params = this.params;
|
var cmd = bus.cmd.batt;
|
var vm = this.vm = new Vue({
|
el: '#battParamSet',
|
delimiters: ['${', '}'],
|
data: {
|
staticParam: {
|
homeName: params.home
|
},
|
status: {
|
read: false, // 读取状态
|
values: false // 数据验证状态
|
},
|
param: {
|
dev_id: params.fbsid // 设备的id
|
,num: cmd.get // 获取的命令
|
,dev_ip: '127.0.0.1' // 设备的ip
|
,STD_CAP: 1 // 电池标称容量(AH)
|
,STD_RES: 1 // 电池标称内阻(uΩ)
|
,BattGroupCount: 1 // 电池组数
|
,EachGroupBattCount: 1 // 每组电池单体数量
|
,MonomerVol: 0.1 // 单体标称电压(V)
|
,GroupVol: 0.1 // 电池组端标称电压(V)
|
,BattTemp: 0.1 // 电池标称温度(℃)
|
,FloatChargeVol: 0.1 // 电池浮充电压阀值(V)
|
,FloatChargeCurr: 0.1 // 电池浮充电流阀值(A)
|
,OnlineVolLow: 0.1 // 在线电压低阀值(V)
|
,GroupConnType: 0 // 电池组连接类型
|
},
|
verify: {
|
STD_CAP: {
|
pattern: /^[0-9]{1,4}(\.[0-9]{0,1})?$/,
|
regVal: true,
|
min: 1,
|
max: 6000,
|
name: '电池标称容量',
|
msg: '取值范围1~6000.0'
|
},
|
STD_RES: {
|
pattern: /^[0-9]{1,4}$/,
|
regVal: true,
|
min: 1,
|
max: 60000,
|
name: '电池标称内阻',
|
msg: '取值范围1~60000'
|
},
|
BattGroupCount: {
|
pattern: /^[0-9]{1,4}$/,
|
regVal: true,
|
min: 1,
|
max: 2,
|
name: '电池组数',
|
msg: '取值范围1~2'
|
},
|
EachGroupBattCount: {
|
pattern: /^[0-9]{1,4}$/,
|
regVal: true,
|
min: 1,
|
max: 300,
|
name: '每组电池单体数量',
|
msg: '取值范围1~300'
|
},
|
MonomerVol: {
|
pattern: /^[0-9]{1,4}(\.[0-9]{0,1})?$/,
|
regVal: true,
|
min: 0.1,
|
max: 20,
|
name: '单体标称电压',
|
msg: '取值范围0.1~20.0'
|
},
|
GroupVol: {
|
pattern: /^[0-9]{1,4}(\.[0-9]{0,1})?$/,
|
regVal: true,
|
min: 0.1,
|
max: 600,
|
name: '电池组端标称电压',
|
msg: '取值范围0.1~600.0'
|
},
|
BattTemp: {
|
pattern: /^[0-9]{1,4}(\.[0-9]{0,1})?$/,
|
regVal: true,
|
min: 0.1,
|
max: 60,
|
name: '电池标称温度',
|
msg: '取值范围0.1~60.0'
|
},
|
FloatChargeVol: {
|
pattern: /^[0-9]{1,4}(\.[0-9]{0,1})?$/,
|
regVal: true,
|
min: 0.1,
|
max: 60,
|
name: '电池浮充电压阀值',
|
msg: '取值范围0.1~60.0'
|
},
|
FloatChargeCurr: {
|
pattern: /^[0-9]{1,4}(\.[0-9]{0,1})?$/,
|
regVal: true,
|
min: 0.1,
|
max: 30,
|
name: '电池浮充电流阀值',
|
msg: '取值范围0.1~30.0'
|
},
|
OnlineVolLow: {
|
pattern: /^[0-9]{1,4}(\.[0-9]{0,1})?$/,
|
regVal: true,
|
min: 0.1,
|
max: 60,
|
name: '在线电压低阀值',
|
msg: '取值范围0.1~60.0'
|
},
|
GroupConnType: {
|
pattern: /^[0-9]{1,4}$/,
|
regVal: true,
|
min: 0,
|
max: 1,
|
name: '电池组连接类型',
|
msg: '取值范围0~1'
|
}
|
}
|
},
|
watch: {
|
status: {
|
handler: function(val) {
|
bus.$emit('setStatus', val);
|
},
|
deep: true,
|
}
|
},
|
methods: {
|
readParams: function() {
|
var _self = this;
|
var param = this.param;
|
param.num = cmd.get; // 设置读取命名
|
// 读取电池参数
|
app.preloader.show(); // 显示等待框
|
$.ajax({
|
type: 'post'
|
,async: true
|
,url:'Fbs9100_battparamAction_action_update'
|
,data: 'json='+JSON.stringify(param)
|
,dataType: 'json'
|
,success: function(res) {
|
var rs = JSON.parse(res.result);
|
if(rs.code ==1) {
|
_self.searchParams();
|
}else {
|
_self.status.read = false; // 设置读取状态
|
toast.open({
|
text: '获取电池参数失败!',
|
position: "center",
|
closeTimeout: 2000
|
});
|
app.preloader.hide(); // 关闭等待框
|
}
|
}
|
});
|
},
|
searchParams: function() {
|
var _self = this;
|
var param = this.param;
|
var temp = {
|
dev_id: param.dev_id
|
}
|
// 查询电池参数
|
$.ajax({
|
type: 'post'
|
,async: true
|
,url:'Fbs9100_battparamAction_action_serchByCondition'
|
,data: 'json='+JSON.stringify(temp)
|
,dataType: 'json'
|
,success: function(res) {
|
var rs = JSON.parse(res.result);
|
if(rs.code == 1) {
|
_self.setBattParams(rs.data[0]);
|
_self.status.read = true; // 设置读取状态
|
_self.status.values = true; // 设置数据格式
|
}else {
|
toast.open({
|
text: '获取电池参数失败!',
|
position: "center",
|
closeTimeout: 2000
|
});
|
_self.status.read = false; // 设置读取状态
|
}
|
app.preloader.hide(); // 关闭等待框
|
}
|
});
|
},
|
setBattParams: function(data) {
|
var param = this.param;
|
//param.dev_ip = data.dev_ip; // 设备的ip
|
param.STD_CAP = data.STD_CAP; // 电池标称容量(AH)
|
param.STD_RES =data.STD_RES; // 电池标称内阻(uΩ)
|
param.BattGroupCount = data.BattGroupCount; // 电池组数
|
param.EachGroupBattCount = data.EachGroupBattCount; // 每组电池单体数量
|
param.MonomerVol = data.MonomerVol; // 单体标称电压(V)
|
param.GroupVol = data.GroupVol; // 电池组端标称电压(V)
|
param.BattTemp = data.BattTemp; // 电池标称温度(℃)
|
param.FloatChargeVol = data.FloatChargeVol; // 电池浮充电压阀值(V)
|
param.FloatChargeCurr = data.FloatChargeCurr; // 电池浮充电流阀值(A)
|
param.OnlineVolLow = data.OnlineVolLow; // 在线电压低阀值(V)
|
param.GroupConnType = data.GroupConnType; // 电池组连接类型
|
},
|
updateParam: function() {
|
var param = this.param;
|
var verify = this.verify;
|
// 修改命令num属性的的值为设置参数
|
param.num = cmd.set;
|
checkObjIsGood(param, verify, function(result) {
|
if(result.code) {
|
app.dialog.confirm('确认设置电池参数?', function() {
|
// 请求设置参数
|
app.preloader.show(); // 开启等待框
|
$.ajax({
|
type: 'post'
|
,async: true
|
,url:'Fbs9100_battparamAction_action_update'
|
,data: 'json='+JSON.stringify(result.data)
|
,dataType: 'json'
|
,success: function(res) {
|
var rs = JSON.parse(res.result);
|
toast.open({
|
text: rs.msg,
|
position: "center",
|
closeTimeout: 2000
|
});
|
app.preloader.hide(); // 关闭等待框
|
}
|
});
|
});
|
}else { // 检测数据不合格提示
|
toast.open({
|
text: result.name+":"+result.msg,
|
position: 'top',
|
closeTimeout: 3000
|
});
|
}
|
});
|
}
|
},
|
mounted: function() {
|
var _self = this;
|
// 读取电池参数
|
this.readParams();
|
|
// 监控读取参数按钮
|
bus.$off('readParams').$on('readParams', function() {
|
_self.readParams();
|
});
|
|
// 监听设置按钮
|
bus.$off('setParams').$on('setParams', function(bool) {
|
if(bool) {
|
_self.updateParam();
|
}
|
});
|
}
|
});
|
|
var btnVm = new Vue({
|
el: '#battParamSetBtn',
|
delimiters: ['${', '}'],
|
data: {
|
setBtnStatus: false
|
},
|
methods: {
|
readParams: function() {
|
bus.$emit('readParams');
|
},
|
setParams: function() {
|
bus.$emit('setParams', this.setBtnStatus);
|
}
|
},
|
mounted: function() {
|
var _self = this;
|
bus.$off('setStatus').$on('setStatus', function(status) {
|
if(status.read && status.values) {
|
_self.setBtnStatus = true;
|
}else {
|
_self.setBtnStatus = false;
|
}
|
});
|
}
|
});
|
}
|
}
|
}
|
</script>
|