didiyu
2018-10-17 d8289e24b58b0764df52a1eb0b9c33ef60b8efa5
gx_tieta/WebRoot/ele-match-group.jsp
@@ -23,7 +23,13 @@
   <link rel="stylesheet" type="text/css" href="css/basic.css" />
   <link rel="stylesheet" href="css/common.css">
   <link rel="stylesheet" href="pages/css/common.css">
   <link rel="stylesheet" href="pages/css/mylayui.css">
   <style type="text/css">
      #main {
         position: absolute;
         top: 124px;
         bottom: 32px;
      }
      #sideBar {
         height: 100%;
      }
@@ -60,13 +66,14 @@
   <script type="text/html" id="groupTblTools">
      <div class="layui-btn-container" id="tblToolsBtn">
            <input type="checkbox" id="brandAgreement" name="" lay-skin="primary" title="品牌一致" {{ d.brandAgreement }}>
         <input type="radio" data-max="100" data-min="0" id="cap100" name="perCap" lay-skin="primary" title="全部" {{ d.cap100 }}>
         <input type="radio" data-max="100" data-min="90" id="cap90" name="perCap" lay-skin="primary" title="90%以上" {{ d.cap90 }}>
         <input type="radio" data-max="1000" data-min="0" id="cap100" name="perCap" lay-skin="primary" title="全部" {{ d.cap100 }}>
         <input type="radio" data-max="1000" data-min="90" id="cap90" name="perCap" lay-skin="primary" title="90%以上" {{ d.cap90 }}>
         <input type="radio" data-max="90" data-min="80" id="cap80" name="perCap" lay-skin="primary" title="80%~90%" {{ d.cap80 }}>
         <input type="radio" data-max="80" data-min="70" id="cap70" name="perCap" lay-skin="primary" title="70%~80%" {{ d.cap70 }}>
         <input type="radio" data-max="70" data-min="60" id="cap60" name="perCap" lay-skin="primary" title="60%~70%" {{ d.cap60 }}>
         <input type="radio" data-max="60" data-min="0" id="cap0" name="perCap" lay-skin="primary" title="60%以下" {{ d.cap0 }}>
         <button class="layui-btn layui-btn-sm" lay-event="startMatchGroup">启动配组</button>
         <button class="layui-btn layui-btn-sm" lay-event="startMatchGroup">分组/排序</button>
         <button class="layui-btn layui-btn-sm" lay-event="matchRecord">配组记录</button>
        </div>
   </script>
   
@@ -130,7 +137,7 @@
            ,defaultToolbar: ['exports', 'filter']
            ,cellMinWidth: 80
            ,cols: [[
               {field:'stationname', title:'机房名称', align:'center', width: 380}
              {field:'stationname', title:'机房名称', align:'center', width: 380}
               ,{field:'groupname', title:'电池组名称', align:'center'}
               ,{field:'monnum', title:'单体编号', align:'center'}
               ,{field:'brandname', title:'品牌名称', align:'center'}
@@ -143,7 +150,7 @@
                
             ]
             ,page: {}
             ,height: 'full-170'
             ,height: 'full-165'
         };
         
         var toolBarTpl = groupTblTools.innerHTML;
@@ -226,6 +233,7 @@
                  if(rs.code == 1) {
                     var data = rs.data;
                     var num = 0;
                     //console.log(data);
                     var rsData = formaterTblData(data);
                     // 设置表格的数据
                     num = rsData.length;
@@ -257,17 +265,21 @@
               var obj = {};
               obj.stationname = _data.StationName;   // 机房名称
               obj.groupname = _data.BattGroupName;   // 电池组名称
               obj.brandname = _data.BattProducer;      // 品牌
               obj.monvol = _data.MonVolStd;         // 标称电压
               obj.nominalcap = _data.MonCapStd;      // 标称容量
               obj.nominalcap = Number(_data.MonCapStd);      // 标称容量
               for(var k=0; k<_data.obj.length;k++) {
                  var _obj = $.extend({}, obj);
                  var __data = _data.obj[k];
                  // 设置单体信息
                  _obj.monnum = '#'+__data.mon_num;   // 单体编号
                  _obj.relcap = __data.test_cap.toFixed(0);   // 实际容量
                  _obj.percap = (__data.percent*100).toFixed(1);   // 容量百分比
                  rs.push(_obj);
                  _obj.brandname = __data.note;      // 品牌
                  _obj.relcap = Number(__data.test_cap.toFixed(1));   // 实际容量
                  _obj.percap = Number((__data.percent*100).toFixed(1));   // 容量百分比
                  // 判断电池单体不存在
                  if(__data.mon_num != -1) {
                     rs.push(_obj);
                  }
               }
            }
            
@@ -295,9 +307,19 @@
         //头工具栏事件
           table.on('toolbar(groupTbl)', function(obj){
              var event = obj.event;
              var checkStatus = table.checkStatus(obj.config.id);
              // 根据事件名调用对应的函数
              switch(event){
                 case 'startMatchGroup':
                    startMatchGroup(obj.config);
                    if(allGroup.length !=0) {
                       startMatchGroup(obj.config);
                    }else {
                       layer.msg('没有要组合/排序的内容');
                    }
                 break;
                 case 'matchRecord':
                    console.info(checkStatus);
                 break;
              }
              
@@ -307,7 +329,7 @@
                 var data= getDataByRange(allGroup, toolBarStatus.range);
                 var fData = toolBarStatus.brandAgreement.length>0?formaterData(data):formaterData2(data);
                 var rsData = decodeObj(fData);
                 console.log(rsData);
                 // 设置表格的数据
               num = rsData.length;
               tOptions.data = rsData;
@@ -396,11 +418,12 @@
              // 解码对象
              function decodeObj(obj) {
                 var rs = [];
                 // 遍历当前对象的属性
                 Object.keys(obj).forEach(function(key){
                    decodeObjRec(rs, obj[key]);
                    decodeObjRec(rs, obj[key]);      // 获取排序后的结果集(利用数组的引用传递功能)
                 });
                 //console.log(rs);
                 return rs;
                 return rs;   // 返回结果集
              }
              
              // 解码递归函数
@@ -408,21 +431,25 @@
                 if(obj instanceof Array) {
                    var tmp = [];
                    for(var i=0; i<obj.length; i++) {
                       var cap = obj[i].relcap;
                       var cap = Number(obj[i].relcap);   // 将字符串转化为整数
                       var _index = tmp.length;
                       for(var k=0; k<tmp.length; k++) {
                          if(tmp[k].relcap<cap) {
                          var _cap = Number(tmp[k].relcap);   // 将字符串转化为整数
                          // 比较实际容量的值(对比时将字符串转化为整数型)
                          if(_cap<cap) {
                             _index = k;
                             break;
                          }
                       }
                       // 将当前数据插入到_index位置,实现排序功能
                       tmp.splice(_index, 0, obj[i]);
                    }
                    // 遍历被排序后的数组将值添加到结果集中
                    for(var i=0; i<tmp.length; i++) {
                       rs.push(tmp[i]);
                    }
                 }else {
                    // 递归函数
                    Object.keys(obj).forEach(function(key){
                       decodeObjRec(rs, obj[key]);
                    });