admin:huo123456@qq
2019-01-21 d42cb45f8fc0932e9a0766f98c445635a85b22d3
gx_tieta/WebRoot/sys-set-test.jsp
@@ -15,7 +15,7 @@
      <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>
       <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">
@@ -59,7 +59,7 @@
        <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-header layui-page-filter-fweight">批量系统参数设置</div>
                <div class="page-filter-content">
                    <table>
                        <tr class="layui-page-filter-tbl-header layui-page-filter-fweight">
@@ -162,8 +162,11 @@
                     </div>
                  </div>
                  <button class="layui-btn layui-btn-sm mrl8" id="batchAdd"><i class="fa fa-plus mrr8"></i>添加设备</button>
                     <button class="layui-btn layui-btn-sm" id="sysSet">批量设置系统参数</button>
                     <button class="layui-btn layui-btn-sm" id="sysSet">下发系统参数</button>
                     <button class="layui-btn layui-btn-sm" id="readSysSet">读取系统参数</button>
                     <button class="layui-btn layui-btn-sm" id="sysRestart">批量重启设备</button>
                     <span class="mrl8">选中个数/总数:</span>
                     <button class="layui-btn layui-btn-sm" id="qNumber">0/0</button>
                  </div>
               </div>
               <!-- 表格内容 -->
@@ -171,7 +174,7 @@
            </div>
        </div>
        <!-- 存储set-curr.html的信息 -->
       <div id="setCurrIframe"></div>
       <div id="sysSetTestData"></div>
       <div id="setCurrBtn"></div>
      <!-- 单体数据来源 -->
      <script type="text/html" id="DtCardCount">
@@ -233,7 +236,7 @@
               return status;
            };
         }}
         <button class="layui-btn layui-btn-sm" lay-event="readSysSet">读取</button>
         {{ getStatus(d.allStatus) }}
      </script>
      <!-- 电流钳量程 -->
@@ -552,24 +555,24 @@
                     ,{field:'dev_id', title:'设备ID', align:'center', width: 160}
                     ,{field:'stationName', title:'机房名称', align:'center', width: 470}
                     ,{field:'BattGroupNum', title:'电池组数', 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: '#CurrentRange', align:'center', width: 180}
                     ,{field:'CurrentTyte', title:'一次下电电压(V)<i class="fa fa-edit normal" title="设置一次下电电压"></i>', align:'center', width: 180}
                     ,{field:'MonomerOrder', title:'二次下电电压(V)<i class="fa fa-edit normal" title="设置二次下电电压"></i>', align:'center', width: 180}
                     ,{field:'LoaderCount', title:'DCDC模块数量 <i class="fa fa-edit normal" title="设置DCDC模块数量"></i>',templet: '#LoaderCount', align:'center', width: 180}
                     ,{field:'DtCardCount', title:'单体数据来源类型 <i class="fa fa-edit DtCardCount" title="设置单体数据来源类型"></i>', templet: '#DtCardCount', align:'center', width: 200}
                     ,{field:'POF_BG_Boost_Cnt', title:'停电升压榨干电池数量 <i class="fa fa-edit normal" title="设置停电升压榨干电池数量"></i>', align:'center', width: 240}
                     ,{field:'POF_BG_Boost_VolStop', title:'停电升压榨干电池端电压终止电压下限(V)<i class="fa fa-edit normal" title="设置停电升压榨干电池端电压终止电压下限"></i>', align:'center', width: 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:'CurrentTyte', title:'一次下电(V)<i class="fa fa-edit normal" title="设置一次下电"></i>', align:'center', width: 180}
                     ,{field:'MonomerOrder', title:'二次下电(V)<i class="fa fa-edit normal" title="设置二次下电"></i>', align:'center', width: 180}
                     ,{field:'LoaderCount', title:'DCDC数量 <i class="fa fa-edit normal" title="设置DCDC数量"></i>',templet: '#LoaderCount', align:'center', width: 180}
                     ,{field:'DtCardCount', title:'单体数据来源 <i class="fa fa-edit DtCardCount" title="设置单体数据来源"></i>', templet: '#DtCardCount', align:'center', width: 200}
                     ,{field:'POF_BG_Boost_Cnt', title:'续航组数 <i class="fa fa-edit normal" title="设置续航组数"></i>', align:'center', width: 240}
                     ,{field:'POF_BG_Boost_VolStop', title:'续航下限(V)<i class="fa fa-edit normal" title="设置续航下限"></i>', align:'center', width: 160}
                     ,{field:'POF_BG_Boost_VolStart', title:'续航启动下限(V)<i class="fa fa-edit normal" title="设置续航启动下限"></i>', align:'center', width: 200}
                     ,{field:'MajorBattGroupNum', title:'主电池组号 <i class="fa fa-edit normal" title="设置主电池组号"></i>', align:'center', width: 200}
                     ,{field: 'moncapstds', title: '标称容量(AH)', align: 'center', width: 180}
                     ,{field: 'RealCap', title: '实际容量(AH)', align: 'center', width: 180}
                     ,{field:'StationName9', title:'版本号', align:'center', width: 160}
                     ,{field:'Load_curr', title:'负载电流(A)', align:'center', width: 160}
                     ,{field:'allStatus', fixed: 'right', title: '状态', templet: '#allStatus', align: 'center', width: 180}
                     ,{field:'BackLightTime', title:'背光时间(分钟)<i class="fa fa-edit normal" title="设置背光时间"></i>', align:'center', width: 160}
                     ,{field:'PowerBreakChargeCurr', title:'停电充电电流(A)<i class="fa fa-edit normal" title="设置停电充电电流"></i>', align:'center', width: 240}
                     ,{field:'allStatus', fixed: 'right', title: '状态', templet: '#allStatus', align: 'center', width: 220}
                 ]]
                 ,data:[]
                 ,limit: 10000
