<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
|
<%
|
String path = request.getContextPath();
|
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
|
%>
|
<%@ taglib uri="/struts-tags" prefix="s" %>
|
<!DOCTYPE HTML>
|
<html>
|
<head>
|
<base href="<%=basePath%>">
|
<meta charset="UTF-8">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta http-equiv="pragma" content="no-cache">
|
<meta http-equiv="cache-control" content="no-cache">
|
<meta http-equiv="expires" content="0">
|
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
|
<meta http-equiv="description" content="This is my page">
|
<title>批量系统参数设置</title>
|
<link rel="stylesheet" type="text/css" href="pages/css/base.css">
|
<link rel="stylesheet" type="text/css" href="jqueryui/jquery-ui.css">
|
<link rel="stylesheet" type="text/css" href="src/css/layui.css">
|
<link rel="stylesheet" type="text/css" href="pages/css/mylayui.css">
|
<link rel="stylesheet" type="text/css" href="css/popup-tbl.css">
|
<link rel="stylesheet" type="text/css" href="css/whyc-ui.css">
|
<style>
|
.dataTypeCont {
|
width: 160px;
|
text-align: center;
|
}
|
.dataTypeCont .layui-form-switch {
|
min-width: 70px;
|
margin-top: 4px;
|
}
|
.error-img {
|
visibility: hidden;
|
font-size: 20px;
|
color: #FF0000;
|
}
|
.error-data {
|
visibility:visible !important;
|
}
|
input.error-data {
|
outline: none !important;
|
border: 1px solid #FF0000 !important;
|
}
|
.layui-table-header .fa:hover {
|
cursor: pointer;
|
color: #1E9FFF;
|
}
|
</style>
|
</head>
|
<body>
|
<!--头部内容开始-->
|
<jsp:include page="Top.jsp" flush="true"/>
|
<!--头部内容结束-->
|
<!--导航开始-->
|
<jsp:include page="nav.jsp" flush="true"/>
|
<!-- 主体内容 -->
|
<div class="layui-page-container" data-genuitec-lp-enabled="false" data-genuitec-file-id="wc1-14" data-genuitec-path="/gx_tieta/WebRoot/batch-set-curr.jsp">
|
<!-- 条件筛选 -->
|
<div class="layui-page-filter">
|
<div class="page-filter-header layui-page-filter-fweight">批量系统参数设置</div>
|
<div class="page-filter-content">
|
<table>
|
<tr class="layui-page-filter-tbl-header layui-page-filter-fweight">
|
<td>省</td> <!-- 省 -->
|
<td>市</td> <!-- 市 -->
|
<td>区/县</td> <!-- 市 -->
|
<td><s:text name="Computer_name"/></td> <!-- 机房名称 -->
|
<td>系统类型</td>
|
|
</tr>
|
<tr>
|
<td>
|
<div class="layui-form" lay-filter="provinceFilter">
|
<div class="layui-form-item">
|
<div class="layui-input-block">
|
<select name="province" id="province" lay-filter="province">
|
<option value="">请选择省</option>
|
</select>
|
</div>
|
</div>
|
</div>
|
</td>
|
<td>
|
<div class="layui-form" lay-filter="cityFilter">
|
<div class="layui-form-item">
|
<div class="layui-input-block">
|
<select name="city" id="city" lay-filter="city">
|
<option value="">请选择市/区</option>
|
</select>
|
</div>
|
</div>
|
</div>
|
</td>
|
<td>
|
<div class="layui-form" lay-filter="countyFilter">
|
<div class="layui-form-item">
|
<div class="layui-input-block">
|
<select name="county" id="county" lay-filter="county" lay-search="">
|
<option value="">请选择区/县</option>
|
</select>
|
</div>
|
</div>
|
</div>
|
</td>
|
|
<td>
|
<div class="layui-form" lay-filter="homeFilter">
|
<div class="layui-form-item">
|
<div class="layui-input-block">
|
<select name="home" id="home" lay-filter="home" lay-search="">
|
<option value="">请选择机房</option>
|
</select>
|
</div>
|
</div>
|
</div>
|
</td>
|
<td>
|
<div class="layui-form" lay-filter="sysTypeFilter">
|
<div class="layui-form-item">
|
<div class="layui-input-block">
|
<select name="sysType" id="sysType" lay-filter="sysType" lay-search="">
|
<option value="12">12V设备</option>
|
<option value="2">2V设备</option>
|
</select>
|
</div>
|
</div>
|
</div>
|
</td>
|
<td style="display:none;">
|
<div class="layui-form" lay-filter="battNumFilter">
|
<div class="layui-form-item">
|
<div class="layui-input-block">
|
<select name="battNum" id="battNum" lay-filter="battNum" lay-search="">
|
<option value="0">电池组1</option>
|
<option value="1">电池组2</option>
|
</select>
|
</div>
|
</div>
|
</div>
|
</td>
|
|
</tr>
|
</table>
|
</div>
|
</div>
|
<!-- 页面主题内容 -->
|
<div class="layui-page-content" style="position: relative;">
|
<div class="layui-tbl-filter">
|
<div class="layui-form layui-form-pane" lay-filter="tblFilter">
|
<div class="layui-inline">
|
<div class="layui-input-inline">
|
<div class="layui-form" lay-filter="addTypeFilter">
|
<select name="addType" id="addType" lay-filter="addType">
|
<option value="0">单个机房</option>
|
<option value="5">全区/县</option>
|
<option value="2">全市</option>
|
<option value="1">全省</option>
|
</select>
|
</div>
|
</div>
|
</div>
|
<button class="layui-btn layui-btn-sm mrl8" id="batchAdd"><i class="fa fa-plus mrr8"></i>添加设备</button>
|
<button class="layui-btn layui-btn-sm" id="sysSet">下发系统参数</button>
|
<button class="layui-btn layui-btn-sm" id="readSysSet">读取系统参数</button>
|
<button class="layui-btn layui-btn-sm" id="sysRestart">批量重启设备</button>
|
<span class="mrl8">选中个数/总数:</span>
|
<button class="layui-btn layui-btn-sm" id="qNumber">0/0</button>
|
</div>
|
</div>
|
<!-- 表格内容 -->
|
<table id="pageTbl" lay-filter="pageTbl"></table>
|
</div>
|
</div>
|
<!-- 存储set-curr.html的信息 -->
|
<div id="sysSetTestData"></div>
|
<div id="setCurrBtn"></div>
|
<!-- 单体数据来源 -->
|
<script type="text/html" id="DtCardCount">
|
{{# if(d.DtCardCount==1) { }}
|
从一拖24获取
|
{{# }else{ }}
|
<span style="color: #FF0000">从汇集器获取</span>
|
{{# } }}
|
</script>
|
<!-- 操作栏 -->
|
<script type="text/html" id="doThings">
|
<button class="layui-btn layui-btn-sm layui-btn-normal" lay-event="read">读取</button>
|
</script>
|
<!-- 读取状态 -->
|
<script type="text/html" id="readStatus">
|
{{# if(d.readStatus == 1){ }}
|
<button class="layui-btn layui-btn-sm layui-btn-normal">读取成功</button>
|
{{# }else { }}
|
<button class="layui-btn layui-btn-sm layui-btn-danger">读取失败</button>
|
{{# } }}
|
</script>
|
<!-- 设置状态 -->
|
<script type="text/html" id="setStatus">
|
{{# if(d.setStatus == 1){ }}
|
<button class="layui-btn layui-btn-sm layui-btn-normal">设置成功</button>
|
{{# }else if(d.setStatus == 2) { }}
|
<button class="layui-btn layui-btn-sm layui-btn-danger">设置失败</button>
|
{{# }else { }}
|
<button class="layui-btn layui-btn-sm layui-btn-disabled">未设置</button>
|
{{# } }}
|
</script>
|
<script type="text/html" id="allStatus">
|
{{#
|
var getStatus = function (val) {
|
var status = '<button class="layui-btn layui-btn-sm layui-btn-danger">未知</button>';
|
switch(val) {
|
case 0:
|
status='<button class="layui-btn layui-btn-sm layui-btn-danger">读取失败</button>';
|
break;
|
case 1:
|
status='<button class="layui-btn layui-btn-sm layui-btn-normal">读取成功</button>';
|
break;
|
case 2:
|
status='<button class="layui-btn layui-btn-sm layui-btn-danger">设置失败</button>';
|
break;
|
case 3:
|
status='<button class="layui-btn layui-btn-sm">设置成功</button>';
|
break;
|
case 4:
|
status='<button class="layui-btn layui-btn-sm layui-btn-danger">重启失败</button>';
|
break;
|
case 5:
|
status='<button class="layui-btn layui-btn-sm layui-btn-warm">重启成功</button>';
|
break;
|
case 6:
|
status='<button class="layui-btn layui-btn-sm layui-btn-warm">修改未设置</button>';
|
break;
|
}
|
return status;
|
};
|
}}
|
<button class="layui-btn layui-btn-sm" lay-event="readSysSet">读取</button>
|
{{ getStatus(d.allStatus) }}
|
</script>
|
<!-- 电流钳量程 -->
|
<script type="text/html" id="CurrentRange">
|
{{# if(d.CurrentRange_bool == 1){ }}
|
{{d.CurrentRange}}
|
{{# }else{ }}
|
<span style="color:#FF0000;">{{d.CurrentRange}}</span>
|
{{# } }}
|
</script>
|
<!-- DCDC模块数量 -->
|
<script type="text/html" id="LoaderCount">
|
{{# if(d.LoaderCount_bool == 1){ }}
|
{{d.LoaderCount}}
|
{{# }else{ }}
|
<span style="color:#FF0000;">{{d.LoaderCount}}</span>
|
{{# } }}
|
</script>
|
<!-- 普通面板 -->
|
<script type="text/html" id="normalSet">
|
<div class="layui-form layui-"></div>
|
</script>
|
<!-- 设置参数面板 -->
|
<script type="text/html" id="sysSetNormalTpl">
|
<div class="layui-form layui-form-pane layui-form-pane-width160 mrl8 mrr8 mrt30" id="sysSetForm" lay-filter="sysSetFilter">
|
<div class="layui-form-item">
|
<label class="layui-form-label">{{d.msg}}</label>
|
<div class="layui-input-block">
|
<input type="text" id="sysSetVal" name="{{d.field}}" lay-verify="{{d.verify}}" lay-verType="tips" placeholder="请输入设定参数" autocomplete="off" class="layui-input">
|
</div>
|
</div>
|
<div class="layui-form-item t-align-right" style="display: none">
|
<button class="layui-btn layui-btn-sm mrr8" lay-submit="" lay-fllter="go" id="go">确定</button>
|
<button class="layui-btn layui-btn-sm layui-btn-danger mrr8">取消</button>
|
</div>
|
</div>
|
</script>
|
<!-- 设置单体数据来源面板 -->
|
<script type="text/html" id="sysSetDtCardCountTpl">
|
<div class="layui-form layui-form-pane layui-form-pane-width160 mrl8 mrr8 mrt30" id="sysSetForm" lay-filter="sysSetFilter">
|
<div class="layui-form-item">
|
<label class="layui-form-label">{{d.msg}}</label>
|
<div class="layui-input-block">
|
<select name="{{d.field}}">
|
<option value="1">从一拖24获取</option>
|
<option value="0">从汇集器获取</option>
|
</select>
|
</div>
|
</div>
|
<div class="layui-form-item t-align-right" style="display: none">
|
<button class="layui-btn layui-btn-sm mrr8" lay-submit="" lay-fllter="go" id="go">确定</button>
|
<button class="layui-btn layui-btn-sm layui-btn-danger mrr8">取消</button>
|
</div>
|
</div>
|
</script>
|
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
|
<script type="text/javascript" src="js/echarts.js"></script>
|
<script type="text/javascript" src="jqueryui/jquery-ui.min.js"></script>
|
<script type="text/javascript" src="js/popup.js"></script>
|
<script type="text/javascript" src="src/layui.js"></script>
|
<script type="text/javascript" src="pages/js/mylayui.js"></script>
|
<script type="text/javascript" src="js/whyc-jqueryui.js"></script>
|
<script type="text/javascript" src="pages/js/common.js"></script>
|
<script type="text/javascript">
|
var BTS_popup = new Popup($('#sysSet_popup'));
|
// 充放电弹出框设置
|
$(function() {
|
// 初始化bts弹出框
|
$('#sysSet_popup').find('.close').bind('click', function() {
|
BTS_popup.hidePopup(); // 隐藏bts弹出框和遮罩层
|
});
|
|
// 窗口大小改变
|
$(window).resize(function() {
|
BTS_popup.hidePopup(); // 隐藏bts弹出框和遮罩层
|
});
|
});
|
|
layui.use(['form', 'table', 'layer', 'element', 'laytpl'], function() {
|
var table = layui.table; // 获取表格模块
|
var form = layui.form; // 获取表单模块
|
var layer = layui.layer; // 获取弹出框模块
|
var element = layui.element; // 获取元素操作模块
|
var laytpl = layui.laytpl; // 获取模块操作
|
|
var isNewLoad = true;
|
var pre_province = getQueryString('province');
|
// 查询省下拉框
|
searchProvince();
|
// 查询省
|
var filterLoad = layer.load();
|
function searchProvince() {
|
// 请求后台查询
|
$.ajax({
|
type:'post',
|
async:true,
|
url: 'User_battgroup_baojigroup_battgroupAction!serchStationName1InGroup',
|
data: null,
|
dataType: 'json',
|
success:function(result) {
|
var rs = JSON.parse(result.result);
|
var list = []; // option结果集
|
var ele = $('#province'); // 目标select
|
if(rs.code == 1) {
|
var data = rs.data;
|
list.push(getLayuiSelect('请选择省/直辖市', '', {}, undefined));
|
// 遍历查询结果
|
for(var i=0; i<data.length; i++) {
|
var _data = data[i];
|
var _tmp = getLayuiSelect(_data, _data, {}, {});
|
if(pre_province == _data && isNewLoad){
|
_tmp = getLayuiSelect(_data, _data, {}, {},true);
|
}
|
list.push(_tmp);
|
}
|
}else {
|
list.push(getLayuiSelect('暂无省/直辖市', '', {}, undefined));
|
}
|
|
// 根据对象数组生成下拉列表
|
createLayuiSelect(ele, list);
|
form.render('select', 'provinceFilter');
|
|
// 查询市
|
searchCity();
|
}
|
});
|
}
|
|
// 切换省-市
|
form.on('select(province)', function(data) {
|
// 查询市
|
searchCity(true);
|
});
|
|
// 查询市
|
function searchCity(isLoad) {
|
// 构造查询条件
|
var tmp = {
|
StationName1: $("#province").val()
|
};
|
var pre_city = getQueryString('city');
|
|
// 是否添加等待
|
if(isLoad) {
|
filterLoad = layer.load();
|
}
|
// 根据构造条件查询内容
|
$.ajax({
|
type: 'post',
|
async: true,
|
url: 'BattInfAction!serchStationName2',
|
dataType: 'json',
|
data: "json = "+JSON.stringify(tmp),
|
success: function(result) {
|
var rs = JSON.parse(result.result);
|
var list = []; // option结果集
|
var ele = $('#city'); // 目标select
|
if(rs.code == 1) {
|
var data = rs.data;
|
list.push(getLayuiSelect('请选择市/区', '', {}, undefined));
|
// 遍历查询结果
|
for(var i=0; i<data.length; i++) {
|
var _data = data[i];
|
var _tmp = getLayuiSelect(_data.StationName2, _data.StationName2, {}, _data);
|
if(pre_city == _data.StationName2 && isNewLoad){
|
_tmp = getLayuiSelect(_data.StationName2, _data.StationName2, {}, _data,true);
|
}
|
list.push(_tmp);
|
}
|
}else {
|
list.push(getLayuiSelect('暂无市/区', '', {}, undefined));
|
}
|
|
// 根据对象数组生成下拉列表
|
createLayuiSelect(ele, list);
|
form.render('select', 'cityFilter');
|
|
// 查询区县
|
searchCounty();
|
}
|
});
|
}
|
|
// 切换市-区县
|
form.on('select(city)', function(data) {
|
// 查询区县
|
searchCounty(true);
|
});
|
|
|
// 查询区/县
|
function searchCounty(isLoad) {
|
// 构造查询条件
|
var tmp = {
|
StationName1: $("#province").val(),
|
StationName2: $("#city").val()
|
};
|
// 是否添加等待
|
if(isLoad) {
|
filterLoad = layer.load();
|
}
|
var pre_county = getQueryString('county');
|
// 根据构造条件查询内容
|
$.ajax({
|
type: 'post',
|
async: true,
|
url: 'BattInfAction!serchStationName5',
|
dataType: 'json',
|
data: "json = "+JSON.stringify(tmp),
|
success: function(result) {
|
var rs = JSON.parse(result.result);
|
//console.info(rs);
|
var list = []; // option结果集
|
var ele = $('#county'); // 目标select
|
if(rs.code == 1) {
|
var data = rs.data;
|
list.push(getLayuiSelect('请选择区/县', '', {}, undefined));
|
// 遍历查询结果
|
for(var i=0; i<data.length; i++) {
|
var _data = data[i];
|
var _tmp = getLayuiSelect(_data.StationName5, _data.StationName5, {}, _data);
|
if(pre_county == _data.StationName5 && isNewLoad){
|
_tmp = getLayuiSelect(_data.StationName5, _data.StationName5, {}, _data,true);
|
}
|
//console.info(_tmp);
|
list.push(_tmp);
|
}
|
}else {
|
list.push(getLayuiSelect('暂无区/县', '', {}, undefined));
|
}
|
|
// 根据对象数组生成下拉列表
|
createLayuiSelect(ele, list);
|
form.render('select', 'countyFilter');
|
|
// 查询机房
|
searchHome();
|
}
|
});
|
}
|
|
// 切换市-区县
|
form.on('select(county)', function(data) {
|
// 查询区县
|
searchHome(true);
|
});
|
|
// 查询机房
|
function searchHome(isLoad) {
|
// 构造查询条件
|
var tmp = {
|
StationName1:$("#province").val(),
|
StationName2:$("#city").val(),
|
StationName5:$("#county").val(),
|
};
|
var pre_home = getQueryString('home');
|
var auto_seach = false;
|
// 是否添加等待
|
if(isLoad) {
|
filterLoad = layer.load();
|
}
|
// 根据构造条件查询内容
|
$.ajax({
|
type: 'post',
|
async: true,
|
url: 'BattInfAction!serchStationName3',
|
dataType: 'json',
|
data: "json = "+JSON.stringify(tmp),
|
success: function(result) {
|
var rs = JSON.parse(result.result);
|
var list = []; // option结果集
|
var ele = $('#home'); // 目标select
|
if(rs.code == 1) {
|
var data = rs.data;
|
list.push(getLayuiSelect('请选择机房', '', {StationId: '', dev_id: ''}, undefined));
|
// 遍历查询结果
|
for(var i=0; i<data.length; i++) {
|
var _data = data[i];
|
var _attr = {
|
StationId: _data.StationId,
|
dev_id: _data.FBSDeviceId
|
};
|
var _tmp = getLayuiSelect(_data.StationName, _data.StationName, _attr, _data);
|
if(pre_home == _data.StationName && isNewLoad){
|
_tmp = getLayuiSelect(_data.StationName, _data.StationName, _attr, _data,true);
|
auto_seach = true;
|
}
|
list.push(_tmp);
|
}
|
}else {
|
list.push(getLayuiSelect('暂无机房', '', {}, undefined));
|
}
|
// 根据对象数组生成下拉列表
|
createLayuiSelect(ele, list);
|
form.render('select', 'homeFilter');
|
isNewLoad = false;
|
layer.close(filterLoad);
|
}
|
});
|
}
|
|
// 切换机房
|
form.on('select(home)', function(data) {
|
|
});
|
|
// 表格模块
|
var tOptions = {
|
elem: '#pageTbl'
|
,toolbar: true
|
,defaultToolbar: []
|
,cellMinWidth: 80
|
,cols: [[
|
{type:'checkbox',fixed: 'left'}
|
,{field:'dev_id', title:'设备ID', align:'center', width: 160}
|
,{field:'stationName', title:'机房名称', align:'center', width: 470}
|
,{field:'BattGroupNum', title:'电池组数', align:'center', width: 120}
|
,{field:'GroupVolRange', title:'总续航时间(分钟)<i class="fa fa-edit normal" title="设置总续航时间"></i>', align:'center', width: 180}
|
,{field:'GroupVolSorce', title:'保一次下电续航时间(分钟)<i class="fa fa-edit normal" title="设置保一次下电续航时间"></i>', align:'center', width: 240}
|
,{field:'CurrentRange', title:'电流钳量程(A)<i class="fa fa-edit normal" title="设置电流钳量程"></i>', templet: '#CurrentRange', align:'center', width: 180}
|
,{field:'CurrentTyte', title:'一次下电(V)<i class="fa fa-edit normal" title="设置一次下电"></i>', align:'center', width: 180}
|
,{field:'MonomerOrder', title:'二次下电(V)<i class="fa fa-edit normal" title="设置二次下电"></i>', align:'center', width: 180}
|
,{field:'LoaderCount', title:'DCDC数量 <i class="fa fa-edit normal" title="设置DCDC数量"></i>',templet: '#LoaderCount', align:'center', width: 180}
|
,{field:'DtCardCount', title:'单体数据来源 <i class="fa fa-edit DtCardCount" title="设置单体数据来源"></i>', templet: '#DtCardCount', align:'center', width: 200}
|
,{field:'POF_BG_Boost_Cnt', title:'续航组数 <i class="fa fa-edit normal" title="设置续航组数"></i>', align:'center', width: 240}
|
,{field:'POF_BG_Boost_VolStop', title:'续航下限(V)<i class="fa fa-edit normal" title="设置续航下限"></i>', align:'center', width: 160}
|
,{field:'POF_BG_Boost_VolStart', title:'续航启动下限(V)<i class="fa fa-edit normal" title="设置续航启动下限"></i>', align:'center', width: 200}
|
,{field:'MajorBattGroupNum', title:'主电池组号 <i class="fa fa-edit normal" title="设置主电池组号"></i>', align:'center', width: 200}
|
,{field: 'moncapstds', title: '标称容量(AH)', align: 'center', width: 180}
|
,{field: 'RealCap', title: '实际容量(AH)', align: 'center', width: 180}
|
,{field:'StationName9', title:'版本号', align:'center', width: 160}
|
,{field:'Load_curr', title:'负载电流(A)', align:'center', width: 160}
|
,{field:'BackLightTime', title:'背光时间(分钟)<i class="fa fa-edit normal" title="设置背光时间"></i>', align:'center', width: 160}
|
,{field:'PowerBreakChargeCurr', title:'停电充电电流(A)<i class="fa fa-edit normal" title="设置停电充电电流"></i>', align:'center', width: 240}
|
,{field:'allStatus', fixed: 'right', title: '状态', templet: '#allStatus', align: 'center', width: 220}
|
]]
|
,data:[]
|
,limit: 10000
|
,page: false
|
,height: 'full-252'
|
};
|
|
// 生成表格数据
|
table.render(tOptions);
|
|
// 更新表格的对象
|
var layuiTbl = new LayuiTbl(tOptions, layui, laytpl, table.cache.pageTbl);
|
|
// 统计已选中个数和添加到表格中数据的个数
|
var quantNum = new QuantNumber($('#qNumber'));
|
|
// 表格复选框点击监测
|
table.on('checkbox(pageTbl)', function(obj){
|
var checkStatus = table.checkStatus('pageTbl'); //idTest 即为基础参数 id 对应的值
|
var checkData = checkStatus.data; // 被选中的数据
|
quantNum.setMol(checkData.length);
|
});
|
|
// 定义系统参数面板中form
|
var sysSetForm = new LayuiForm('sysSetForm');
|
|
// 设置普通系统参数模板
|
var sysSetNormalTpl = $('#sysSetNormalTpl').html();
|
|
// 设置单体数据来源模板
|
var sysSetDtCardCountTpl = $('#sysSetDtCardCountTpl').html();
|
|
// 点击表格中同步的按钮
|
$('.layui-page-content').on('click', '.layui-table-header .fa.normal', function() {
|
var title = $(this).attr('title');
|
var th = $(this).parent().parent().parent();
|
var field = th.data('field');
|
|
// 判断是否存在可以设置的机房
|
if(tOptions.data.length == 0) {
|
layer.msg('请先添加机房!');
|
}else {
|
var checkStatus = table.checkStatus('pageTbl'); // 获取被选中的行
|
var checkData = checkStatus.data;
|
if(checkData.length == 0) {
|
layer.msg('请选择要设置的机房!');
|
return;
|
}
|
|
var keyIds= getKeyId(checkData);
|
|
// 更新指定的列
|
var showFormData = getShowFormData(title, field);
|
// 显示面板
|
changeTblData(sysSetNormalTpl, showFormData, keyIds);
|
}
|
});
|
|
// 点击表格单体数据来源进行修改
|
$('.layui-page-content').on('click', '.layui-table-header .fa.DtCardCount', function() {
|
var title = $(this).attr('title');
|
var th = $(this).parent().parent().parent();
|
var field = th.data('field');
|
|
// 判断是否存在可以设置的机房
|
if(tOptions.data.length == 0) {
|
layer.msg('请先添加机房!');
|
}else {
|
var checkStatus = table.checkStatus('pageTbl'); // 获取被选中的行
|
var checkData = checkStatus.data;
|
if(checkData.length == 0) {
|
layer.msg('请选择要设置的机房!');
|
return;
|
}
|
|
var keyIds= getKeyId(checkData);
|
|
// 更新指定的列
|
var showFormData = getShowFormData(title, field);
|
// 显示面板
|
changeTblData(sysSetDtCardCountTpl, showFormData, keyIds);
|
}
|
});
|
|
// 修改表格内容
|
function changeTblData(html, data, keyIds) {
|
// 面板显示
|
laytpl(html).render(data, function(html) {
|
// 面板
|
layer.open({
|
type: 1
|
,title: data.title
|
,area: ['400px', '200px']
|
,content: html
|
,btn:['确定', '取消']
|
,success: function() {
|
form.render(null, 'sysSetFilter');
|
}
|
,yes:function(index) {
|
$('#go').click(); // 触发layui form表单提交事件
|
sysSetForm.get(function(obj) {
|
layer.close(index); // 关闭面板
|
var rsData = [];
|
for(var i=0;i<keyIds.length; i++) {
|
var _keyId = keyIds[i];
|
var _rsData = $.extend({}, _keyId, obj);
|
var _trData = layuiTbl.getTr('dev_id', _rsData.dev_id);
|
// 如果是读取失败状态仍然是读取失败
|
if(_trData.data.allStatus == 0) {
|
_rsData.allStatus = 0;
|
}else {
|
_rsData.allStatus = 6; // 修改参数但未设置
|
}
|
|
// 判断是否为电流钳量程,设置是否符合标准
|
if(_rsData.CurrentRange != undefined) {
|
if(_trData.code == 1) {
|
// 设置当前内容是否符合标准
|
_rsData.CurrentRange_bool = checkCurrentRange(_trData.data.MonVolStd, _rsData.CurrentRange);
|
}
|
}
|
|
// 判断是否为DCDC模块数量,设置是否符合标准
|
if(_rsData.LoaderCount != undefined) {
|
if(_trData.code == 1) {
|
// 设置当前内容是否符合标准
|
_rsData.LoaderCount_bool = checkLoaderCount(_trData.data.MonVolStd, _rsData.LoaderCount);
|
}
|
}
|
|
rsData.push(_rsData);
|
}
|
|
// 更新表格的值
|
layuiTbl.update('dev_id', rsData);
|
});
|
}
|
});
|
});
|
}
|
|
|
// 构造显示面板的数据
|
function getShowFormData(title, field) {
|
var rs = {
|
title: title
|
,field: field
|
,verify: ''
|
,msg: ''
|
};
|
switch(field){
|
case 'GroupVolRange': // 总续航时间
|
rs.verify = 'required|number|intNum|GroupVolRange'
|
rs.msg = '取值范围0~9999'
|
break;
|
case 'GroupVolSorce': // 保一次下电续航时间
|
rs.verify = 'required|number|intNum|GroupVolRange'
|
rs.msg = '取值范围0~9999'
|
break;
|
case 'CurrentRange': // 电流钳量程
|
rs.verify = 'required|number|intNum|CurrentRange'
|
rs.msg = '取值范围10~9999'
|
break;
|
case 'CurrentTyte': // 一次下电电压
|
rs.verify = 'required|number|CurrentTyte'
|
rs.msg = '取值范围35.0~65.0'
|
break;
|
case 'MonomerOrder': // 二次下电电压
|
rs.verify = 'required|number|CurrentTyte'
|
rs.msg = '取值范围35.0~65.0'
|
break;
|
case 'LoaderCount': // DCDC模块数量
|
rs.verify = 'required|number|intNum|LoaderCount'
|
rs.msg = '取值范围1~10'
|
break;
|
case 'POF_BG_Boost_Cnt': // 停电升压榨干电池数量
|
rs.verify = 'required|number|intNum|POF_BG_Boost_Cnt'
|
rs.msg = '取值范围0~2'
|
break;
|
case 'POF_BG_Boost_VolStop': // 停电升压榨干电池端电压终止电压下限
|
rs.verify = 'required|number|CurrentTyte'
|
rs.msg = '取值范围35.0~65.0'
|
break;
|
case 'POF_BG_Boost_VolStart': // 停电升压榨干电池端电压启动电压下限
|
rs.verify = 'required|number|CurrentTyte'
|
rs.msg = '取值范围35.0~65.0'
|
break;
|
case 'MajorBattGroupNum': // 电池合路器主电池组编号
|
rs.verify = 'required|number|intNum|POF_BG_Boost_Cnt'
|
rs.msg = '取值范围0~2'
|
break;
|
case 'BackLightTime': // 背光时长
|
rs.verify = 'required|number|intNum|BackLightTime'
|
rs.msg = '取值范围0~999'
|
break;
|
case 'PowerBreakChargeCurr': // 背光时长
|
rs.verify = 'required|number|intNum|PowerBreakChargeCurr'
|
rs.msg = '取值范围0~50'
|
break;
|
case 'DtCardCount':
|
rs.verify = 'required';
|
rs.msg = '请选择来源';
|
break;
|
}
|
|
return rs;
|
}
|
|
// 自定义form表单验证规则
|
form.verify({
|
intNum: function(value) {
|
// 定义规则
|
var ptn=/^[0-9]*$/;
|
// 返回结果
|
var msg = '请输入整数';
|
if(!ptn.test(value)) {
|
return msg;
|
}
|
}
|
,GroupVolRange: function(value) {
|
// 定义规则
|
var ptn=/^[0-9]*$/;
|
var msg = '取值范围0~9999(整数)';
|
|
// 判断取值范围
|
if(value<0 || value>9999) {
|
return msg;
|
}
|
}
|
,CurrentRange: function(value) {
|
// 定义规则
|
var ptn=/^[0-9]*$/;
|
var msg = '取值范围10~9999(整数)';
|
|
// 验证规则
|
if(!ptn.test(value)) {
|
return msg;
|
}
|
|
// 判断取值范围
|
if(value<10 || value>9999) {
|
return msg;
|
}
|
}
|
,CurrentTyte: function(value) {
|
// 定义规则
|
var msg = '取值范围35.0~65.0';
|
// 判断取值范围
|
if(value<35 || value>65) {
|
return msg;
|
}
|
}
|
,LoaderCount: function(value) {
|
// 定义规则
|
var msg = '取值范围1~10(整数)';
|
|
// 判断取值范围
|
if(value<1 || value>10) {
|
return msg;
|
}
|
}
|
,POF_BG_Boost_Cnt: function(value) {
|
// 定义规则
|
var ptn=/^[0-9]*$/;
|
// 定义取值范围
|
var msg = '取值范围0~2(整数)';
|
|
// 判断取值范围
|
if(value<0 || value>2) {
|
return msg;
|
}
|
}
|
,BackLightTime: function(value) {
|
// 返回结果
|
var msg = '取值范围0~999(整数)';
|
|
// 判断取值范围
|
if(value<0 || value>999) {
|
return msg;
|
}
|
}
|
,PowerBreakChargeCurr: function(value) {
|
// 返回结果
|
var msg = '取值范围0~50(整数)';
|
|
// 判断取值范围
|
if(value<0 || value>50) {
|
return msg;
|
}
|
}
|
});
|
|
// 设置添加操作的字符串
|
var addBattStr = '';
|
// 点击添加电池组
|
$('#setCurrIframe').data('setCurr', []);
|
$('#batchAdd').click(function() {
|
var structData = structAddData();
|
// 判断是否选择要添加的内容
|
if(structData.msg) {
|
layer.msg(structData.msg);
|
return;
|
}
|
$('#setCurrIframe').data('setCurr', []);
|
// 弹出设置选择筛选条件
|
search(structData);
|
});
|
|
// 根据查询条件查询内容
|
function search(temp) {
|
var load = layer.load(1);
|
// 查询后台
|
$.ajax({
|
type: 'post'
|
,async: true
|
,url: 'Fbs9100_sysparamAction_action_serchBattinfAndParam'
|
,data: 'json='+JSON.stringify(temp)
|
,dataType: 'json'
|
,success: function(res) {
|
var rs = JSON.parse(res.result);
|
var data = [];
|
addBattStr = ''; // 初始化字符串
|
if(rs.code == 1) {
|
data = rs.data;
|
}else {
|
layer.msg('没有可设置的机房!');
|
}
|
|
// 如果有添加的数据
|
if(data.length !=0) {
|
if(addBattStr.length == 0) { // 字符串长度为0
|
addBattStr += getFilterStr(temp);
|
}else {
|
addBattStr += ','+getFilterStr(temp);
|
}
|
}
|
|
tOptions.data = formaterSearchRsData(data);
|
|
// 统计选中的个数/总数
|
quantNum.set(0, data.length);
|
// 生成表格数据
|
table.render(tOptions);
|
|
// 更新缓存数据
|
layuiTbl.setCache(table.cache.pageTbl);
|
}
|
,complete:function() {
|
layer.close(load);
|
}
|
});
|
}
|
|
|
// 处理查询结果的值并返回指定的数据格式
|
function formaterSearchRsData(data) {
|
var rs = [];
|
// 遍历data值
|
for(var i=0; i<data.length; i++) {
|
var _data = data[i];
|
var tmp = _data.obj[0]; // 系统信息
|
tmp.dev_id = _data.FBSDeviceId; // 设备ID
|
tmp.stationName = _data.StationName; // 机房名称
|
tmp.BattGroupNum = _data.BattGroupNum; // 电池组数
|
tmp.MonVolStd = _data.MonVolStd; // 单体标称电压
|
tmp.moncapstds = _data.moncapstds; // 单体标称容量
|
tmp.StationName9 = _data.StationName9; // 设备版本号
|
tmp.Load_curr = _data.Load_curr; // 负载电流
|
tmp.RealCap = '';
|
tmp.CurrentTyte = tmp.CurrentTyte/10; // 一次下电电压
|
tmp.MonomerOrder = tmp.MonomerOrder/10; // 二次下电电压
|
// 设置电池组实际容量字符串
|
for(var k=1; k<=_data.BattGroupNum;k++) {
|
var kStr = 'real_cap_group'+k;
|
if(k==_data.BattGroupNum) {
|
tmp.RealCap += _data[kStr].toFixed(0);
|
|
}else {
|
tmp.RealCap += _data[kStr].toFixed(0)+'/';
|
}
|
}
|
|
// 判断读取状态
|
if(_data.num == 1) {
|
tmp.allStatus = 1; // 读取成功
|
}else {
|
tmp.allStatus = 0; // 读取失败
|
}
|
tmp.CurrentRange_bool = checkCurrentRange(_data.MonVolStd, tmp.CurrentRange); // 检测电流钳量程
|
tmp.LoaderCount_bool = checkLoaderCount(_data.MonVolStd, tmp.LoaderCount); // 检测DCDC模块数量
|
//console.log(tmp.CurrentRange_bool);
|
// 将数据添加到结果集中
|
rs.push(tmp);
|
}
|
|
return rs;
|
}
|
|
// 点击添加构造查询
|
function structAddData() {
|
//1省(文本值) 2:市(文本值) 5:区县(文本值) 0:机房 (设备id)
|
var addType = $('#addType').val(); // 添加机房的方式
|
var msg = ''; // 提示信息
|
var rs = {
|
num: addType,
|
StationName: '',
|
GroupIndexInFBSDevice: $('#battNum').val(),
|
MonVolStd: $('#sysType').val()
|
};
|
switch(addType) {
|
case '1':
|
var province = $('#province').val();
|
rs.StationName = province;
|
msg = '请选择省';
|
break;
|
case '2':
|
var city = $('#city').val();
|
rs.StationName = city;
|
msg = '请选择市';
|
break;
|
case '5':
|
var county = $('#county').val();
|
rs.StationName = county;
|
msg = '请选择区/县';
|
break;
|
case '0':
|
var home = $('#home').find('option:selected').attr('stationid');
|
rs.StationName = home;
|
msg = '请选择机房';
|
break;
|
}
|
if(!rs.StationName) {
|
rs.msg = msg;
|
}
|
return rs;
|
}
|
|
// 系统参数
|
var sysSetCmd = GLOBAL.CMD.sys;
|
|
// 批量设置系统参数
|
$('#sysSet').click(function() {
|
var checkStatus = table.checkStatus('pageTbl'); // 获取被选中的行
|
var checkData = checkStatus.data;
|
if(checkData.length == 0) {
|
layer.msg('请选择要设置的机房!');
|
return;
|
}
|
|
let goodAndBadHome = getGoodAndBadHome(checkData);
|
console.log(goodAndBadHome);
|
let goodHome = goodAndBadHome.good;
|
// 判断是否存在可设置参数的机房
|
if(goodHome.length != 0) {
|
// 设置存储goodAndBadHome
|
$('#sysSetTestData').data('goodAndBadHome', goodAndBadHome);
|
// 打开面板
|
layer.open({
|
type: 2
|
,title: '系统参数设置提示'
|
,area: ['1200px', '500px']
|
,content: 'iframe/sys-set-test.html'
|
,btn:['确定', '取消']
|
,yes: function(sysSetTestIndex) {
|
// 遍历goodHome的值
|
for(var i=0; i<goodHome.length; i++) {
|
goodHome[i].num = 0; // num为0
|
goodHome[i].op_cmd = sysSetCmd.set; // 设置系统参数命令
|
goodHome[i].CurrentTyte = checkData[i].CurrentTyte*10; // 一次
|
goodHome[i].MonomerOrder =checkData[i].MonomerOrder*10; // 二次
|
}
|
|
// 判断是否修改系统参数
|
layer.confirm('是否确认修改系统参数', {icon: 3, title: '提示'}, function(index) {
|
// 关闭面板
|
layer.close(sysSetTestIndex);
|
|
// 关闭当前面板
|
layer.close(index);
|
|
// 批量设置
|
batchSetSys(goodHome);
|
});
|
}
|
});
|
}else {
|
layer.msg('请选择读取成功的机房!');
|
}
|
});
|
|
// 批量设置电池组
|
function batchSetSys(checkData) {
|
var loading = layer.load(1);
|
// 根据数据设置系统参数
|
$.ajax({
|
type: 'post'
|
,async: true
|
,url: 'Fbs9100_sysparamAction_action_updatePro'
|
,data: 'json='+JSON.stringify(checkData)+'&json_msg='+addBattStr
|
,dataType: 'json'
|
,success: function(res) {
|
var rs = JSON.parse(res.result);
|
if(rs.code == 1) {
|
layer.msg('设置参数成功');
|
var data = rs.data;
|
// 遍历data的值
|
var rsData = [];
|
for(var i=0; i<data.length; i++) {
|
var _data = data[i];
|
if(_data.num == 1) {
|
_data.allStatus = 3; // 设置成功
|
}else {
|
_data.allStatus = 2; // 设置失败
|
}
|
_data.CurrentTyte = _data.CurrentTyte/10; // 一次下电电压
|
_data.MonomerOrder = _data.MonomerOrder/10; // 二次下电电压
|
}
|
layuiTbl.update('dev_id', data);
|
}else {
|
layer.msg('设置参数失败');
|
var rsData= [];
|
// 遍历checkData的值
|
for(var i=0;i<checkData.length; i++) {
|
var _checkData = checkData[i];
|
var tmp = {};
|
tmp.dev_id = _checkData.dev_id;
|
_data.allStatus = 2; // 设置失败
|
rsData.push(tmp);
|
}
|
layuiTbl.update('dev_id', rsData);
|
}
|
}
|
,complete: function() {
|
layer.close(loading);
|
}
|
});
|
}
|
|
// 批量重启设备按钮
|
$('#sysRestart').click(function() {
|
var checkStatus = table.checkStatus('pageTbl'); // 获取被选中的行
|
var checkData = checkStatus.data;
|
if(checkData.length == 0) {
|
layer.msg('请选择要设置的机房!');
|
return;
|
}
|
|
// 调用重启设备的请求
|
batchRestartSys(checkData);
|
});
|
|
// 批量重启设备请求
|
function batchRestartSys(params) {
|
// 判断data是否为空
|
if(!params || params.length==0) {
|
layer.msg('请选择要重启的设备');
|
return;
|
}
|
|
// 弹出询问弹出框
|
layer.confirm('是否批量重启设备', {icon: 3, title: '提示'}, function(index) {
|
// 关闭弹出框
|
layer.close(index);
|
// 对数据进行处理
|
var rsData = [];
|
// 遍历params的值
|
for(var i=0; i<params.length; i++) {
|
var _params = params[i];
|
_params.op_cmd = sysSetCmd.restart;
|
_params.num = 0;
|
rsData.push(_params);
|
}
|
|
// 请求后台
|
ajaxBatchRestartSys(rsData);
|
|
});
|
}
|
|
// 根据数据向后台请求重启设备
|
function ajaxBatchRestartSys(params) {
|
var loading = layer.load(1);
|
// 重启设备
|
$.ajax({
|
type: 'post'
|
,async: true
|
,url: 'Fbs9100_sysparamAction_action_restartPL_FBS'
|
,data: 'json='+JSON.stringify(params)+'&json_msg='+addBattStr
|
,dataType: 'json'
|
,success: function(res) {
|
var rs = JSON.parse(res.result);
|
if(rs.code == 1) {
|
var data = rs.data;
|
// 遍历 data
|
for(var i=0; i<data.length; i++) {
|
var _data = data[i];
|
if(_data.num == 1) {
|
_data.allStatus = 5; // 重启成功
|
}else {
|
_data.allStatus = 4; // 重启失败
|
}
|
}
|
|
// 更新表格
|
layuiTbl.update('dev_id', data);
|
}
|
}
|
,error: function() {
|
layer.msg('重启失败');
|
// 遍历params
|
for(var i=0; i<params.length; i++) {
|
var _param = params[i];
|
_param.allStatus = 4; // 重启失败
|
}
|
|
// 更新表格
|
layuiTbl.update('dev_id', params);
|
}
|
,complete: function() {
|
layer.close(loading);
|
}
|
});
|
}
|
|
// 点击批量读取按钮
|
$('#readSysSet').click(function() {
|
let checkStatus = table.checkStatus('pageTbl'); // 获取被选中的行
|
let checkData = checkStatus.data;
|
if(checkData.length == 0) {
|
layer.msg('请选择要读取的机房!');
|
return;
|
}
|
|
// 遍历checkData的值
|
for(var i=0; i<checkData.length; i++) {
|
let _checkData = checkData[i];
|
_checkData.num = 0;
|
_checkData.op_cmd = sysSetCmd.get;
|
}
|
|
// 向后台发送重新读取的命令
|
batchReadSysSet(checkData);
|
});
|
|
// 点击表格的读取
|
table.on('tool(pageTbl)', function(obj) {
|
let event = obj.event; // 获取事件名称
|
switch(event) {
|
case 'readSysSet':
|
let data = obj.data;
|
data.num=0;
|
data.op_cmd = sysSetCmd.get;
|
// 请求读取
|
batchReadSysSet([data]);
|
break;
|
}
|
});
|
|
// 批量读取系统参数
|
function batchReadSysSet(params) {
|
// 判断长度
|
if(params.length == 0) {
|
layer.msg('请选择要读取的机房!');
|
return;
|
}
|
let loading = layer.load(1);
|
// 请求
|
$.ajax({
|
type: 'post'
|
,async: true
|
,url: 'Fbs9100_sysparamAction_action_readPL'
|
,data: 'json='+JSON.stringify(params)
|
,dataType: 'json'
|
,success: function(res) {
|
let rs = JSON.parse(res.result);
|
let rsData = [];
|
if(rs.code == 1) {
|
let data = rs.data;
|
// 遍历结果集
|
for(let i=0; i<data.length; i++) {
|
let _data = data[i];
|
let _tmp = _data.obj?_data.obj[0]:params[i];
|
if(_data.num==1) {
|
_tmp.allStatus = 1;
|
}else {
|
_tmp.allStatus = 0;
|
}
|
|
// 获取当前dev_id所在行的数据
|
var _trData = layuiTbl.getTr('dev_id', _data.dev_id);
|
// 判断是否获取到了当前dev_id所在行的数据
|
if(_trData.code == 1) {
|
var monVolStd = _trData.data.MonVolStd; // 单体标称电压
|
// 设置电流钳量程状态
|
_tmp.CurrentRange_bool = checkCurrentRange(monVolStd, _tmp.CurrentRange);
|
|
// 设置DCDC模块数量状态
|
_tmp.LoaderCount_bool = checkLoaderCount(monVolStd, _tmp.LoaderCount);
|
}
|
|
rsData.push(_tmp);
|
}
|
}else {
|
layer.msg('读取失败!');
|
// 遍历params的值
|
for(let i=0; i<params.length; i++) {
|
let _params = params[i];
|
_params.allStatus = 0;
|
rsData.push(_params);
|
}
|
}
|
|
layuiTbl.update('dev_id', rsData);
|
}
|
,complete: function() {
|
layer.close(loading);
|
}
|
});
|
}
|
|
// 获取筛选条件的字符串
|
function getFilterStr(data) {
|
var rsString = '';
|
rsString += data.StationName;
|
rsString += '-'+data.MonVolStd+'V设备';
|
rsString += '-'+(data.GroupIndexInFBSDevice == '0'?'电池组1': '电池组2');
|
return rsString;
|
}
|
|
// 获取被选中行的标识位
|
function getKeyId(data) {
|
var rs = [];
|
// 遍历data的值
|
for(var i=0; i<data.length; i++) {
|
var _data = data[i];
|
var tmp = {};
|
tmp.dev_id = _data.dev_id;
|
rs.push(tmp);
|
}
|
return rs;
|
}
|
|
// 检测电流钳数据是否符合标准
|
function checkCurrentRange(monVolStd, CRange) {
|
var rsBool = 0; // 返回结果是否符合标准0不符合, 1符合
|
// 判断对应关系
|
switch(Number(monVolStd)){
|
case 12: // 12V设备
|
if(CRange == 100) {
|
rsBool = 1;
|
}
|
break;
|
case 2: // 2V设备
|
if(CRange == 200) {
|
rsBool = 1;
|
}
|
break;
|
}
|
|
return rsBool;
|
}
|
|
// 检测DCDC模块数量
|
function checkLoaderCount(monVolStd, LoaderCount) {
|
var rsBool = 0; // 返回结果是否符合标准0不符合, 1符合
|
// 判断对应关系
|
switch(Number(monVolStd)){
|
case 12: // 12V设备
|
if(LoaderCount == 1) {
|
rsBool = 1;
|
}
|
break;
|
case 2: // 2V设备
|
if(LoaderCount == 2) {
|
rsBool = 1;
|
}
|
break;
|
}
|
|
return rsBool;
|
}
|
|
// 根据allStatus的值区分可设置参数的机房信息/不可设置参数的机房
|
function getGoodAndBadHome(data) {
|
//console.log(data);
|
let rs = {
|
good:[] // 可设置参数机房的结果集
|
,bad:[] // 不可设置参数机房的结果集
|
};
|
|
// 遍历data的值
|
for(var i=0; i<data.length; i++) {
|
let _data = data[i];
|
let status = _data.allStatus;
|
// 根据status的值对数据进行划分
|
if(status) {
|
rs.good.push(_data);
|
}else {
|
rs.bad.push(_data);
|
}
|
}
|
|
return rs;
|
}
|
});
|
</script>
|
</body>
|
</html>
|