hdw
2019-01-10 b3c8892bf421cb0a20c0981d94baf982ca5697a2
gx_tieta/WebRoot/sys-set-test.jsp
@@ -163,7 +163,7 @@
                  </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="sysRestart">批量重启设备</button>
                  </div>
               </div>
               <!-- 表格内容 -->
@@ -178,7 +178,7 @@
         {{# if(d.DtCardCount==1) { }}
            从一拖24获取
         {{# }else{  }}
            从汇集器获取
            <span style="color: #FF0000">从汇集器获取</span>
         {{# } }}
      </script>
      <!-- 操作栏 -->
@@ -203,6 +203,55 @@
            <button class="layui-btn layui-btn-sm layui-btn-disabled">未设置</button>
         {{# } }}
      </script>
      <script type="text/html" id="allStatus">
         {{#
            var getStatus = function (val) {
               var status = '<button class="layui-btn layui-btn-sm layui-btn-danger">未知</button>';
               switch(val) {
                  case 0:
                     status='<button class="layui-btn layui-btn-sm layui-btn-danger">读取失败</button>';
                  break;
                  case 1:
                     status='<button class="layui-btn layui-btn-sm layui-btn-normal">读取成功</button>';
                  break;
                  case 2:
                     status='<button class="layui-btn layui-btn-sm layui-btn-danger">设置失败</button>';
                  break;
                  case 3:
                     status='<button class="layui-btn layui-btn-sm">设置成功</button>';
                  break;
                  case 4:
                     status='<button class="layui-btn layui-btn-sm layui-btn-danger">重启失败</button>';
                  break;
                  case 5:
                     status='<button class="layui-btn layui-btn-sm layui-btn-warm">重启成功</button>';
                  break;
                  case 6:
                     status='<button class="layui-btn layui-btn-sm layui-btn-warm">修改未设置</button>';
                  break;
               }
               return status;
            };
         }}
         {{ getStatus(d.allStatus) }}
      </script>
      <!-- 电流钳量程 -->
      <script type="text/html" id="CurrentRange">
         {{# if(d.CurrentRange_bool == 1){ }}
            {{d.CurrentRange}}
         {{# }else{ }}
            <span style="color:#FF0000;">{{d.CurrentRange}}</span>
         {{# } }}
      </script>
      <!-- DCDC模块数量 -->
      <script type="text/html" id="LoaderCount">
         {{# if(d.LoaderCount_bool == 1){ }}
            {{d.LoaderCount}}
         {{# }else{ }}
            <span style="color:#FF0000;">{{d.LoaderCount}}</span>
         {{# } }}
      </script>
      <!-- 普通面板 -->
      <script type="text/html" id="normalSet">
         <div class="layui-form layui-"></div>
@@ -214,6 +263,24 @@
                   <label class="layui-form-label">{{d.msg}}</label>
                   <div class="layui-input-block">
                         <input type="text" id="sysSetVal" name="{{d.field}}" lay-verify="{{d.verify}}" lay-verType="tips" placeholder="请输入设定参数" autocomplete="off" class="layui-input">
                   </div>
               </div>
               <div class="layui-form-item t-align-right" style="display: none">
                   <button class="layui-btn layui-btn-sm mrr8" lay-submit="" lay-fllter="go" id="go">确定</button>
                   <button class="layui-btn layui-btn-sm layui-btn-danger mrr8">取消</button>
               </div>
           </div>
       </script>
       <!-- 设置单体数据来源面板 -->
       <script type="text/html" id="sysSetDtCardCountTpl">
           <div class="layui-form layui-form-pane layui-form-pane-width160 mrl8 mrr8 mrt30" id="sysSetForm" lay-filter="sysSetFilter">
               <div class="layui-form-item">
                   <label class="layui-form-label">{{d.msg}}</label>
                   <div class="layui-input-block">
                  <select name="{{d.field}}">
                     <option value="1">从一拖24获取</option>
                     <option value="0">从汇集器获取</option>
                  </select>
                   </div>
               </div>
               <div class="layui-form-item t-align-right" style="display: none">
@@ -485,17 +552,15 @@
                     ,{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:'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>', align:'center', width: 180}
                     ,{field:'DtCardCount', title:'单体数据来源类型 <i class="fa fa-edit" title="设置单体数据来源类型"></i>', templet: '#DtCardCount', align:'center', width: 200}
                     ,{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}
@@ -504,7 +569,7 @@
                     ,{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}
                     ,{field:'allStatus', fixed: 'right', title: '状态', templet: '#allStatus', align: 'center', width: 180}
                 ]]
                 ,data:[]
                 ,limit: 10000
@@ -522,7 +587,11 @@
              var sysSetForm = new LayuiForm('sysSetForm');
              
              // 设置普通系统参数模板
              var sysSetNormalTpl = $('#sysSetNormalTpl').html();
              var sysSetNormalTpl = $('#sysSetNormalTpl').html();
              // 设置单体数据来源模板
              var sysSetDtCardCountTpl = $('#sysSetDtCardCountTpl').html();
              // 点击表格中同步的按钮
              $('.layui-page-content').on('click', '.layui-table-header .fa.normal', function() {
                 var title = $(this).attr('title');
@@ -549,6 +618,32 @@
                 }
              });
              
              //  点击表格单体数据来源进行修改
              $('.layui-page-content').on('click', '.layui-table-header .fa.DtCardCount', function() {
                 var title = $(this).attr('title');
                 var th = $(this).parent().parent().parent();
                 var field = th.data('field');
                 // 判断是否存在可以设置的机房
                 if(tOptions.data.length == 0) {
                    layer.msg('请先添加机房!');
                 }else {
                    var checkStatus = table.checkStatus('pageTbl'); // 获取被选中的行
                    var checkData = checkStatus.data;
                    if(checkData.length == 0) {
                       layer.msg('请选择要设置的机房!');
                       return;
                    }
                    var keyIds= getKeyId(checkData);
                    // 更新指定的列
                      var showFormData = getShowFormData(title, field);
                      // 显示面板
                      changeTblData(sysSetDtCardCountTpl, showFormData, keyIds);
                 }
              });
              // 修改表格内容
              function changeTblData(html, data, keyIds) {
                   // 面板显示
@@ -560,14 +655,36 @@
                          ,area: ['400px', '200px']
                          ,content: html
                          ,btn:['确定', '取消']
                          ,success: function() {
                             form.render(null, 'sysSetFilter');
                          }
                          ,yes:function(index) {
                             layer.close(index);    // 关闭面板
                              $('#go').click();   // 触发layui form表单提交事件
                              sysSetForm.get(function(obj) {
                                 layer.close(index);    // 关闭面板
                                 var rsData = [];
                                  for(var i=0;i<keyIds.length; i++) {
                                     var _keyId = keyIds[i];
                                     var _rsData = $.extend({}, _keyId, obj);
                                     _rsData.allStatus = 6;      // 修改参数但未设置
                                     var _trData = layuiTbl.getTr('dev_id', _rsData.dev_id);
                                     // 判断是否为电流钳量程,设置是否符合标准
                                     if(_rsData.CurrentRange != undefined) {
                                        if(_trData.code == 1) {
                                           // 设置当前内容是否符合标准
                                           _rsData.CurrentRange_bool = checkCurrentRange(_trData.data.MonVolStd, _rsData.CurrentRange);
                                        }
                                     }
                                     // 判断是否为DCDC模块数量,设置是否符合标准
                                     if(_rsData.LoaderCount != undefined) {
                                        if(_trData.code == 1) {
                                           // 设置当前内容是否符合标准
                                           _rsData.LoaderCount_bool = checkLoaderCount(_trData.data.MonVolStd, _rsData.LoaderCount);
                                        }
                                     }
                                     rsData.push(_rsData);
                                  }
                                  
@@ -636,6 +753,10 @@
                    case 'PowerBreakChargeCurr':      // 背光时长
                       rs.verify = 'required|number|intNum|PowerBreakChargeCurr'
                       rs.msg = '取值范围0~50'
                    break;
                    case 'DtCardCount':
                       rs.verify = 'required';
                       rs.msg = '请选择来源';
                    break;
                 }
                 
@@ -795,6 +916,7 @@
                    tmp.dev_id = _data.FBSDeviceId;         // 设备ID
                    tmp.stationName = _data.StationName;      // 机房名称
                    tmp.BattGroupNum = _data.BattGroupNum;   // 电池组数
                    tmp.MonVolStd = _data.MonVolStd;      // 单体标称电压
                    tmp.moncapstds = _data.moncapstds;      // 单体标称容量
                    tmp.StationName9 = _data.StationName9;   // 设备版本号
                    tmp.Load_curr = _data.Load_curr;      // 负载电流
@@ -814,11 +936,13 @@
                    
                    // 判断读取状态 
                    if(_data.num == 1) {
                       tmp.readStatus = 1;      // 读取成功
                       tmp.allStatus = 1;      // 读取成功
                    }else {
                       tmp.readStatus = 0;      // 读取失败
                       tmp.allStatus = 0;      // 读取失败
                    }
                    tmp.setStatus = 0;
                    tmp.CurrentRange_bool = checkCurrentRange(_data.MonVolStd, tmp.CurrentRange);      // 检测电流钳量程
                    tmp.LoaderCount_bool = checkLoaderCount(_data.MonVolStd, tmp.LoaderCount);          // 检测DCDC模块数量
                    //console.log(tmp.CurrentRange_bool);
                    // 将数据添加到结果集中
                    rs.push(tmp);
                 }
@@ -914,9 +1038,9 @@
                        for(var i=0; i<data.length; i++) {
                           var _data = data[i];
                           if(_data.num == 1) {
                              _data.setStatus = 1;
                              _data.allStatus = 3;      // 设置成功
                           }else {
                              _data.setStatus = 2;
                              _data.allStatus = 2;      //  设置失败
                           }
                           _data.CurrentTyte = _data.CurrentTyte/10;   // 一次下电电压
                             _data.MonomerOrder = _data.MonomerOrder/10;   // 二次下电电压
@@ -930,11 +1054,95 @@
                           var _checkData = checkData[i];
                           var tmp = {};
                           tmp.dev_id = _checkData.dev_id;
                           tmp.setStatus = 0;
                           _data.allStatus = 2;      //  设置失败
                           rsData.push(tmp);
                        }
                        layuiTbl.update('dev_id', rsData);
                     }
                  }
                  ,complete: function() {
                     layer.close(loading);
                  }
               });
            }
            // 批量重启设备按钮
            $('#sysRestart').click(function() {
               var checkStatus = table.checkStatus('pageTbl'); // 获取被选中的行
                   var checkData = checkStatus.data;
                 if(checkData.length == 0) {
                    layer.msg('请选择要设置的机房!');
                    return;
                 }
                 // 调用重启设备的请求
                 batchRestartSys(checkData);
            });
            // 批量重启设备请求
            function batchRestartSys(params) {
               // 判断data是否为空
               if(!params || params.length==0) {
                  layer.msg('请选择要重启的设备');
                  return;
               }
               // 弹出询问弹出框
               layer.confirm('是否批量重启设备', {icon: 3, title: '提示'}, function(index) {
                  // 对数据进行处理
                  var rsData = [];
                  // 遍历params的值
                  for(var i=0; i<params.length; i++)  {
                     var _params = params[i];
                     _params.op_cmd = sysSetCmd.restart;
                     _params.num = 0;
                     rsData.push(_params);
                  }
                  // 请求后台
                  ajaxBatchRestartSys(rsData);
               });
            }
            // 更具数据向后台请求重启设备
            function ajaxBatchRestartSys(params) {
               var loading = layer.load(1);
               // 重启设备
               $.ajax({
                  type: 'post'
                  ,async: true
                  ,url: 'Fbs9100_sysparamAction_action_restartPL_FBS'
                  ,data: 'json='+JSON.stringify(params)+'&json_msg='+addBattStr
                  ,dataType: 'json'
                  ,success: function(res) {
                     var rs = JSON.parse(res.result);
                     if(rs.code == 1) {
                        var data = rs.data;
                        // 遍历 data
                        for(var i=0; i<data.length; i++) {
                           var _data = data[i];
                           if(_data.num == 1) {
                              _data.allStatus = 5;      //  重启成功
                           }else {
                              _data.allStatus = 4;      // 重启失败
                           }
                        }
                        // 更新表格
                        layuiTbl.update('dev_id', data);
                     }
                  }
                  ,error: function() {
                     layer.msg('重启失败');
                     // 遍历params
                     for(var i=0; i<params.length; i++) {
                        var _param = params[i];
                        _param.allStatus = 4;      // 重启失败
                     }
                     // 更新表格
                     layuiTbl.update('dev_id', params);
                  }
                  ,complete: function() {
                     layer.close(loading);
@@ -963,6 +1171,46 @@
               }
               return rs;
            }
            // 检测电流钳数据是否符合标准
            function checkCurrentRange(monVolStd, CRange) {
               var rsBool = 0;      // 返回结果是否符合标准0不符合, 1符合
               // 判断对应关系
               switch(Number(monVolStd)){
                  case 12:      // 12V设备
                     if(CRange == 100) {
                        rsBool = 1;
                     }
                  break;
                  case 2:      // 2V设备
                     if(CRange == 200) {
                        rsBool = 1;
                     }
                  break;
               }
               return rsBool;
            }
            // 检测DCDC模块数量
            function checkLoaderCount(monVolStd, LoaderCount) {
               var rsBool = 0;      // 返回结果是否符合标准0不符合, 1符合
               // 判断对应关系
               switch(Number(monVolStd)){
                  case 12:      // 12V设备
                     if(LoaderCount == 1) {
                        rsBool = 1;
                     }
                  break;
                  case 2:      // 2V设备
                     if(LoaderCount == 2) {
                        rsBool = 1;
                     }
                  break;
               }
               return rsBool;
            }
           });
        </script>
    </body>