hdw
2018-10-11 5eccf7914f844961d5d0a63071d1c89c0b5b32f1
gx_tieta/WebRoot/iframe/set-match-group.html
@@ -58,7 +58,7 @@
                        </div>
                     </div>
                     <button class="layui-btn layui-btn-sm layui-btn-normal" id="search"><i class="fa fa-search"></i> 查询</button>
                     <button class="layui-btn layui-btn-sm layui-btn-normal" id="replace"><i class="fa fa-reply"></i> 更换</button>
                     <button class="layui-btn layui-btn-sm layui-btn-normal" id="matchGroup"><i class="fa fa-reply"></i> 配组</button>
                  </div>
               </div>
@@ -73,84 +73,203 @@
   <script type="text/javascript" src="../src/layui.js"></script>
   <script type="text/javascript" src="../src/layui.js"></script>
   <script type="text/javascript" src="../pages/js/mylayui.js"></script>
   <script type="text/javascript" src="../js/base.js"></script>
   <script type="text/javascript">
      layui.use(['layer', 'table', 'form', 'laytpl', 'element'],function() {
         var layer = layui.layer    // 获取layer模块
            ,table = layui.table    // 获取table模块
            ,form = layui.form
            ,laytpl = layui.laytpl
            ,element = layui.element;
            // 表格数据配置项
            var tOptions = {
               elem: '#groupTbl'
               ,toolbar: true
               ,defaultToolbar: ['exports', 'filter']
               ,cellMinWidth: 80
               ,cols: [[
                  {type: 'radio', fixed: 'left'}
                  ,{field:'stationname', title:'机房名称', align:'center', width: 380}
                  ,{field:'groupname', title:'电池组名称', align:'center'}
                  ,{field:'monnum', title:'单体编号', align:'center'}
                  ,{field:'brandname', title:'品牌名称', align:'center'}
                  ,{field:'nominalcap', title:'标称容量', align:'center'}
                  ,{field:'monvol', title:'标称电压(V)', align:'center'}
                ]]
               ,data:[]
                ,page: {
                   layout:['count', 'prev', 'page', 'next']
                }
                ,height: 'full-0'
            };
            // 生成表格数据
            table.render(tOptions);
            ,form = layui.form;
         var parentData = parent.$('#setMatchGroupData').data('data');      // 父容器存储的值
         // 表格数据配置项
         var tOptions = {
            elem: '#groupTbl'
            ,toolbar: true
            ,defaultToolbar: ['exports', 'filter']
            ,cellMinWidth: 80
            ,cols: [[
               {type: 'radio', fixed: 'left'}
               ,{field:'stationname', title:'机房名称', align:'center', width: 380}
               ,{field:'groupname', title:'电池组名称', align:'center'}
               ,{field:'monnum', title:'单体编号', align:'center'}
               ,{field:'brandname', title:'品牌名称', align:'center'}
               ,{field:'nominalcap', title:'标称容量', align:'center'}
               ,{field:'monvol', title:'标称电压(V)', align:'center'}
             ]]
            ,data:[]
             ,page: {
                layout:['count', 'prev', 'page', 'next']
             }
             ,height: 'full-0'
         };
         // 生成表格数据
         table.render(tOptions);
            // 点击查询根据查询条件获取电池组的单体列表
            $('#search').click(function() {
               var data = [{stationname: 'xxx'},{stationname: 'enen'}];
               var num = data.length;
               tOptions.data = data;
               // 设置分页信息
               // tOptions.page.layout = ['count', 'prev', 'page', 'next'];  //自定义分页布局
               tOptions.page.limit = num;
               tOptions.page.limits = [num]
               // 重新绘制表格
               table.reload('groupTbl', tOptions);
            });
            // 切换筛选条件模块
            form.on('select(group)', function(data) {
               var dom = data.elem;
               var $dom = $(dom);
               console.log($dom.find('option:selected').data());
            });
            // 点击表格工具栏更换
            table.on('tool(groupTbl)', function(obj) {
               var event = obj.event;
               switch(event) {
                  case 'replace':
                     console.log(obj);
                     showReplacePanel();
                  break;
         // 点击查询根据查询条件获取电池组的单体列表
         $('#search').click(function() {
            var groupData = $('#group').find('option:selected').data('data');
            // 判断是否已经选中电池组
            if(groupData) {
               searchData(groupData);
            }else {
               tOptions.data = [];
               table.render(tOptions);
               layer.msg('请选择一组电池');
            }
         });
         // 查询电池组下所有的单体
         function searchData(obj) {
            // 添加等待框
            var loading = layer.load(0, {shade: [0.1,'#fff']}); //0代表加载的风格,支持0-2
            var structData = structSearchData(obj);
            $.ajax({
               type: 'post',
               async: true,
               url:'BattInfAction!serchGroupByInfor',
               data: 'json='+JSON.stringify(structData),
               dataType: 'json',
               success: function(result) {
                  layer.close(loading);   // 关闭等待框
                  var rs = JSON.parse(result.result);
                  if(rs.code == 1) {
                     var data = rs.data;
                     var num = 0;
                     var rsData = formaterTblData(data);
                     num = rsData.length;
                     tOptions.data = rsData;
                     // 设置分页信息
                     tOptions.page.layout = ['count', 'prev', 'page', 'next'];  //自定义分页布局
                     tOptions.page.limit= num;
                     tOptions.page.limits = [num];
                  }
                  // 重新绘制表格内容
                  table.reload('groupTbl', tOptions);
               }
            });
         }
         // 构造查询对象
         function structSearchData(data) {
            var obj = {};
            obj.StationName1 = '';
            obj.StationName2 = '';
            obj.StationName3 = '';
            obj.BattGroupName = '';
            obj.BattGroupId = data.BattGroupId;
            return obj;
         }
         // 构造生成表格数据的方法
         function formaterTblData(data) {
            var rs = [];   // 结果集
            // 遍历查询的结果根据查询结果生成指定的格式
            for(var i=0; i<data.length; i++) {
               var _data = data[i];
               var obj = {};
               obj.stationname = _data.StationName;         // 机房名称
               obj.groupname = _data.BattGroupName;         // 电池组名称
               obj.monvol = _data.MonVolStd;               // 标称电压
               obj.nominalcap = Number(_data.MonCapStd);      // 标称容量
               obj.monnum = '#'+_data.MonNum;               // 单体编号
               obj.brandname = _data.BattProducer;            // 品牌
               // 不显示内容
               obj.num = _data.MonNum;                     // 单体编号不加#
               obj.battgroupid = _data.BattGroupId;         // 电池组id
               obj.stationid = _data.StationId;            // 机房id
               rs.push(obj);
            }
            return rs;   // 返回结果集
         }
            // 获取模板
            var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
         // 获取模板
         var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
            // 点击替换
            $('#replace').click(function() {
               var checkStatus = table.checkStatus('groupTbl'); //test即为基础参数id对应的值
               console.log(checkStatus);
               var data = parent.$('#setMatchGroupData').data();
               console.log(data);
               //parent.layer.close(index);
         // 点击配组
         $('#matchGroup').click(function() {
            var checkStatus = table.checkStatus('groupTbl'); //test即为基础参数id对应的值
            var data = checkStatus.data;
            //console.log(checkStatus.data);
            if(data.length == 0) {
               layer.msg('请选择表格中的电池单体!');
            }else {
               var _data = data[0];
               console.log(_data);
               console.log(parentData);
               matchGroup(_data, parentData);
            }
         });
         // 根据构造结果进行配组
         function matchGroup(oData, nData) {
            var old_cap = oData.nominalcap;
            var old_vol = oData.monvol;
            var new_cap = nData.nominalcap;
            var new_vol = nData.monvol;
            var isTrue = (old_cap==new_cap && old_vol==new_vol);
            if(!isTrue) {
               layer.msg('<span style="font-weight: bold; color: orange">标称容量或标称电压不一致,无法配组!</span>');
               return;
            }
            // 符合配组的基本要求
            parent.layer.confirm('是否确认配组?',{
               btn: ['确认','取消'] //按钮
            }, function(){
               enMatchGroup(oData, nData);
            }, function(){
            });
         }
         // 确认配组
         function enMatchGroup(oData, nData) {
            var matchGroupData = structMatchGroupData(oData, nData);
            // 更具构造参数进行配组
            $.ajax({
               type: 'post',
               async: true,
               url: 'BattInf_RebuildAction!add',
               data: 'json='+JSON.stringify(matchGroupData),
               dataType: 'json',
               success:function(result) {
                  console.log(result);
               }
            });
            parent.layer.close(parent.layer.index);
         }
         // 构造进行配组的参数
         function structMatchGroupData(oData, nData) {
            var obj = {};                        // 结果对象
            var nowTime = new Date().format('yyyy-MM-dd hh:mm:ss');   // 当前时间
            // 当前电池单体的信息
            obj.old_stationname = oData.stationname;   // 机房名称
            obj.old_battgroupname = oData.groupname;   // 电池组名称
            obj.old_battproducer = oData.brandname;      // 单体的品牌
            obj.old_stationid = oData.stationid;      // 机房id
            obj.old_battgroupid = oData.battgroupid;   // 电池组id
            obj.old_monnum = oData.num;               // 单体编号
            
            // 被配组单体的信息
            obj.new_stationname = nData.stationname;   // 机房名称
            obj.new_battgroupname = nData.groupname;   // 电池组名称
            obj.new_battproducer = nData.brandname;      // 单体的品牌
            obj.new_stationid = nData.stationid;      // 机房id
            obj.new_battgroupid = nData.battgroupid;   // 电池组id
            obj.new_monnum = nData.num;               // 单体编号
            
            // 查询省下拉框
            // 公共信息
            obj.rebuild_time = nowTime;
            obj.rebuild_address = '';
            obj.rebuild_clear_type = 1;
            console.info(obj);
            return obj;
         }
         // 查询省下拉框
         searchProvince();
         // 查询省
         function searchProvince() {
@@ -256,6 +375,7 @@
               data: "json = "+JSON.stringify(tmp),
               success: function(result) {
                  var rs = JSON.parse(result.result);
                  var stationid = parentData.stationid;   // 获取父元素选中机房的id,用户剔除已经选中的机房
                  var list = [];            // option结果集
                  var ele = $('#home');   // 目标select
                  if(rs.code == 1) {
@@ -264,11 +384,14 @@
                     // 遍历查询结果
                     for(var i=0; i<data.length; i++) {
                        var _data = data[i];
                        var _attr = {
                           StationId: _data.StationId
                        };
                        var _tmp = getLayuiSelect(_data.StationName3, _data.StationName, _attr, _data);
                        list.push(_tmp);
                        // 没有与父机房重复
                        if(_data.StationId != stationid) {
                           var _attr = {
                              StationId: _data.StationId
                           };
                           var _tmp = getLayuiSelect(_data.StationName, _data.StationName, _attr, _data);
                           list.push(_tmp);
                        }
                     }
                  }else {
                     list.push(getLayuiSelect('暂无机房', '', {}, undefined));
@@ -310,20 +433,24 @@
                  var rs = JSON.parse(result.result);
                  var list = [];            // option结果集
                  var ele = $('#group');      // 目标select
                  var stationid = parentData.stationid;   // 获取父元素选中机房的id,用户剔除已经选中的机房
                  if(rs.code == 1) {
                     var data = rs.data;
                     list.push(getLayuiSelect('请选择电池组', '', {}, undefined));
                     // 遍历查询结果
                     for(var i=0; i<data.length; i++) {
                        var _data = data[i];
                        var _attr = {
                           stationname: _data.StationName,
                           dev_id: _data.FBSDeviceId,
                           batt_num: _data.GroupIndexInFBSDevice+1
                        };
                        var txt = _data.BattGroupName+'(共'+_data.MonCount+'节)';
                        var _tmp = getLayuiSelect(txt, _data.BattGroupId, _attr, _data);
                        list.push(_tmp);
                        // 没有与父机房重复
                        if(_data.StationId != stationid) {
                           var _attr = {
                              stationname: _data.StationName,
                              dev_id: _data.FBSDeviceId,
                              batt_num: _data.GroupIndexInFBSDevice+1
                           };
                           var txt = _data.BattGroupName+'(共'+_data.MonCount+'节)';
                           var _tmp = getLayuiSelect(txt, _data.BattGroupId, _attr, _data);
                           list.push(_tmp);
                        }
                     }
                  }else {
                     list.push(getLayuiSelect('暂无机房', '', {}, undefined));