D:/workspace/chenjingjing/git/gx_tieta/gx_tieta/.gitignore
2019-01-09 ff397a9336bb6676e88454540565d0e7451a2ef9
Merge branch 'dev_lxw' of https://whyccjj@gitlab.com/whyclxw1/gx_tieta.git into dev_lxw
4个文件已修改
1076 ■■■■ 已修改文件
gx_tieta/WebRoot/ex-battinfo.jsp 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
gx_tieta/WebRoot/pages/css/mylayui.css 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
gx_tieta/WebRoot/pages/js/mylayui.js 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
gx_tieta/WebRoot/sys-set-test.jsp 979 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
gx_tieta/WebRoot/ex-battinfo.jsp
@@ -637,7 +637,7 @@
                            var resData = [];
                            if(rs.code == 1) {
                                var data = rs.data;
                                // console.log(data);
                                //console.log(data);
                                // 遍历数据的值
                                for(var i=0; i<data.length; i++) {
                                    var _data = data[i];
@@ -714,7 +714,11 @@
                            if(isUpdateTbl) {
                                $('#applyNum').text(Page.all);     // 设置徽章
                                tOptions.data = resData;    //  设置表格的数据
                                table.render(tOptions);
                                // 当前选项卡没有显示
                                if(tabsIndex != 0) {
                                    table.render(tOptions);
                                }
                            }
                            // console.log(456);
                            // 实时回调
@@ -870,7 +874,10 @@
                            for(var i=0; i<resData.length; i++) {
                                var _resData = resData[i];
                                _resData.doThings = '';
                                layuiTbl.updateTr(i, _resData);
                                // 当前选项卡没有显示
                                if(tabsIndex != 1) {
                                    layuiTbl.updateTr(i, _resData);
                                }
                            }
                            //console.log(123);
                            // 实时回调
gx_tieta/WebRoot/pages/css/mylayui.css
@@ -61,8 +61,7 @@
    border-color: #ccc;
}
.layui-form-pane .layui-form-label {
    background-color: #4EABE3;
    color: #FFFFFF;
}
.layui-tbl-filter {
@@ -183,6 +182,10 @@
}
.w5em {
    width: 5em;
}
/* mrt */
.mrt30 {
   margin-top: 30px;
}
/* mrl */
.mrl8 {
@@ -334,4 +337,17 @@
}
body .layui-tab-content {
    padding: 0;
}
.layui-form-pane.layui-form-pane-width180 .layui-form-label{
    width: 180px;
}
.layui-form-pane.layui-form-pane-width180 .layui-input-block {
    margin-left: 180px;
}
.layui-form-pane.layui-form-pane-width160 .layui-form-label{
    width: 160px;
}
.layui-form-pane.layui-form-pane-width160 .layui-input-block {
    margin-left: 160px;
}
gx_tieta/WebRoot/pages/js/mylayui.js
@@ -543,3 +543,67 @@
    }
};
//获取layui的form表单的值(支持input和select)
var LayuiForm = function(ele) {
    this.ele = ele;
};
// 定义原型方法
LayuiForm.prototype = {
    get: function(callback) {
        var ele = $('#'+this.ele);
        var isGood = this._checkForm(ele);
        if(isGood) {
            var iptsVals = this._getIpts(ele);
            var selVals = this._getSels(ele);
            //  获取所有的form值
            var rs = $.extend({}, iptsVals, selVals);
            callback(rs);
        }
    }
    ,_getIpts: function(ele) {
        var ipts = ele.find('input');
        var iptVals = {};
        ipts.each(function() {
            var name = $(this).attr('name');
            if(name) {
                iptVals[name] = $(this).val();
            }
        });
        return iptVals;
    }
    ,_getSels: function(ele) {
        var sels = ele.find('select');
        var selVals = {};
        sels.each(function() {
            var name = $(this).attr('name');
            if(name) {
                selVals[name] = $(this).val();
            }
        });
        return selVals;
    }
    ,_checkForm: function(ele) {
        var isGood = true;
        var ipts = ele.find('input');
        var sels = ele.find('select');
        //  遍历所有的input查询是否有数据不正确的
        ipts.each(function() {
            if($(this).hasClass('layui-form-danger')) {
                isGood = false;
            }
        });
        //  遍历所有的select查询是否有数据不正确的
        sels.each(function() {
            if($(this).hasClass('layui-form-danger')) {
                isGood = false;
            }
        });
        // 返回结果
        return isGood;
    }
};
gx_tieta/WebRoot/sys-set-test.jsp
@@ -43,9 +43,13 @@
                outline: none !important;
                border: 1px solid #FF0000 !important;
            }
            .layui-table-header .fa:hover {
                cursor: pointer;
                color: #1E9FFF;
            }
        </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">
    </head>
     <body>
         <!--头部内容开始-->
        <jsp:include page="Top.jsp" flush="true"/>
        <!--头部内容结束-->
