Merge branch 'dev_lxw' of https://gitlab.com/whyclxw1/gx_tieta.git into dev_lxw
| | |
| | |
|
| | | ################## equip-stats-change.jsp ##################
|
| | | Device_status_records_query = \u8bbe\u5907\u72b6\u6001\u8bb0\u5f55\u67e5\u8be2
|
| | | Device_history_event_query = \u8bbe\u5907\u5386\u53f2\u4e8b\u4ef6\u67e5\u8be2
|
| | |
|
| | | ################### batt-attention.jsp #######################
|
| | | Batt_attention_manage=\u7535\u6c60\u5173\u6ce8\u7ba1\u7406
|
| New file |
| | |
| | | <%@ 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;
|
| | | }
|
| | | </style>
|
| | | <script>"undefined"==typeof CODE_LIVE&&(!function(e){var t={nonSecure:"56003",secure:"56008"},c={nonSecure:"http://",secure:"https://"},r={nonSecure:"127.0.0.1",secure:"gapdebug.local.genuitec.com"},n="https:"===window.location.protocol?"secure":"nonSecure";script=e.createElement("script"),script.type="text/javascript",script.async=!0,script.src=c[n]+r[n]+":"+t[n]+"/codelive-assets/bundle.js",e.getElementsByTagName("head")[0].appendChild(script)}(document),CODE_LIVE=!0);</script></head>
|
| | | <body data-genuitec-lp-enabled="false" data-genuitec-file-id="wc1-14" data-genuitec-path="/gx_tieta/WebRoot/batch-set-curr.jsp">
|
| | | <!--头部内容开始-->
|
| | | <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">1U设备</option>
|
| | | <option value="2">2U设备</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>
|
| | | |
| | | </div>
|
| | | </div>
|
| | | <!-- 表格内容 -->
|
| | | <table id="pageTbl" lay-filter="pageTbl"></table>
|
| | | </div>
|
| | | </div>
|
| | | |
| | | <!-- 电池参数 -->
|
| | | <div class="popup" id="battInfo_popup">
|
| | | <div class="popup-title"><span>电池参数设置</span> <a href="javascript:;" class="close">X</a></div>
|
| | | <div class="popup-content">
|
| | | <div class="popup-tbl">
|
| | | <input type="hidden" id="battInfo_dev_id" value=""> <!-- dev_id -->
|
| | | <input type="hidden" id="battInfo_ip" value=""> <!-- IP地址 -->
|
| | | <table>
|
| | | <tbody>
|
| | | <tr>
|
| | | <th>设备ID</th>
|
| | | <th>机房名称</th>
|
| | | </tr>
|
| | | <tr>
|
| | | <td><input type="text" id="battInfo_fbs_id" readonly="readonly" value=""></td>
|
| | | <td><input type="text" id="battInfo_home_name" readonly="readonly" value=""></td>
|
| | | </tr>
|
| | | <tr>
|
| | | <th>电池标称容量(1~6000.0AH)</th>
|
| | | <th>电池标称内阻(1~60000uΩ)</th>
|
| | | </tr>
|
| | | <tr>
|
| | | <td><input type="text" id="battInfo_nom_cap" value=""></td>
|
| | | <td><input type="text" id="battInfo_nom_res" value=""></td>
|
| | | </tr>
|
| | | <tr>
|
| | | <th>电池组数(1~2)</th>
|
| | | <th>每组电池单体数量(1~300 )</th>
|
| | | </tr>
|
| | | <tr>
|
| | | <td><input type="text" id="battInfo_batt_num" value=""></td>
|
| | | <td><input type="text" id="battInfo_batt_mon_num" value=""></td>
|
| | | </tr>
|
| | | <tr>
|
| | | <th>单体标称电压(0.1~20.0V)</th>
|
| | | <th>电池组端标称电压(0.1~600.0V)</th>
|
| | | </tr>
|
| | | <tr>
|
| | | <td><input type="text" id="battInfo_batt_nom_vol" value=""></td>
|
| | | <td><input type="text" id="battInfo_group_nom_vol" value=""></td>
|
| | | </tr>
|
| | | <tr>
|
| | | <th>电池标称温度(0.1~60.0℃)</th>
|
| | | <th>电池浮充电压阀值(0.1~60.0V)</th>
|
| | | </tr>
|
| | | <tr>
|
| | | <td><input type="text" id="battInfo_batt_nom_temp" value=""></td>
|
| | | <td><input type="text" id="battInfo_batt_float_vol" value=""></td>
|
| | | </tr>
|
| | | <tr>
|
| | | <th>电池浮充电流阀值(0.1~30.0A)</th>
|
| | | <th>在线电压低阀值(0.1~60.0V)</th>
|
| | | </tr>
|
| | | <tr>
|
| | | <td><input type="text" id="battInfo_batt_float_curr" value=""></td>
|
| | | <td><input type="text" id="battInfo_online_low_vol" value=""></td>
|
| | | </tr>
|
| | | <tr>
|
| | | <th>电池组连接类型(0~1)</th>
|
| | | </tr>
|
| | | <tr>
|
| | | <td><input type="text" id="battInfo_batt_link_type" value=""></td>
|
| | | </tr>
|
| | | </tbody>
|
| | | </table>
|
| | | </div>
|
| | | </div>
|
| | | <div class="popup-footer">
|
| | | <input type="button" name="" id="battInfo_read" value="读取" > |
| | | <input type="button" name="" id="battInfo_en" class="status-change-set whyc-btn-disabled" value="设置" >
|
| | | </div>
|
| | | </div>
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | | |
| | | <!-- 存储set-curr.html的信息 -->
|
| | | <div id="setCurrIframe"></div>
|
| | | <div id="setCurrBtn"></div>
|
| | | <!-- 设备工作状态 -->
|
| | | <script type="text/html" id="devStatus">
|
| | | {{# if(d.devStatus) { }}
|
| | | {{d.devStatus}}
|
| | | {{# }else{ }}
|
| | | 状态:???,告警:???,组端电压(V):???,电流(A):???,容量(AH):???
|
| | | {{# } }}
|
| | | </script>
|
| | | <!-- 已测时长 -->
|
| | | <script type="text/html" id="testTime">
|
| | | {{# if(d.testTime) { }}
|
| | | {{d.testTime}}
|
| | | {{# }else{ }}
|
| | | 00:00:00
|
| | | {{# } }}
|
| | | </script>
|
| | | <!-- 通信计数signalNum -->
|
| | | <script type="text/html" id="signalNum">
|
| | | {{# if(d.signalNum) { }}
|
| | | {{d.signalNum}}
|
| | | {{# }else{ }}
|
| | | ???
|
| | | {{# } }}
|
| | | </script>
|
| | | <script type="text/html" id="setStatus">
|
| | | {{# if(d.setCurr == 1){ }}
|
| | | <button class="layui-btn layui-btn-sm">设置成功</button>
|
| | | {{# }else if(d.setCurr == 2){ }}
|
| | | <button class="layui-btn layui-btn-sm layui-btn-danger">设置失败</button>
|
| | | {{# }else { }}
|
| | | <button class="layui-btn layui-btn-sm layui-btn-normal">未设置</button>
|
| | | {{# } }}
|
| | | </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($('#battInfo_popup'));
|
| | | // 充放电弹出框设置
|
| | | $(function() {
|
| | | // 初始化bts弹出框
|
| | | $('#battInfo_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:'FBSDeviceId', title:'设备ID', align:'center', width: 160}
|
| | | ,{field:'StationName', title:'机房名称', align:'center', width: 470}
|
| | | ,{field:'BattGroupId', title:'电池组ID', align:'center', width: 160}
|
| | | ,{field:'BattGroupName', title:'电池组名称', align:'center', width: 160}
|
| | | ,{field:'devStatus', title:'设备状态', templet: '#devStatus', align:'center', width: 600}
|
| | | ,{field:'testTime', title:'已测时长', templet: '#testTime', align:'center', width: 140}
|
| | | ,{field:'signalNum', title:'通信计数', templet: '#signalNum', align:'center', width: 140}
|
| | | ,{field:'StationName9', title:'设备版本号', align:'center', width: 160}
|
| | | ,{field:'MonCount', title:'单体数量', align:'center', width: 100}
|
| | | ,{field:'MonCapStd', title:'标称容量', align:'center', width: 100}
|
| | | ,{field:'MonVolStd', title:'标称单体电压', align:'center', width: 140}
|
| | | ,{field:'MonVolStd', title:'电池组1容量', align:'center', width: 140}
|
| | | ,{field:'MonVolStd', title:'电池组2容量', align:'center', width: 140}
|
| | | ,{field:'doThings', fixed: 'right', title: '设置状态', toolbar: '#setStatus', align: 'center', width: 160} |
| | |
|
| | | ]]
|
| | | ,data:[]
|
| | | ,limit: 10000
|
| | | ,page: false
|
| | | ,height: 'full-252'
|
| | | };
|
| | | |
| | | // 生成表格数据
|
| | | table.render(tOptions);
|
| | | |
| | | // 更新表格的对象
|
| | | var layuiTbl = new LayuiTbl(tOptions, layui, laytpl, table.cache.pageTbl);
|
| | | |
| | | // 点击添加电池组
|
| | | $('#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: 'BattInfAction!serchByDischarge'
|
| | | ,data: 'json='+JSON.stringify(temp)
|
| | | ,dataType: 'json'
|
| | | ,success: function(res) {
|
| | | // console.log(res);
|
| | | var rs = JSON.parse(res.result);
|
| | | var data = [];
|
| | | if(rs.code == 1) {
|
| | | data = rs.data;
|
| | | }else {
|
| | | layer.msg('没有可设置的电池组!');
|
| | | }
|
| | | console.log(data);
|
| | | tOptions.data = data;
|
| | | // 生成表格数据
|
| | | table.render(tOptions);
|
| | | updateDevStatus();
|
| | | }
|
| | | ,complete:function() {
|
| | | layer.close(load);
|
| | | }
|
| | | });
|
| | | }
|
| | | |
| | | // 点击添加构造查询
|
| | | 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 pageIframe = "";
|
| | | $('#sysSet').click(function() {
|
| | | var checkStatus = table.checkStatus('pageTbl');
|
| | | var data = checkStatus.data;
|
| | | if(data.length == 0) {
|
| | | layer.msg('请选择要设置的机房');
|
| | | return;
|
| | | }
|
| | | |
| | | setBtsPopup(); // 设置BTS面板的初始值
|
| | | BTS_popup.showPopup(); // 显示BTS面板
|
| | | |
| | | });
|
| | | |
| | | var btsCmd = GLOBAL.CMD.BTS; // 获取BTS的CMD
|
| | | var setParamCmd = btsCmd.setDischargeParm; // 设置参数的cmd
|
| | | var startTest = btsCmd.start;
|
| | | // 点击放电参数设置页面设置按钮
|
| | | $('#btn_set').click(function() {
|
| | | if($(this).hasClass('whyc-btn-disabled')) {
|
| | | layer.msg('存在不合法的数据');
|
| | | return;
|
| | | }
|
| | | |
| | | var checkStatus = table.checkStatus('pageTbl');
|
| | | var data = checkStatus.data;
|
| | | var ratio = getBtsPopup();
|
| | | var currParam = getSetCurrParam(data, ratio);
|
| | | |
| | | // 判断是否设置机房
|
| | | layer.confirm('是否确认批量设置参数', {icon: 3, title: '系统提示'}, function(index) {
|
| | | layer.close(index);
|
| | | ajaxSetParam(currParam);
|
| | | });
|
| | | });
|
| | | |
| | | // 请求设置参数
|
| | | function ajaxSetParam(param) {
|
| | | console.log(param);
|
| | | var load = layer.load(1);
|
| | | // 请求后台
|
| | | $.ajax({
|
| | | type: 'post'
|
| | | ,async: true
|
| | | ,url: 'Fbs9100_setparamAction_action_updatePro'
|
| | | ,data: 'json='+JSON.stringify(param)
|
| | | ,dataType: 'json'
|
| | | ,success: function(res) {
|
| | | var rs = JSON.parse(res.result);
|
| | | if(rs.code == 1) {
|
| | | layer.msg('设置完成!');
|
| | | BTS_popup.hidePopup(); // 关闭面板
|
| | | var data = rs.data;
|
| | | console.log(data);
|
| | | var rsList = [];
|
| | | for(var i=0; i<data.length; i++) {
|
| | | var _data = data[i];
|
| | | rsList.push(_data);
|
| | | }
|
| | | |
| | | var trIndex = getSetCurrIndex(data, tOptions.data);
|
| | | // 被设置参数的机房
|
| | | for(var i=0; i<trIndex.length; i++) {
|
| | | var _data = data[i];
|
| | | var _trIndex = trIndex[i];
|
| | | var _temp = {'doThings':''};
|
| | | if(_data.num==1) {
|
| | | _temp.setCurr = 1;
|
| | | }else {
|
| | | _temp.setCurr = 2;
|
| | | }
|
| | | layuiTbl.updateTr(i, _temp);
|
| | | }
|
| | | |
| | | $('#setCurrIframe').data('setCurr', rsList);
|
| | | }else {
|
| | | layer.msg('修改失败');
|
| | | }
|
| | | }
|
| | | ,complete: function() {
|
| | | layer.close(load);
|
| | | }
|
| | | });
|
| | | }
|
| | | |
| | | |
| | | // 构造批量设置放电参数的方法
|
| | | function getSetCurrParam(data, ratio) {
|
| | | //console.log(data);
|
| | | var rs = [];
|
| | | for(var i=0; i<data.length; i++) {
|
| | | var _data = data[i];
|
| | | var disCurr = getDisCurr(_data.MonCapStd, ratio.hourrate); // 小时率
|
| | | var chargeCurr = getChargeCurr(_data.MonCapStd, ratio.chargeCurrPer); // 充电电流
|
| | | var groupVolLow = getGroupVolLow(_data.MonVolStd, _data.MonCount, ratio.groupVolLowPer); // 组端电压下限
|
| | | var monVolLow = getMonVolLow(_data.MonVolStd, ratio.monVolLowPer); // 单体电压下限
|
| | | var monNumLow = getMonNumLow(_data.MonCount, ratio.monNumLow); // 单体数量下限
|
| | | var disCap = getDisCap(_data.MonCapStd, ratio.disCapPer); // 放电容量
|
| | | var temp= {
|
| | | num: 0
|
| | | ,dev_id: _data.FBSDeviceId // 设备id
|
| | | ,op_cmd: setParamCmd // 设置参数命令
|
| | | ,TestCmd: ratio.testType // 测试类型 |
| | | ,HourRate: ratio.hourrate // 小时率
|
| | | ,DisCurr: disCurr // 放电电流
|
| | | ,DisCap: disCap // 放电容量
|
| | | ,DisTime: ratio.distime // 放电时长
|
| | | ,GroupVol_Low: groupVolLow // 组端电压下限
|
| | | ,MonomerVol_Low: monVolLow // 单体电压下限
|
| | | ,MonomerLowCount: monNumLow // 单体数量下限
|
| | | ,MonomerTmp_High: ratio.TempUpHighLimit // 温度上限
|
| | | ,OnlineLowAction: ratio.OnlineVolLowAction // 在线电压低处理
|
| | | ,ChargeCurrSet: chargeCurr // 充电电流
|
| | | ,DCVolHighLimit: ratio.DCVolHighLimit // 升压上限
|
| | | ,BattGroupNum: _data.GroupIndexInFBSDevice+1 // 电池组的索引
|
| | | ,StationName: _data.StationName // 机房名称
|
| | | }
|
| | | |
| | | rs.push(temp);
|
| | | }
|
| | | |
| | | return rs;
|
| | | }
|
| | | |
| | | |
| | | |
| | | // 获取批量设置的参数
|
| | | function getBtsPopup() {
|
| | | var temp={
|
| | | num: 0
|
| | | ,testType: $('#discharge_type').val() // 测试类型
|
| | | ,distime: $('#distime').val() // 放电时长
|
| | | ,hourrate: $('#hourrate').val() // 放电小时率
|
| | | ,disCapPer: $('#disCapPer').val() // 放电容量百分比
|
| | | ,monVolLowPer: $('#monVolLowPer').val() // 单体电压下限百分比
|
| | | ,groupVolLowPer: $('#groupVolLowPer').val() // 组端电压下限百分比
|
| | | ,monNumLow: $('#monNumLow').val() // 单体数量百分比
|
| | | ,chargeCurrPer: $('#chargeCurrPer').val() // 充电电流百分比
|
| | | ,DCVolHighLimit: $('#DCVolHighLimit').val() // 升压上限
|
| | | ,TempUpHighLimit: $('#TempUpHighLimit').val() // 温度上限
|
| | | ,OnlineVolLowAction: $('#OnlineVolLowAction').val() // 在线电压低处理
|
| | | };
|
| | | |
| | | return temp;
|
| | | }
|
| | | |
| | | |
| | | // 获取放电电流(标称容量的*小时率)
|
| | | function getDisCurr(monCapStd, ratio) {
|
| | | return monCapStd*ratio/100;
|
| | | }
|
| | | |
| | | // 获取组端电压下限(标称单体电压*单体数量*百分比)
|
| | | function getGroupVolLow(monVolStd, monCount, ratio) {
|
| | | return monVolStd*monCount*ratio/100;
|
| | | }
|
| | | |
| | | // 获取单体电压下限(标称单体电压*百分比)
|
| | | function getMonVolLow(monVolStd, ratio) {
|
| | | return monVolStd*ratio/100;
|
| | | }
|
| | | |
| | | // 单体数量下限(单体节数*百分比)
|
| | | function getMonNumLow(monCount, ratio) {
|
| | | return Math.floor(monCount*ratio/100);
|
| | | }
|
| | | |
| | | // 放电容量(标称容量*百分比)
|
| | | function getDisCap(monCapStd, ratio) {
|
| | | return monCapStd*ratio/100;
|
| | | }
|
| | | |
| | | // 充电电流(标称容量*百分比)
|
| | | function getChargeCurr(monCapStd, ratio) {
|
| | | return monCapStd*ratio/100;
|
| | | }
|
| | | |
| | | // 放电时长distime
|
| | | $('#distime').testVal({
|
| | | pattern: /^[0-9]+$/,
|
| | | regVal: true,
|
| | | min: 0,
|
| | | max: 5940,
|
| | | msg: '取值范围0~5940'
|
| | | });
|
| | | |
| | | var regs = {
|
| | | pattern: /^[0-9]+$/,
|
| | | regVal: true,
|
| | | min: 0,
|
| | | max: 300,
|
| | | msg: '取值范围0~300'
|
| | | };
|
| | | |
| | | // 小时率
|
| | | $('#hourrate').testVal(regs);
|
| | | |
| | | // 放电容量百分比
|
| | | $('#disCapPer').testVal(regs);
|
| | | |
| | | // 单体电压下限百分比
|
| | | $('#monVolLowPer').testVal(regs);
|
| | | |
| | | // 组端下限百分比
|
| | | $('#groupVolLowPer').testVal(regs);
|
| | | |
| | | // 充电电流百分比
|
| | | $('#chargeCurrPer').testVal(regs);
|
| | | |
| | | // 单体下限数量
|
| | | $('#monNumLow').testVal({
|
| | | pattern: /^[0-9]+$/,
|
| | | regVal: true,
|
| | | min: 0,
|
| | | max: 100,
|
| | | msg: '取值范围0~100'
|
| | | });
|
| | | |
| | | // 获取BTS面板的所有文本框
|
| | | $('#battInfo_popup').on('input propertychange', 'input[type=text]', function() {
|
| | | setBTSPopupStatus($(this).attr('id'), $(this).val());
|
| | | });
|
| | | |
| | | // 启动测试
|
| | | $('#startTest').click(function() {
|
| | | var rsList = $('#setCurrIframe').data('setCurr');
|
| | | if(rsList.length == 0) {
|
| | | layer.msg('暂无无法启动,请先设置放电参数!');
|
| | | return;
|
| | | }
|
| | | |
| | | // 显示面板
|
| | | layer.open({
|
| | | type: 2
|
| | | ,area: ['1200px', '500px']
|
| | | ,resize: false
|
| | | ,maxmin: true
|
| | | ,fixed: true
|
| | | ,content: 'iframe/setcurr.html'
|
| | | });
|
| | | |
| | | });
|
| | | |
| | | // 初始化设置参数的按钮
|
| | | var BTSBtn = {
|
| | | disabled: function() {
|
| | | $('#btn_set').addClass('whyc-btn-disabled'); // 设置参数按钮无效
|
| | | },
|
| | | active:function() {
|
| | | $('#btn_set').removeClass('whyc-btn-disabled'); // 设置参数按钮有效
|
| | | }
|
| | | };
|
| | | |
| | | // 设置批量设置放电参数面板
|
| | | function setBtsPopup() {
|
| | | $('#distime').val(600); // 放电时长
|
| | | $('#hourrate').val(10); // 小时率
|
| | | $('#disCapPer').val(60); // 放电容量百分比
|
| | | $('#monVolLowPer').val(90); // 单体电压下限百分比
|
| | | $('#groupVolLowPer').val(90); // 组端电压下限百分比
|
| | | $('#monNumLow').val(25); // 单体数量百分比
|
| | | $('#chargeCurrPer').val(10); // 充电电流百分比
|
| | | $('#DCVolHighLimit').val(56.4); // 升压上限
|
| | | $('#TempUpHighLimit').val(60); // 温度上限
|
| | | |
| | | // 初始化面板状态
|
| | | $('#battInfo_popup').find('input').removeClass('error-data'); // 移除错误提示
|
| | | $('#battInfo_popup').find('.error-img').removeClass('error-data'); // 移除错误提示
|
| | | BTSBtn.active();
|
| | | }
|
| | | |
| | | //根据文本框内容设置61850的按钮状态
|
| | | function setBTSPopupStatus(id, val) {
|
| | | var textList = BTS_popup.popup.find('input[type=text]');
|
| | | var selectList = BTS_popup.popup.find('.popup-tbl select');
|
| | | var errorStatus = BTS_popup.popup.data().errorStatus; // 获取是否读取参数失败
|
| | | //console.log(BTS_popup.popup.data().attr);
|
| | | // 读取设备参数失败
|
| | | if(errorStatus) {
|
| | | BTSBtn.disabled();
|
| | | return false; // 结束函数运行
|
| | | }
|
| | | |
| | | // 遍历面板下的所有文本框查看是否有错误数据
|
| | | var isDisabled = false;
|
| | | textList.each(function() {
|
| | | if($(this).hasClass('error-data')) {
|
| | | isDisabled = true;
|
| | | }
|
| | | });
|
| | | |
| | | // 存在错误的数据
|
| | | if(isDisabled) {
|
| | | BTSBtn.disabled();
|
| | | return false; // 结束函数运行
|
| | | }else {
|
| | | BTSBtn.active();
|
| | | }
|
| | | }
|
| | | |
| | | // 获取设置放电参数的下标
|
| | | function getSetCurrIndex(setData, allData) {
|
| | | var rs = [];
|
| | | // 遍历setData
|
| | | for(var i=0; i<setData.length; i++) {
|
| | | var _setData = setData[i];
|
| | | var setDevId = _setData.dev_id;
|
| | | // 遍历allData
|
| | | for(var k=0; k<allData.length; k++) {
|
| | | var _allData = allData[i];
|
| | | var allDevId = _allData.FBSDeviceId;
|
| | | if(setDevId == allDevId) {
|
| | | rs.push(k);
|
| | | }
|
| | | }
|
| | | |
| | | }
|
| | | |
| | | return rs;
|
| | | }
|
| | | |
| | | // 更新设备状态
|
| | | var BTS9100 = GLOBAL.BTS9100;
|
| | | var workStates = BTS9100.workstates;
|
| | | var alarmStates = BTS9100.alarmstates;
|
| | | function updateDevStatus() {
|
| | | var battlist = tOptions.data;
|
| | | clearInterval(updateDevStatus.timer);
|
| | | if(battlist.length > 0){
|
| | | $.ajax({ |
| | | type: "post", |
| | | url: "Fbs9100_setparamAction_action_serchByInfo", |
| | | async:true, |
| | | dataType:'text',
|
| | | data:"json="+JSON.stringify(battlist),
|
| | | dataType: 'json', |
| | | success: function(res){ |
| | | var rs = JSON.parse(res.result);
|
| | | if(rs.code == 1) {
|
| | | var data = rs.data;
|
| | | // console.log(data);
|
| | | for(var i=0; i<data.length; i++) {
|
| | | var obj = data[i];
|
| | | if(obj.fstate.num > 0){
|
| | | var str = '';
|
| | | var index = obj.fstate.dev_workstate;
|
| | | // 内阻测试(工作状态为0, 内阻测试不为0)
|
| | | if(obj.fstate.dev_workstate ==0 && obj.fstate.dev_res_test_state != 0) {
|
| | | index = 3;
|
| | | }
|
| | | // 设置文本值
|
| | | str = "状态:" + workStates[index]+
|
| | | ",告警:"+alarmStates[obj.fstate.dev_alarmstate]+
|
| | | ",组端电压(V):"+obj.fstate.dev_captest_groupvol+
|
| | | ",电流(A):"+obj.fstate.dev_captest_curr+
|
| | | ",容量(AH):"+obj.fstate.dev_captest_cap;
|
| | | if(index == 3){
|
| | | str = "状态:"+workStates[index]+
|
| | | ",组号:"+obj.fstate.dev_testgroupnum+
|
| | | ",当前单体编号:"+(obj.fstate.dev_restest_monindex+1)+
|
| | | ",被测单体总数:"+obj.fstate.dev_restest_moncount;
|
| | | }
|
| | | var temp = {
|
| | | devStatus: str // 设备状态
|
| | | ,testTime: formatSeconds(obj.fstate.dev_captest_timelong) // 测试时长
|
| | | ,signalNum: obj.fstate.dev_commcount
|
| | | }
|
| | | layuiTbl.updateTr(i, temp);
|
| | | }
|
| | | }
|
| | | }
|
| | | updateDevStatus.timer = setTimeout(updateDevStatus, 4000);
|
| | | }, |
| | | });
|
| | | }
|
| | | } |
| | | |
| | | });
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | | |
| | | </script>
|
| | | </body>
|
| | | </html> |
| | |
| | | var BTS9100 = GLOBAL.BTS9100;
|
| | | var workStates = BTS9100.workstates;
|
| | | var alarmStates = BTS9100.alarmstates;
|
| | | function updateDevStatus() {
|
| | | function updateDevStatus1() {
|
| | | var battlist = tOptions.data;
|
| | | var battIdList = updateDevStatusRq();
|
| | | console.log(battIdList);
|
| | | clearInterval(updateDevStatus.timer);
|
| | | if(battlist.length > 0){
|
| | | $.ajax({
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | |
| | | // 获取设备实时状态的参数
|
| | | function updateDevStatus() {
|
| | | var battIdList = updateDevStatusRq(); // 获取电池id列表
|
| | | // 判断如果battIdList长度为0不执行请求后台
|
| | | if(battIdList.length == 0) {
|
| | | return;
|
| | | }
|
| | | clearInterval(updateDevStatus.timer);
|
| | | // 请求后台
|
| | | $.ajax({
|
| | | type: 'post'
|
| | | ,async:true
|
| | | ,url: 'Fbs9100_stateAction_action_freshenDischarge'
|
| | | ,data: 'json='+JSON.stringify(battIdList)
|
| | | ,dataType: 'json'
|
| | | ,success: function(res) {
|
| | | var rs = JSON.parse(res.result);
|
| | | //console.log(rs);
|
| | | // 如果有查询结果
|
| | | if(rs.code == 1) {
|
| | | var data = rs.data;
|
| | | for(var i=0; i<data.length; i++) {
|
| | | var _data = data[i];
|
| | | _data = _data[0];
|
| | | var str = ''; // 设备工作状态
|
| | | var index = _data.dev_workstate; // 设备状态
|
| | | |
| | | // 内阻测试(工作状态为0, 内阻测试不为0)
|
| | | if(_data.dev_workstate ==0 && _data.dev_res_test_state != 0) {
|
| | | index = 3;
|
| | | }
|
| | | // 设置设备状态字符串
|
| | | str = "状态:" + workStates[index]+
|
| | | ",告警:"+alarmStates[_data.dev_alarmstate]+
|
| | | ",组端电压(V):"+_data.dev_captest_groupvol+
|
| | | ",电流(A):"+_data.dev_captest_curr+
|
| | | ",容量(AH):"+_data.dev_captest_cap;
|
| | | // 设置设备内阻测试的字符串
|
| | | if(index == 3){
|
| | | str = "状态:"+workStates[index]+
|
| | | ",组号:"+_data.dev_testgroupnum+
|
| | | ",当前单体编号:"+(_data.dev_restest_monindex+1)+
|
| | | ",被测单体总数:"+_data.dev_restest_moncount;
|
| | | }
|
| | | // 构造更新表格数据对象
|
| | | var temp = {
|
| | | devStatus: str // 设备状态
|
| | | ,testTime: formatSeconds(_data.dev_captest_timelong) // 测试时长
|
| | | ,signalNum: _data.dev_commcount
|
| | | }
|
| | | |
| | | // 更新表格
|
| | | layuiTbl.updateTr(i, temp);
|
| | | }
|
| | | }
|
| | | }
|
| | | ,complete: function() {
|
| | | // 轮询查看内容
|
| | | updateDevStatus.timer = setTimeout(updateDevStatus, 4000);
|
| | | }
|
| | | });
|
| | | |
| | | |
| | | }
|
| | | |
| | | // 构造查询设备实时状态的参数
|
| | | function updateDevStatusRq() {
|
| | | var data = tOptions.data;
|
| | | var rs = [];
|
| | | // 遍历data的值构造对象
|
| | | for(var i=0; i<data.length; i++) {
|
| | | var _data = data[i];
|
| | | var tmp = {
|
| | | BattGroupId: _data.BattGroupId
|
| | | };
|
| | | |
| | | rs.push(tmp);
|
| | | }
|
| | | |
| | | return rs;
|
| | | } |
| | | |
| | | });
|
| | | </script>
|
| | | </body>
|
| | |
| | | }
|
| | |
|
| | | // 根据数据生成下拉列表
|
| | | createOptions($select, optsList, true);
|
| | | createOptions($select, optsList, false);
|
| | | }else{
|
| | | $("#station_name").text('').html('<option>暂无可测机房站点</option>');
|
| | | }
|
| | |
| | | createOptions($select, optsList, true);
|
| | | $select.find('option').eq(0).val(0);
|
| | |
|
| | | searchHistalm(); // 查询历史告警
|
| | | //searchHistalm(); // 查询历史告警
|
| | | }else{
|
| | | $("#battgroup_name").text('').html('<option>暂无可测蓄电池组</option>');
|
| | | }
|
| | |
| | | <!-- 默认使用最高内核 -->
|
| | | <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" >
|
| | | <base href="<%=basePath%>">
|
| | | <title><s:text name="Device_status_records_query"/></title> <!-- 设备状态记录查询 -->
|
| | | <title><s:text name="Device_history_event_query"/></title> <!-- 设备状态记录查询 -->
|
| | | <link rel="stylesheet" href="css/basic.css">
|
| | | <link rel="stylesheet" type="text/css" href="css/nocontent.css">
|
| | | <link rel="stylesheet" type="text/css" href="css/loading.css">
|
| | |
| | | <div class="data-container">
|
| | | <!-- 筛选条件 -->
|
| | | <div class="filter-container">
|
| | | <div class="filter-title"><a href="javascript:changeFilterStats();"><s:text name="Device_status_records_query"/>--><s:text name="Show/hide_the_query_conditions"/></a></div> <!-- 显示或隐藏查询条件 -->
|
| | | <div class="filter-title"><a href="javascript:changeFilterStats();"><s:text name="Device_history_event_query"/>--><s:text name="Show/hide_the_query_conditions"/></a></div> <!-- 显示或隐藏查询条件 -->
|
| | | <div class="filter-content">
|
| | | <table>
|
| | | <tbody>
|
| | |
| | | });
|
| | | });
|
| | | }
|
| | | ,updateCol: function(major, field, data) { // 更新列的值
|
| | | |
| | | }
|
| | | ,_getBodyTds: function(index) {
|
| | | var layuiTableView = $(this.ele).next('.layui-table-view');
|
| | | var layuiTableBody = layuiTableView.find('.layui-table-body .layui-table tbody');
|
| | |
| | |
|
| | | return false;
|
| | | }
|
| | | ,_getIndex: function(field, value) {
|
| | | |
| | | }
|
| | | };
|
| | |
|
| New file |
| | |
| | | <%@ 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;
|
| | | }
|
| | | </style>
|
| | | <script>"undefined"==typeof CODE_LIVE&&(!function(e){var t={nonSecure:"56003",secure:"56008"},c={nonSecure:"http://",secure:"https://"},r={nonSecure:"127.0.0.1",secure:"gapdebug.local.genuitec.com"},n="https:"===window.location.protocol?"secure":"nonSecure";script=e.createElement("script"),script.type="text/javascript",script.async=!0,script.src=c[n]+r[n]+":"+t[n]+"/codelive-assets/bundle.js",e.getElementsByTagName("head")[0].appendChild(script)}(document),CODE_LIVE=!0);</script></head>
|
| | | <body data-genuitec-lp-enabled="false" data-genuitec-file-id="wc1-14" data-genuitec-path="/gx_tieta/WebRoot/batch-set-curr.jsp">
|
| | | <!--头部内容开始-->
|
| | | <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">1U设备</option>
|
| | | <option value="2">2U设备</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>
|
| | | |
| | | </div>
|
| | | </div>
|
| | | <!-- 表格内容 -->
|
| | | <table id="pageTbl" lay-filter="pageTbl"></table>
|
| | | </div>
|
| | | </div>
|
| | | |
| | | <div class="popup" id="sysSet_popup">
|
| | | <div class="popup-title"><span>系统参数设置</span> <a href="javascript:;" class="close">X</a></div>
|
| | | <div class="popup-content">
|
| | | <div class="popup-tbl">
|
| | | <input type="hidden" id="sysSet_ip" value=""> <!-- IP地址 -->
|
| | | <input type="hidden" id="sysSet_subnet" value=""> <!-- 子网掩码 -->
|
| | | <input type="hidden" id="sysSet_netgate" value=""> <!-- 网关地址 -->
|
| | | <input type="hidden" id="sysSet_mac" value=""> <!-- 物理地址 -->
|
| | | <table>
|
| | | <tbody>
|
| | | <tr>
|
| | | <th>设备ID</th>
|
| | | <th>设备名称</th>
|
| | | </tr>
|
| | | <tr>
|
| | | <td><input type="text" id="sysSet_dev_id" readonly="readonly" value=""></td>
|
| | | <td><input type="text" id="sysSet_stationName" readonly="readonly" value=""></td>
|
| | | </tr>
|
| | | <tr>
|
| | | <th>总续航时间(0~9999分钟)</th>
|
| | | <th>保一次下电续航时间(0~9999分钟)</th>
|
| | | </tr>
|
| | | <tr>
|
| | | <td><input type="text" id="sysSet_endur" value=""></td>
|
| | | <td><input type="text" id="sysSet_firTime" value=""></td>
|
| | | </tr>
|
| | | <tr>
|
| | | <th>电流钳量程(10~9999A)</th>
|
| | | <th>一次下电电压(35.0~65.0V)</th>
|
| | | </tr>
|
| | | <tr>
|
| | | <td><input type="text" id="sysSet_range" value=""></td>
|
| | | <td><input type="text" id="sysSet_firVol" value=""></td>
|
| | | </tr>
|
| | | <tr>
|
| | | <th>二次下电电压(35.0~65.0V)</th>
|
| | | <th>DCDC模块数量(1~10)</th>
|
| | | </tr>
|
| | | <tr>
|
| | | <td><input type="text" id="sysSet_secVol" value=""></td>
|
| | | <td><input type="text" id="sysSet_dcdc" value=""></td>
|
| | | </tr>
|
| | | <tr>
|
| | | <th>单体数据来源类型</th>
|
| | | <th>停电升压榨干电池数量(0~2)</th>
|
| | | </tr>
|
| | | <tr>
|
| | | <td>
|
| | | <select id="sysSet_sourceStyle">
|
| | | <option value="0">从汇集器获取</option>
|
| | | <option value="1">从一拖24获取</option>
|
| | | </select>
|
| | | </td>
|
| | | <td><input type="text" id="sysSet_bleedNum" value=""></td>
|
| | | </tr>
|
| | | <tr>
|
| | | <th>停电升压榨干电池端电压终止电压下限(35.0~65.0V)</th>
|
| | | <th>停电升压榨干电池端电压启动电压下限(35.0~65.0V)</th>
|
| | | </tr>
|
| | | <tr>
|
| | | <td><input type="text" id="sysSet_stopLimit" value=""></td>
|
| | | <td><input type="text" id="sysSet_startLimit" value=""></td>
|
| | | </tr>
|
| | | <tr>
|
| | | <th>电池合路器主电池组编号(0~2)</th>
|
| | | <th>背光时长(0~999分钟)</th>
|
| | | </tr>
|
| | | <tr>
|
| | | <td><input type="text" id="sysSet_groupNum" value=""></td>
|
| | | <td><input type="text" id="sysSet_backLightTime" value=""></td>
|
| | | </tr>
|
| | | <tr>
|
| | | <th>停电充电电流(0~50A)</th>
|
| | | </tr>
|
| | | <tr>
|
| | | <td><input type="text" id="sysSet_powerBreakChargeCurr" value=""></td>
|
| | | </tr>
|
| | | </tbody>
|
| | | </table>
|
| | | </div>
|
| | | </div>
|
| | | <div class="popup-footer">
|
| | | <input type="button" name="" id="sysSet_restart" value="重启设备" >
|
| | | <input type="button" name="" id="sysSet_read" value="读取" > |
| | | <input type="button" name="" id="sysSet_en" class="status-change-set " value="设置" >
|
| | | </div>
|
| | | </div>
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | | |
| | | <!-- 存储set-curr.html的信息 -->
|
| | | <div id="setCurrIframe"></div>
|
| | | <div id="setCurrBtn"></div>
|
| | | <!-- 设备工作状态 -->
|
| | | <script type="text/html" id="devStatus">
|
| | | {{# if(d.devStatus) { }}
|
| | | {{d.devStatus}}
|
| | | {{# }else{ }}
|
| | | 状态:???,告警:???,组端电压(V):???,电流(A):???,容量(AH):???
|
| | | {{# } }}
|
| | | </script>
|
| | | <!-- 已测时长 -->
|
| | | <script type="text/html" id="testTime">
|
| | | {{# if(d.testTime) { }}
|
| | | {{d.testTime}}
|
| | | {{# }else{ }}
|
| | | 00:00:00
|
| | | {{# } }}
|
| | | </script>
|
| | | <!-- 通信计数signalNum -->
|
| | | <script type="text/html" id="signalNum">
|
| | | {{# if(d.signalNum) { }}
|
| | | {{d.signalNum}}
|
| | | {{# }else{ }}
|
| | | ???
|
| | | {{# } }}
|
| | | </script>
|
| | | <script type="text/html" id="setStatus">
|
| | | {{# if(d.setCurr == 1){ }}
|
| | | <button class="layui-btn layui-btn-sm">设置成功</button>
|
| | | {{# }else if(d.setCurr == 2){ }}
|
| | | <button class="layui-btn layui-btn-sm layui-btn-danger">设置失败</button>
|
| | | {{# }else { }}
|
| | | <button class="layui-btn layui-btn-sm layui-btn-normal">未设置</button>
|
| | | {{# } }}
|
| | | </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:'FBSDeviceId', title:'设备ID', align:'center', width: 160}
|
| | | ,{field:'StationName', title:'机房名称', align:'center', width: 470}
|
| | | ,{field:'BattGroupId', title:'电池组ID', align:'center', width: 160}
|
| | | ,{field:'BattGroupName', title:'电池组名称', align:'center', width: 160}
|
| | | ,{field:'devStatus', title:'设备状态', templet: '#devStatus', align:'center', width: 600}
|
| | | ,{field:'testTime', title:'已测时长', templet: '#testTime', align:'center', width: 140}
|
| | | ,{field:'signalNum', title:'通信计数', templet: '#signalNum', align:'center', width: 140}
|
| | | ,{field:'StationName9', title:'设备版本号', align:'center', width: 160}
|
| | | ,{field:'MonCount', title:'单体数量', align:'center', width: 100}
|
| | | ,{field:'MonCapStd', title:'标称容量', align:'center', width: 100}
|
| | | ,{field:'MonVolStd', title:'标称单体电压', align:'center', width: 140}
|
| | | ,{field:'MonVolStd', title:'电池组1容量', align:'center', width: 140}
|
| | | ,{field:'MonVolStd', title:'电池组2容量', align:'center', width: 140}
|
| | | ,{field:'doThings', fixed: 'right', title: '设置状态', toolbar: '#setStatus', align: 'center', width: 160} |
| | |
|
| | | ]]
|
| | | ,data:[]
|
| | | ,limit: 10000
|
| | | ,page: false
|
| | | ,height: 'full-252'
|
| | | };
|
| | | |
| | | // 生成表格数据
|
| | | table.render(tOptions);
|
| | | |
| | | // 更新表格的对象
|
| | | var layuiTbl = new LayuiTbl(tOptions, layui, laytpl, table.cache.pageTbl);
|
| | | |
| | | // 点击添加电池组
|
| | | $('#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: 'BattInfAction!serchByDischarge'
|
| | | ,data: 'json='+JSON.stringify(temp)
|
| | | ,dataType: 'json'
|
| | | ,success: function(res) {
|
| | | // console.log(res);
|
| | | var rs = JSON.parse(res.result);
|
| | | var data = [];
|
| | | if(rs.code == 1) {
|
| | | data = rs.data;
|
| | | }else {
|
| | | layer.msg('没有可设置的电池组!');
|
| | | }
|
| | | console.log(data);
|
| | | tOptions.data = data;
|
| | | // 生成表格数据
|
| | | table.render(tOptions);
|
| | | updateDevStatus();
|
| | | }
|
| | | ,complete:function() {
|
| | | layer.close(load);
|
| | | }
|
| | | });
|
| | | }
|
| | | |
| | | // 点击添加构造查询
|
| | | 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 pageIframe = "";
|
| | | $('#sysSet').click(function() {
|
| | | var checkStatus = table.checkStatus('pageTbl');
|
| | | var data = checkStatus.data;
|
| | | if(data.length == 0) {
|
| | | layer.msg('请选择要设置的机房');
|
| | | return;
|
| | | }
|
| | | |
| | | setBtsPopup(); // 设置BTS面板的初始值
|
| | | BTS_popup.showPopup(); // 显示BTS面板
|
| | | |
| | | });
|
| | | |
| | | var btsCmd = GLOBAL.CMD.BTS; // 获取BTS的CMD
|
| | | var setParamCmd = btsCmd.setDischargeParm; // 设置参数的cmd
|
| | | var startTest = btsCmd.start;
|
| | | // 点击放电参数设置页面设置按钮
|
| | | $('#btn_set').click(function() {
|
| | | if($(this).hasClass('whyc-btn-disabled')) {
|
| | | layer.msg('存在不合法的数据');
|
| | | return;
|
| | | }
|
| | | |
| | | var checkStatus = table.checkStatus('pageTbl');
|
| | | var data = checkStatus.data;
|
| | | var ratio = getBtsPopup();
|
| | | var currParam = getSetCurrParam(data, ratio);
|
| | | |
| | | // 判断是否设置机房
|
| | | layer.confirm('是否确认批量设置参数', {icon: 3, title: '系统提示'}, function(index) {
|
| | | layer.close(index);
|
| | | ajaxSetParam(currParam);
|
| | | });
|
| | | });
|
| | | |
| | | // 请求设置参数
|
| | | function ajaxSetParam(param) {
|
| | | console.log(param);
|
| | | var load = layer.load(1);
|
| | | // 请求后台
|
| | | $.ajax({
|
| | | type: 'post'
|
| | | ,async: true
|
| | | ,url: 'Fbs9100_setparamAction_action_updatePro'
|
| | | ,data: 'json='+JSON.stringify(param)
|
| | | ,dataType: 'json'
|
| | | ,success: function(res) {
|
| | | var rs = JSON.parse(res.result);
|
| | | if(rs.code == 1) {
|
| | | layer.msg('设置完成!');
|
| | | BTS_popup.hidePopup(); // 关闭面板
|
| | | var data = rs.data;
|
| | | console.log(data);
|
| | | var rsList = [];
|
| | | for(var i=0; i<data.length; i++) {
|
| | | var _data = data[i];
|
| | | rsList.push(_data);
|
| | | }
|
| | | |
| | | var trIndex = getSetCurrIndex(data, tOptions.data);
|
| | | // 被设置参数的机房
|
| | | for(var i=0; i<trIndex.length; i++) {
|
| | | var _data = data[i];
|
| | | var _trIndex = trIndex[i];
|
| | | var _temp = {'doThings':''};
|
| | | if(_data.num==1) {
|
| | | _temp.setCurr = 1;
|
| | | }else {
|
| | | _temp.setCurr = 2;
|
| | | }
|
| | | layuiTbl.updateTr(i, _temp);
|
| | | }
|
| | | |
| | | $('#setCurrIframe').data('setCurr', rsList);
|
| | | }else {
|
| | | layer.msg('修改失败');
|
| | | }
|
| | | }
|
| | | ,complete: function() {
|
| | | layer.close(load);
|
| | | }
|
| | | });
|
| | | }
|
| | | |
| | | |
| | | // 构造批量设置放电参数的方法
|
| | | function getSetCurrParam(data, ratio) {
|
| | | //console.log(data);
|
| | | var rs = [];
|
| | | for(var i=0; i<data.length; i++) {
|
| | | var _data = data[i];
|
| | | var disCurr = getDisCurr(_data.MonCapStd, ratio.hourrate); // 小时率
|
| | | var chargeCurr = getChargeCurr(_data.MonCapStd, ratio.chargeCurrPer); // 充电电流
|
| | | var groupVolLow = getGroupVolLow(_data.MonVolStd, _data.MonCount, ratio.groupVolLowPer); // 组端电压下限
|
| | | var monVolLow = getMonVolLow(_data.MonVolStd, ratio.monVolLowPer); // 单体电压下限
|
| | | var monNumLow = getMonNumLow(_data.MonCount, ratio.monNumLow); // 单体数量下限
|
| | | var disCap = getDisCap(_data.MonCapStd, ratio.disCapPer); // 放电容量
|
| | | var temp= {
|
| | | num: 0
|
| | | ,dev_id: _data.FBSDeviceId // 设备id
|
| | | ,op_cmd: setParamCmd // 设置参数命令
|
| | | ,TestCmd: ratio.testType // 测试类型 |
| | | ,HourRate: ratio.hourrate // 小时率
|
| | | ,DisCurr: disCurr // 放电电流
|
| | | ,DisCap: disCap // 放电容量
|
| | | ,DisTime: ratio.distime // 放电时长
|
| | | ,GroupVol_Low: groupVolLow // 组端电压下限
|
| | | ,MonomerVol_Low: monVolLow // 单体电压下限
|
| | | ,MonomerLowCount: monNumLow // 单体数量下限
|
| | | ,MonomerTmp_High: ratio.TempUpHighLimit // 温度上限
|
| | | ,OnlineLowAction: ratio.OnlineVolLowAction // 在线电压低处理
|
| | | ,ChargeCurrSet: chargeCurr // 充电电流
|
| | | ,DCVolHighLimit: ratio.DCVolHighLimit // 升压上限
|
| | | ,BattGroupNum: _data.GroupIndexInFBSDevice+1 // 电池组的索引
|
| | | ,StationName: _data.StationName // 机房名称
|
| | | }
|
| | | |
| | | rs.push(temp);
|
| | | }
|
| | | |
| | | return rs;
|
| | | }
|
| | | |
| | | |
| | | |
| | | // 获取批量设置的参数
|
| | | function getBtsPopup() {
|
| | | var temp={
|
| | | num: 0
|
| | | ,testType: $('#discharge_type').val() // 测试类型
|
| | | ,distime: $('#distime').val() // 放电时长
|
| | | ,hourrate: $('#hourrate').val() // 放电小时率
|
| | | ,disCapPer: $('#disCapPer').val() // 放电容量百分比
|
| | | ,monVolLowPer: $('#monVolLowPer').val() // 单体电压下限百分比
|
| | | ,groupVolLowPer: $('#groupVolLowPer').val() // 组端电压下限百分比
|
| | | ,monNumLow: $('#monNumLow').val() // 单体数量百分比
|
| | | ,chargeCurrPer: $('#chargeCurrPer').val() // 充电电流百分比
|
| | | ,DCVolHighLimit: $('#DCVolHighLimit').val() // 升压上限
|
| | | ,TempUpHighLimit: $('#TempUpHighLimit').val() // 温度上限
|
| | | ,OnlineVolLowAction: $('#OnlineVolLowAction').val() // 在线电压低处理
|
| | | };
|
| | | |
| | | return temp;
|
| | | }
|
| | | |
| | | |
| | | // 获取放电电流(标称容量的*小时率)
|
| | | function getDisCurr(monCapStd, ratio) {
|
| | | return monCapStd*ratio/100;
|
| | | }
|
| | | |
| | | // 获取组端电压下限(标称单体电压*单体数量*百分比)
|
| | | function getGroupVolLow(monVolStd, monCount, ratio) {
|
| | | return monVolStd*monCount*ratio/100;
|
| | | }
|
| | | |
| | | // 获取单体电压下限(标称单体电压*百分比)
|
| | | function getMonVolLow(monVolStd, ratio) {
|
| | | return monVolStd*ratio/100;
|
| | | }
|
| | | |
| | | // 单体数量下限(单体节数*百分比)
|
| | | function getMonNumLow(monCount, ratio) {
|
| | | return Math.floor(monCount*ratio/100);
|
| | | }
|
| | | |
| | | // 放电容量(标称容量*百分比)
|
| | | function getDisCap(monCapStd, ratio) {
|
| | | return monCapStd*ratio/100;
|
| | | }
|
| | | |
| | | // 充电电流(标称容量*百分比)
|
| | | function getChargeCurr(monCapStd, ratio) {
|
| | | return monCapStd*ratio/100;
|
| | | }
|
| | | |
| | | // 放电时长distime
|
| | | $('#distime').testVal({
|
| | | pattern: /^[0-9]+$/,
|
| | | regVal: true,
|
| | | min: 0,
|
| | | max: 5940,
|
| | | msg: '取值范围0~5940'
|
| | | });
|
| | | |
| | | var regs = {
|
| | | pattern: /^[0-9]+$/,
|
| | | regVal: true,
|
| | | min: 0,
|
| | | max: 300,
|
| | | msg: '取值范围0~300'
|
| | | };
|
| | | |
| | | // 小时率
|
| | | $('#hourrate').testVal(regs);
|
| | | |
| | | // 放电容量百分比
|
| | | $('#disCapPer').testVal(regs);
|
| | | |
| | | // 单体电压下限百分比
|
| | | $('#monVolLowPer').testVal(regs);
|
| | | |
| | | // 组端下限百分比
|
| | | $('#groupVolLowPer').testVal(regs);
|
| | | |
| | | // 充电电流百分比
|
| | | $('#chargeCurrPer').testVal(regs);
|
| | | |
| | | // 单体下限数量
|
| | | $('#monNumLow').testVal({
|
| | | pattern: /^[0-9]+$/,
|
| | | regVal: true,
|
| | | min: 0,
|
| | | max: 100,
|
| | | msg: '取值范围0~100'
|
| | | });
|
| | | |
| | | // 获取BTS面板的所有文本框
|
| | | $('#sysSet_popup').on('input propertychange', 'input[type=text]', function() {
|
| | | setBTSPopupStatus($(this).attr('id'), $(this).val());
|
| | | });
|
| | | |
| | | // 启动测试
|
| | | $('#startTest').click(function() {
|
| | | var rsList = $('#setCurrIframe').data('setCurr');
|
| | | if(rsList.length == 0) {
|
| | | layer.msg('暂无无法启动,请先设置放电参数!');
|
| | | return;
|
| | | }
|
| | | |
| | | // 显示面板
|
| | | layer.open({
|
| | | type: 2
|
| | | ,area: ['1200px', '500px']
|
| | | ,resize: false
|
| | | ,maxmin: true
|
| | | ,fixed: true
|
| | | ,content: 'iframe/setcurr.html'
|
| | | });
|
| | | |
| | | });
|
| | | |
| | | // 初始化设置参数的按钮
|
| | | var BTSBtn = {
|
| | | disabled: function() {
|
| | | $('#btn_set').addClass('whyc-btn-disabled'); // 设置参数按钮无效
|
| | | },
|
| | | active:function() {
|
| | | $('#btn_set').removeClass('whyc-btn-disabled'); // 设置参数按钮有效
|
| | | }
|
| | | };
|
| | | |
| | | // 设置批量设置放电参数面板
|
| | | function setBtsPopup() {
|
| | | $('#distime').val(600); // 放电时长
|
| | | $('#hourrate').val(10); // 小时率
|
| | | $('#disCapPer').val(60); // 放电容量百分比
|
| | | $('#monVolLowPer').val(90); // 单体电压下限百分比
|
| | | $('#groupVolLowPer').val(90); // 组端电压下限百分比
|
| | | $('#monNumLow').val(25); // 单体数量百分比
|
| | | $('#chargeCurrPer').val(10); // 充电电流百分比
|
| | | $('#DCVolHighLimit').val(56.4); // 升压上限
|
| | | $('#TempUpHighLimit').val(60); // 温度上限
|
| | | |
| | | // 初始化面板状态
|
| | | $('#sysSet_popup').find('input').removeClass('error-data'); // 移除错误提示
|
| | | $('#sysSet_popup').find('.error-img').removeClass('error-data'); // 移除错误提示
|
| | | BTSBtn.active();
|
| | | }
|
| | | |
| | | //根据文本框内容设置61850的按钮状态
|
| | | function setBTSPopupStatus(id, val) {
|
| | | var textList = BTS_popup.popup.find('input[type=text]');
|
| | | var selectList = BTS_popup.popup.find('.popup-tbl select');
|
| | | var errorStatus = BTS_popup.popup.data().errorStatus; // 获取是否读取参数失败
|
| | | //console.log(BTS_popup.popup.data().attr);
|
| | | // 读取设备参数失败
|
| | | if(errorStatus) {
|
| | | BTSBtn.disabled();
|
| | | return false; // 结束函数运行
|
| | | }
|
| | | |
| | | // 遍历面板下的所有文本框查看是否有错误数据
|
| | | var isDisabled = false;
|
| | | textList.each(function() {
|
| | | if($(this).hasClass('error-data')) {
|
| | | isDisabled = true;
|
| | | }
|
| | | });
|
| | | |
| | | // 存在错误的数据
|
| | | if(isDisabled) {
|
| | | BTSBtn.disabled();
|
| | | return false; // 结束函数运行
|
| | | }else {
|
| | | BTSBtn.active();
|
| | | }
|
| | | }
|
| | | |
| | | // 获取设置放电参数的下标
|
| | | function getSetCurrIndex(setData, allData) {
|
| | | var rs = [];
|
| | | // 遍历setData
|
| | | for(var i=0; i<setData.length; i++) {
|
| | | var _setData = setData[i];
|
| | | var setDevId = _setData.dev_id;
|
| | | // 遍历allData
|
| | | for(var k=0; k<allData.length; k++) {
|
| | | var _allData = allData[i];
|
| | | var allDevId = _allData.FBSDeviceId;
|
| | | if(setDevId == allDevId) {
|
| | | rs.push(k);
|
| | | }
|
| | | }
|
| | | |
| | | }
|
| | | |
| | | return rs;
|
| | | }
|
| | | |
| | | // 更新设备状态
|
| | | var BTS9100 = GLOBAL.BTS9100;
|
| | | var workStates = BTS9100.workstates;
|
| | | var alarmStates = BTS9100.alarmstates;
|
| | | function updateDevStatus() {
|
| | | var battlist = tOptions.data;
|
| | | clearInterval(updateDevStatus.timer);
|
| | | if(battlist.length > 0){
|
| | | $.ajax({ |
| | | type: "post", |
| | | url: "Fbs9100_setparamAction_action_serchByInfo", |
| | | async:true, |
| | | dataType:'text',
|
| | | data:"json="+JSON.stringify(battlist),
|
| | | dataType: 'json', |
| | | success: function(res){ |
| | | var rs = JSON.parse(res.result);
|
| | | if(rs.code == 1) {
|
| | | var data = rs.data;
|
| | | // console.log(data);
|
| | | for(var i=0; i<data.length; i++) {
|
| | | var obj = data[i];
|
| | | if(obj.fstate.num > 0){
|
| | | var str = '';
|
| | | var index = obj.fstate.dev_workstate;
|
| | | // 内阻测试(工作状态为0, 内阻测试不为0)
|
| | | if(obj.fstate.dev_workstate ==0 && obj.fstate.dev_res_test_state != 0) {
|
| | | index = 3;
|
| | | }
|
| | | // 设置文本值
|
| | | str = "状态:" + workStates[index]+
|
| | | ",告警:"+alarmStates[obj.fstate.dev_alarmstate]+
|
| | | ",组端电压(V):"+obj.fstate.dev_captest_groupvol+
|
| | | ",电流(A):"+obj.fstate.dev_captest_curr+
|
| | | ",容量(AH):"+obj.fstate.dev_captest_cap;
|
| | | if(index == 3){
|
| | | str = "状态:"+workStates[index]+
|
| | | ",组号:"+obj.fstate.dev_testgroupnum+
|
| | | ",当前单体编号:"+(obj.fstate.dev_restest_monindex+1)+
|
| | | ",被测单体总数:"+obj.fstate.dev_restest_moncount;
|
| | | }
|
| | | var temp = {
|
| | | devStatus: str // 设备状态
|
| | | ,testTime: formatSeconds(obj.fstate.dev_captest_timelong) // 测试时长
|
| | | ,signalNum: obj.fstate.dev_commcount
|
| | | }
|
| | | layuiTbl.updateTr(i, temp);
|
| | | }
|
| | | }
|
| | | }
|
| | | updateDevStatus.timer = setTimeout(updateDevStatus, 4000);
|
| | | }, |
| | | });
|
| | | }
|
| | | } |
| | | |
| | | });
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | | |
| | | </script>
|
| | | </body>
|
| | | </html> |
| | |
| | | %>
|
| | | <%@ taglib uri="/struts-tags" prefix="s" %>
|
| | | <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
|
| | | <%
|
| | | ServletContext context = getServletContext();
|
| | | String serverInfo = context.getServerInfo();
|
| | | System.out.println(serverInfo);
|
| | | %>
|
| | | <!DOCTYPE HTML123>
|
| | | <html>
|
| | | <head>
|
| | |
| | |
|
| | | ################## equip-stats-change.jsp ##################
|
| | | Device_status_records_query = \u8bbe\u5907\u72b6\u6001\u8bb0\u5f55\u67e5\u8be2
|
| | | Device_history_event_query = \u8bbe\u5907\u5386\u53f2\u4e8b\u4ef6\u67e5\u8be2
|
| | |
|
| | | ################### batt-attention.jsp #######################
|
| | | Batt_attention_manage=\u7535\u6c60\u5173\u6ce8\u7ba1\u7406
|