@@ -582,6 +585,16 @@
              
              // 更新表格的对象
              var layuiTbl = new LayuiTbl(tOptions, layui, laytpl, table.cache.pageTbl);
              // 统计已选中个数和添加到表格中数据的个数
              var quantNum = new QuantNumber($('#qNumber'));
              // 表格复选框点击监测
              table.on('checkbox(pageTbl)', function(obj){
                 var checkStatus = table.checkStatus('pageTbl'); //idTest 即为基础参数 id 对应的值
                 var checkData = checkStatus.data;      // 被选中的数据
                 quantNum.setMol(checkData.length);
              });
              
              // 定义系统参数面板中form
              var sysSetForm = new LayuiForm('sysSetForm');
@@ -666,8 +679,13 @@
                                  for(var i=0;i<keyIds.length; i++) {
                                     var _keyId = keyIds[i];
                                     var _rsData = $.extend({}, _keyId, obj);
                                     _rsData.allStatus = 6;      // 修改参数但未设置
                                     var _trData = layuiTbl.getTr('dev_id', _rsData.dev_id);
                                     // 如果是读取失败状态仍然是读取失败
                                     if(_trData.data.allStatus == 0) {
                                        _rsData.allStatus = 0;
                                     }else {
                                        _rsData.allStatus = 6;      // 修改参数但未设置
                                     }
                                     
                                     // 判断是否为电流钳量程,设置是否符合标准
                                     if(_rsData.CurrentRange != undefined) {
@@ -880,7 +898,7 @@
                       if(rs.code == 1) {
                          data = rs.data;
                       }else {
                          layer.msg('没有可设置的电池组!');
                          layer.msg('没有可设置的机房!');
                       }
                       
                       // 如果有添加的数据
@@ -893,6 +911,9 @@
                       }
                       
                       tOptions.data = formaterSearchRsData(data);
                       // 统计选中的个数/总数
                       quantNum.set(0, data.length);
                         // 生成表格数据
                     table.render(tOptions);
                     
@@ -1001,21 +1022,45 @@
                    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;   //   二次
                 let goodAndBadHome = getGoodAndBadHome(checkData);
                 console.log(goodAndBadHome);
                 let goodHome = goodAndBadHome.good;
                 // 判断是否存在可设置参数的机房
                 if(goodHome.length != 0) {
                    // 设置存储goodAndBadHome
                    $('#sysSetTestData').data('goodAndBadHome', goodAndBadHome);
                    // 打开面板
                    layer.open({
                       type: 2
                       ,title: '系统参数设置提示'
                       ,area: ['1200px', '500px']
                       ,content: 'iframe/sys-set-test.html'
                       ,btn:['确定', '取消']
                       ,yes: function(sysSetTestIndex) {
                          // 遍历goodHome的值
                          for(var i=0; i<goodHome.length; i++) {
                             goodHome[i].num = 0;                  // num为0
                             goodHome[i].op_cmd = sysSetCmd.set;      //  设置系统参数命令
                             goodHome[i].CurrentTyte = checkData[i].CurrentTyte*10;   //   一次
                             goodHome[i].MonomerOrder =checkData[i].MonomerOrder*10;   //   二次
                          }
                          // 判断是否修改系统参数
                          layer.confirm('是否确认修改系统参数', {icon: 3, title: '提示'}, function(index) {
                             // 关闭面板
                             layer.close(sysSetTestIndex);
                             // 关闭当前面板
                             layer.close(index);
                             // 批量设置
                             batchSetSys(goodHome);
                          });
                       }
                    });
                 }else {
                    layer.msg('请选择读取成功的机房!');
                 }
                 //console.log(checkData);
                 // 判断是否修改系统参数
                 layer.confirm('是否确认修改系统参数', {icon: 3, title: '提示'}, function(index) {
                    layer.close(index);
                    // 批量设置
                    batchSetSys(checkData);
                 });
            });
            
            // 批量设置电池组