@@ -117,8 +121,8 @@
                                       <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>
                                                   <option value="12">12V设备</option>
                                                <option value="2">2V设备</option>
                                            </select>
                                           </div>
                                       </div>
@@ -166,141 +170,58 @@
                <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 type="text/html" id="DtCardCount">
            {{# if(d.DtCardCount==1) { }}
                从一拖24获取
            {{# }else{  }}
                从汇集器获取
            {{# } }}
        </script>
        <!-- 已测时长 -->
        <script type="text/html" id="testTime">
            {{# if(d.testTime) { }}
                {{d.testTime}}
            {{# }else{ }}
                00:00:00
        <!-- 操作栏 -->
        <script type="text/html" id="doThings">
            <button class="layui-btn layui-btn-sm layui-btn-normal" lay-event="read">读取</button>
        </script>
        <!-- 读取状态 -->
        <script type="text/html" id="readStatus">
            {{# if(d.readStatus == 1){ }}
                <button class="layui-btn layui-btn-sm layui-btn-normal">读取成功</button>
            {{# }else { }}
                <button class="layui-btn layui-btn-sm layui-btn-danger">读取失败</button>
            {{# } }}
        </script>
        <!-- 通信计数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){ }}
        <!-- 设置状态 -->
        <script type="text/html" id="setStatus">
            {{# if(d.setStatus == 1){ }}
                <button class="layui-btn layui-btn-sm layui-btn-normal">设置成功</button>
            {{# }else if(d.setStatus == 2) { }}
                <button class="layui-btn layui-btn-sm layui-btn-danger">设置失败</button>
            {{# }else { }}
                <button class="layui-btn layui-btn-sm layui-btn-normal">未设置</button>
                <button class="layui-btn layui-btn-sm layui-btn-disabled">未设置</button>
            {{# } }}
        </script>
        <!-- 普通面板 -->
        <script type="text/html" id="normalSet">
            <div class="layui-form layui-"></div>
        </script>
        <!-- 设置参数面板 -->
        <script type="text/html" id="sysSetNormalTpl">
            <div class="layui-form layui-form-pane layui-form-pane-width160 mrl8 mrr8 mrt30" id="sysSetForm" lay-filter="sysSetFilter">
                <div class="layui-form-item">
                    <label class="layui-form-label">{{d.msg}}</label>
                    <div class="layui-input-block">
                           <input type="text" id="sysSetVal" name="{{d.field}}" lay-verify="{{d.verify}}" lay-verType="tips" placeholder="请输入设定参数" autocomplete="off" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item t-align-right" style="display: none">
                    <button class="layui-btn layui-btn-sm mrr8" lay-submit="" lay-fllter="go" id="go">确定</button>
                    <button class="layui-btn layui-btn-sm layui-btn-danger mrr8">取消</button>
                </div>
            </div>
        </script>
        <script type="text/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>
@@ -555,33 +476,41 @@
                
                // 表格模块
                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'
                };
                    elem: '#pageTbl'
                    ,toolbar: true
                    ,defaultToolbar: []
                    ,cellMinWidth: 80
                    ,cols: [[
                        {type:'checkbox',fixed: 'left'}
                        ,{field:'dev_id', title:'设备ID', align:'center', width: 160}
                        ,{field:'stationName', title:'机房名称', align:'center', width: 470}
                        ,{field:'BattGroupNum', title:'电池组数', align:'center', width: 120}
                        ,{field:'readStatus', title:'读取状态', templet: '#readStatus', align:'center', width: 120}
                        ,{field:'setStatus', title:'设置状态', templet: '#setStatus', align:'center', width: 120}
                        ,{field: 'moncapstds', title: '电池组标称容量(AH)', align: 'center', width: 180}
                        ,{field: 'RealCap', title: '电池组实际容量(AH)', align: 'center', width: 180}
                        ,{field:'GroupVolRange', title:'总续航时间(分钟)<i class="fa fa-edit normal" title="设置总续航时间"></i>', align:'center', width: 180}
                        ,{field:'GroupVolSorce', title:'保一次下电续航时间(分钟)<i class="fa fa-edit normal" title="设置保一次下电续航时间"></i>', align:'center', width: 240}
                        ,{field:'CurrentRange', title:'电流钳量程(A)<i class="fa fa-edit normal" title="设置电流钳量程"></i>', templet: '', align:'center', width: 180}
                        ,{field:'CurrentTyte', title:'一次下电电压(V)<i class="fa fa-edit normal" title="设置一次下电电压"></i>', align:'center', width: 180}
                        ,{field:'MonomerOrder', title:'二次下电电压(V)<i class="fa fa-edit normal" title="设置二次下电电压"></i>', align:'center', width: 180}
                        ,{field:'LoaderCount', title:'DCDC模块数量 <i class="fa fa-edit normal" title="设置DCDC模块数量"></i>', align:'center', width: 180}
                        ,{field:'DtCardCount', title:'单体数据来源类型 <i class="fa fa-edit" title="设置单体数据来源类型"></i>', templet: '#DtCardCount', align:'center', width: 200}
                        ,{field:'POF_BG_Boost_Cnt', title:'停电升压榨干电池数量 <i class="fa fa-edit normal" title="设置停电升压榨干电池数量"></i>', align:'center', width: 240}
                        ,{field:'POF_BG_Boost_VolStop', title:'停电升压榨干电池端电压终止电压下限(V)<i class="fa fa-edit normal" title="设置停电升压榨干电池端电压终止电压下限"></i>', align:'center', width: 400}
                        ,{field:'POF_BG_Boost_VolStart', title:'停电升压榨干电池端电压启动电压下限(V)<i class="fa fa-edit normal" title="设置停电升压榨干电池端电压启动电压下限"></i>', align:'center', width: 400}
                        ,{field:'MajorBattGroupNum', title:'电池合路器主电池组编号 <i class="fa fa-edit normal" title="设置电池合路器主电池组编号"></i>', align:'center', width: 300}
                        ,{field:'BackLightTime', title:'背光时间(分钟)<i class="fa fa-edit normal" title="设置背光时间"></i>', align:'center', width: 160}
                        ,{field:'PowerBreakChargeCurr', title:'停电充电电流(A)<i class="fa fa-edit normal" title="设置停电充电电流"></i>', align:'center', width: 240}
                        ,{field:'StationName9', title:'版本号', align:'center', width: 160}
                        ,{field:'Load_curr', title:'负载电流(A)', align:'center', width: 160}
                        ,{field:'doThings', fixed: 'right', title: '操作', toolbar: '#doThings', align: 'center', width: 120}
                    ]]
                    ,data:[]
                    ,limit: 10000
                    ,page: false
                    ,height: 'full-252'
                };
                
                // 生成表格数据
                table.render(tOptions);
@@ -589,6 +518,216 @@
                // 更新表格的对象
                var layuiTbl = new LayuiTbl(tOptions, layui, laytpl, table.cache.pageTbl);
                
                // 定义系统参数面板中form
                var sysSetForm = new LayuiForm('sysSetForm');
                // 设置普通系统参数模板
                var sysSetNormalTpl = $('#sysSetNormalTpl').html();
                // 点击表格中同步的按钮
                $('.layui-page-content').on('click', '.layui-table-header .fa.normal', function() {
                    var title = $(this).attr('title');
                    var th = $(this).parent().parent().parent();
                    var field = th.data('field');
                    // 判断是否存在可以设置的机房
                    if(tOptions.data.length == 0) {
                        layer.msg('请先添加机房!');
                    }else {
                        var checkStatus = table.checkStatus('pageTbl'); // 获取被选中的行
                        var checkData = checkStatus.data;
                        if(checkData.length == 0) {
                            layer.msg('请选择要设置的机房!');
                            return;
                        }
                        var keyIds= getKeyId(checkData);
                        // 更新指定的列
                           var showFormData = getShowFormData(title, field);
                           // 显示面板
                           changeTblData(sysSetNormalTpl, showFormData, keyIds);
                    }
                });
                // 修改表格内容
                function changeTblData(html, data, keyIds) {
                       // 面板显示
                    laytpl(html).render(data, function(html) {
                        // 面板
                        layer.open({
                            type: 1
                            ,title: data.title
                            ,area: ['400px', '200px']
                            ,content: html
                            ,btn:['确定', '取消']
                            ,yes:function(index) {
                                layer.close(index);     // 关闭面板
                                $('#go').click();    // 触发layui form表单提交事件
                                sysSetForm.get(function(obj) {
                                    var rsData = [];
                                    for(var i=0;i<keyIds.length; i++) {
                                        var _keyId = keyIds[i];
                                        var _rsData = $.extend({}, _keyId, obj);
                                        rsData.push(_rsData);
                                    }
                                      // 更新表格的值
                                      layuiTbl.update('dev_id', rsData);
                                });
                            }
                        });
                    });
                }
                // 构造显示面板的数据
                function getShowFormData(title, field) {
                    var rs = {
                        title: title
                        ,field: field
                        ,verify: ''
                        ,msg: ''
                    };
                    switch(field){
                        case 'GroupVolRange':    // 总续航时间
                            rs.verify = 'required|number|intNum|GroupVolRange'
                            rs.msg = '取值范围0~9999'
                        break;
                        case 'GroupVolSorce':    // 保一次下电续航时间
                            rs.verify = 'required|number|intNum|GroupVolRange'
                            rs.msg = '取值范围0~9999'
                        break;
                        case 'CurrentRange':        // 电流钳量程
                            rs.verify = 'required|number|intNum|CurrentRange'
                            rs.msg = '取值范围10~9999'
                        break;
                        case 'CurrentTyte':        // 一次下电电压
                            rs.verify = 'required|number|CurrentTyte'
                            rs.msg = '取值范围35.0~65.0'
                        break;
                        case 'MonomerOrder':        // 二次下电电压
                            rs.verify = 'required|number|CurrentTyte'
                            rs.msg = '取值范围35.0~65.0'
                        break;
                        case 'LoaderCount':        // DCDC模块数量
                            rs.verify = 'required|number|intNum|LoaderCount'
                            rs.msg = '取值范围1~10'
                        break;
                        case 'POF_BG_Boost_Cnt':    // 停电升压榨干电池数量
                            rs.verify = 'required|number|intNum|POF_BG_Boost_Cnt'
                            rs.msg = '取值范围0~2'
                        break;
                        case 'POF_BG_Boost_VolStop':        // 停电升压榨干电池端电压终止电压下限
                            rs.verify = 'required|number|CurrentTyte'
                            rs.msg = '取值范围35.0~65.0'
                        break;
                        case 'POF_BG_Boost_VolStart':        // 停电升压榨干电池端电压启动电压下限
                            rs.verify = 'required|number|CurrentTyte'
                            rs.msg = '取值范围35.0~65.0'
                        break;
                        case 'MajorBattGroupNum':            // 电池合路器主电池组编号
                            rs.verify = 'required|number|intNum|POF_BG_Boost_Cnt'
                            rs.msg = '取值范围0~2'
                        break;
                        case 'BackLightTime':        // 背光时长
                            rs.verify = 'required|number|intNum|BackLightTime'
                            rs.msg = '取值范围0~999'
                        break;
                        case 'PowerBreakChargeCurr':        // 背光时长
                            rs.verify = 'required|number|intNum|PowerBreakChargeCurr'
                            rs.msg = '取值范围0~50'
                        break;
                    }
                    return rs;
                }
                // 自定义form表单验证规则
                form.verify({
                    intNum: function(value) {
                        // 定义规则
                        var ptn=/^[0-9]*$/;
                        // 返回结果
                        var msg = '请输入整数';
                        if(!ptn.test(value)) {
                            return msg;
                        }
                    }
                    ,GroupVolRange: function(value) {
                        // 定义规则
                        var ptn=/^[0-9]*$/;
                        var msg = '取值范围0~9999(整数)';
                        // 判断取值范围
                        if(value<0 || value>9999) {
                            return msg;
                        }
                    }
                    ,CurrentRange: function(value) {
                        // 定义规则
                        var ptn=/^[0-9]*$/;
                        var msg = '取值范围10~9999(整数)';
                        // 验证规则
                        if(!ptn.test(value)) {
                            return msg;
                        }
                        // 判断取值范围
                        if(value<10 || value>9999) {
                            return msg;
                        }
                    }
                    ,CurrentTyte: function(value) {
                        // 定义规则
                        var msg = '取值范围35.0~65.0';
                        // 判断取值范围
                        if(value<35 || value>65) {
                            return msg;
                        }
                    }
                    ,LoaderCount: function(value) {
                        // 定义规则
                        var msg = '取值范围1~10(整数)';
                        // 判断取值范围
                        if(value<1 || value>10) {
                            return msg;
                        }
                    }
                    ,POF_BG_Boost_Cnt: function(value) {
                        // 定义规则
                        var ptn=/^[0-9]*$/;
                        // 定义取值范围
                        var msg = '取值范围0~2(整数)';
                        // 判断取值范围
                        if(value<0 || value>2) {
                            return msg;
                        }
                    }
                    ,BackLightTime: function(value) {
                        // 返回结果
                        var msg = '取值范围0~999(整数)';
                        // 判断取值范围
                        if(value<0 || value>999) {
                            return msg;
                        }
                    }
                    ,PowerBreakChargeCurr: function(value) {
                        // 返回结果
                        var msg = '取值范围0~50(整数)';
                        // 判断取值范围
                        if(value<0 || value>50) {
                            return msg;
                        }
                    }
                });
                // 设置添加操作的字符串
                var addBattStr = '';
                // 点击添加电池组
                $('#setCurrIframe').data('setCurr', []);
                $('#batchAdd').click(function() {
@@ -610,28 +749,81 @@
                    $.ajax({
                        type: 'post'
                        ,async: true
                        ,url: 'BattInfAction!serchByDischarge'
                        ,url: 'Fbs9100_sysparamAction_action_serchBattinfAndParam'
                        ,data: 'json='+JSON.stringify(temp)
                        ,dataType: 'json'
                        ,success: function(res) {
                            // console.log(res);
                            var rs = JSON.parse(res.result);
                            var data = [];
                            addBattStr = '';        // 初始化字符串
                            if(rs.code == 1) {
                                data = rs.data;
                            }else {
                                layer.msg('没有可设置的电池组!');
                            }
                            console.log(data);
                            tOptions.data = data;
                            // 如果有添加的数据
                            if(data.length !=0) {
                                if(addBattStr.length == 0) {    // 字符串长度为0
                                    addBattStr += getFilterStr(temp);
                                }else {
                                    addBattStr += ','+getFilterStr(temp);
                                }
                            }
                            tOptions.data = formaterSearchRsData(data);
                               // 生成表格数据
                            table.render(tOptions);
                            updateDevStatus();
                            // 更新缓存数据
                            layuiTbl.setCache(table.cache.pageTbl);
                        }
                        ,complete:function() {
                            layer.close(load);
                        }
                    });
                }
                // 处理查询结果的值并返回指定的数据格式
                function formaterSearchRsData(data) {
                    var rs = [];
                    // 遍历data值
                    for(var i=0; i<data.length; i++) {
                        var _data = data[i];
                        var tmp = _data.obj[0];                    // 系统信息
                        tmp.dev_id = _data.FBSDeviceId;            // 设备ID
                        tmp.stationName = _data.StationName;        // 机房名称
                        tmp.BattGroupNum = _data.BattGroupNum;    // 电池组数
                        tmp.moncapstds = _data.moncapstds;        // 单体标称容量
                        tmp.StationName9 = _data.StationName9;    // 设备版本号
                        tmp.Load_curr = _data.Load_curr;        // 负载电流
                        tmp.RealCap = '';
                        tmp.CurrentTyte = tmp.CurrentTyte/10;    // 一次下电电压
                        tmp.MonomerOrder = tmp.MonomerOrder/10;    // 二次下电电压
                        // 设置电池组实际容量字符串
                        for(var k=1; k<=_data.BattGroupNum;k++) {
                            var kStr = 'real_cap_group'+k;
                            if(k==_data.BattGroupNum) {
                                tmp.RealCap += _data[kStr].toFixed(0);
                            }else {
                                tmp.RealCap += _data[kStr].toFixed(0)+'/';
                            }
                        }
                        // 判断读取状态
                        if(_data.num == 1) {
                            tmp.readStatus = 1;        // 读取成功
                        }else {
                            tmp.readStatus = 0;        // 读取失败
                        }
                        tmp.setStatus = 0;
                        // 将数据添加到结果集中
                        rs.push(tmp);
                    }
                    return rs;
                }
                
                // 点击添加构造查询
@@ -673,392 +865,105 @@
                    return rs;
                }
                
                // 点击批量设置放电电流参数
                var pageIframe = "";
                // 系统参数
                var sysSetCmd = GLOBAL.CMD.sys;
                // 批量设置系统参数
                $('#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 checkStatus = table.checkStatus('pageTbl'); // 获取被选中的行
                       var checkData = checkStatus.data;
                    if(checkData.length == 0) {
                        layer.msg('请选择要设置的机房!');
                        return;
                    }
                    // 遍历chackData的值
                    for(var i=0; i<checkData.length; i++) {
                        checkData[i].num = 0;                        // num为0
                        checkData[i].op_cmd = sysSetCmd.set;        //  设置系统参数命令
                        checkData[i].CurrentTyte = checkData[i].CurrentTyte*10;    //    一次
                        checkData[i].MonomerOrder =checkData[i].MonomerOrder*10;    //    二次
                    }
                    //console.log(checkData);
                    // 判断是否修改系统参数
                    layer.confirm('是否确认修改系统参数', {icon: 3, title: '提示'}, function(index) {
                        layer.close(index);
                        // 批量设置
                        batchSetSys(checkData);
                    });
                });
                
                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);
                // 批量设置电池组
                function batchSetSys(checkData) {
                    var loading = layer.load(1);
                    //  根据数据设置系统参数
                    $.ajax({
                        type: 'post'
                        ,async: true
                        ,url: 'Fbs9100_sysparamAction_action_updatePro'
                        ,data: 'json='+JSON.stringify(checkData)+'&json_msg='+addBattStr
                        ,dataType: 'json'
                        ,success: function(res) {
                            var rs = JSON.parse(res.result);
                            if(rs.code == 1) {
                                layer.msg('设置参数成功');
                                var data = rs.data;
                                // 遍历data的值
                                var rsData = [];
                                for(var i=0; i<data.length; i++) {
                                    var _data = data[i];
                                    if(_data.num == 1) {
                                        _data.setStatus = 1;
                                    }else {
                                        _data.setStatus = 2;
                                    }
                                    _data.CurrentTyte = _data.CurrentTyte/10;    // 一次下电电压
                                    _data.MonomerOrder = _data.MonomerOrder/10;    // 二次下电电压
                                }
                                layuiTbl.update('dev_id', data);
                            }else {
                                layer.msg('设置参数失败');
                                var rsData= [];
                                // 遍历checkData的值
                                for(var i=0;i<checkData.length; i++) {
                                    var _checkData = checkData[i];
                                    var tmp = {};
                                    tmp.dev_id = _checkData.dev_id;
                                    tmp.setStatus = 0;
                                    rsData.push(tmp);
                                }
                                layuiTbl.update('dev_id', rsData);
                            }
                        }
                    }
                    return rs;
                        ,complete: function() {
                            layer.close(loading);
                        }
                    });
                }
                
                //  更新设备状态
                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);
                            },
                        });
                    }
                }
                // 获取筛选条件的字符串
                function getFilterStr(data) {
                    var rsString = '';
                    rsString += data.StationName;
                    rsString += '-'+data.MonVolStd+'V设备';
                    rsString += '-'+(data.GroupIndexInFBSDevice == '0'?'电池组1': '电池组2');
                    return rsString;
                }
                
                // 获取被选中行的标识位
                function getKeyId(data) {
                    var rs = [];
                    // 遍历data的值
                    for(var i=0; i<data.length; i++) {
                        var _data = data[i];
                        var tmp = {};
                        tmp.dev_id = _data.dev_id;
                        rs.push(tmp);
                    }
                    return rs;
                }
            });
        </script>
    </body>
</html>