jia
didiyu
2019-01-05 406925bdf57b2c8ee39fca5c7d244fdd71b6005b
jia
2个文件已添加
2111 ■■■■■ 已修改文件
gx_tieta/WebRoot/bat-set-test.jsp 1047 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
gx_tieta/WebRoot/sys-set-test.jsp 1064 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
gx_tieta/WebRoot/bat-set-test.jsp
New file
@@ -0,0 +1,1047 @@
<%@ 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>
gx_tieta/WebRoot/sys-set-test.jsp
New file
@@ -0,0 +1,1064 @@
<%@ 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>