@@ -1089,6 +1134,8 @@
               
               // 弹出询问弹出框
               layer.confirm('是否批量重启设备', {icon: 3, title: '提示'}, function(index) {
                  // 关闭弹出框
                  layer.close(index);
                  // 对数据进行处理
                  var rsData = [];
                  // 遍历params的值
@@ -1105,7 +1152,7 @@
               });
            }
            
            // 更具数据向后台请求重启设备
            // 根据数据向后台请求重启设备
            function ajaxBatchRestartSys(params) {
               var loading = layer.load(1);
               // 重启设备
@@ -1148,6 +1195,102 @@
                     layer.close(loading);
                  }
               });
            }
            // 点击批量读取按钮
            $('#readSysSet').click(function() {
               let checkStatus = table.checkStatus('pageTbl'); // 获取被选中的行
                   let checkData = checkStatus.data;
                 if(checkData.length == 0) {
                    layer.msg('请选择要读取的机房!');
                    return;
                 }
                 // 遍历checkData的值
                 for(var i=0; i<checkData.length; i++) {
                    let _checkData = checkData[i];
                    _checkData.num = 0;
                    _checkData.op_cmd = sysSetCmd.get;
                 }
                 // 向后台发送重新读取的命令
                 batchReadSysSet(checkData);
            });
            // 点击表格的读取
            table.on('tool(pageTbl)', function(obj) {
               let event = obj.event;      // 获取事件名称
               switch(event) {
                  case 'readSysSet':
                     let data = obj.data;
                     data.num=0;
                     data.op_cmd = sysSetCmd.get;
                     // 请求读取
                     batchReadSysSet([data]);
                  break;
               }
            });
            // 批量读取系统参数
            function batchReadSysSet(params) {
               // 判断长度
                 if(params.length == 0) {
                    layer.msg('请选择要读取的机房!');
                    return;
                 }
                 let loading = layer.load(1);
                 // 请求
                 $.ajax({
                    type: 'post'
                    ,async: true
                    ,url: 'Fbs9100_sysparamAction_action_readPL'
                    ,data: 'json='+JSON.stringify(params)
                    ,dataType: 'json'
                    ,success: function(res) {
                       let rs = JSON.parse(res.result);
                       let rsData = [];
                       if(rs.code == 1) {
                          let data = rs.data;
                          // 遍历结果集
                          for(let i=0; i<data.length; i++) {
                             let _data = data[i];
                             let _tmp = _data.obj?_data.obj[0]:params[i];
                             if(_data.num==1) {
                                _tmp.allStatus = 1;
                             }else {
                                _tmp.allStatus = 0;
                             }
                             // 获取当前dev_id所在行的数据
                             var _trData = layuiTbl.getTr('dev_id', _data.dev_id);
                             // 判断是否获取到了当前dev_id所在行的数据
                             if(_trData.code == 1) {
                                var monVolStd = _trData.data.MonVolStd;      // 单体标称电压
                                // 设置电流钳量程状态
                                _tmp.CurrentRange_bool = checkCurrentRange(monVolStd, _tmp.CurrentRange);
                                // 设置DCDC模块数量状态
                                _tmp.LoaderCount_bool = checkLoaderCount(monVolStd, _tmp.LoaderCount);
                             }
                             rsData.push(_tmp);
                          }
                       }else {
                          layer.msg('读取失败!');
                          // 遍历params的值
                          for(let i=0; i<params.length; i++) {
                             let _params = params[i];
                             _params.allStatus = 0;
                             rsData.push(_params);
                          }
                       }
                       layuiTbl.update('dev_id', rsData);
                    }
                    ,complete: function() {
                       layer.close(loading);
                    }
                 });
            }
            
            // 获取筛选条件的字符串
@@ -1211,6 +1354,29 @@
               
               return rsBool;
            }
            // 根据allStatus的值区分可设置参数的机房信息/不可设置参数的机房
            function getGoodAndBadHome(data) {
               //console.log(data);
               let rs = {
                  good:[]      // 可设置参数机房的结果集
                  ,bad:[]      // 不可设置参数机房的结果集
               };
               // 遍历data的值
               for(var i=0; i<data.length; i++) {
                  let _data = data[i];
                  let status = _data.allStatus;
                  // 根据status的值对数据进行划分
                  if(status) {
                     rs.good.push(_data);
                  }else {
                     rs.bad.push(_data);
                  }
               }
               return rs;
            }
           });
        </script>
    </body>