From e265a82fd7e6b12039dd1947f499f0622f2359e6 Mon Sep 17 00:00:00 2001 From: hdw <496960745@qq.com> Date: 星期一, 08 十月 2018 13:15:44 +0800 Subject: [PATCH] 排序问题 --- gx_tieta/WebRoot/pages/css/common.css | 33 +-- gx_tieta/WebRoot/ele-match-group.jsp | 385 ++++++++++++++++++++++++++++++++++++++++++----- gx_tieta/WebRoot/pages/js/pages/siderbar.js | 4 gx_tieta/WebRoot/css/common.css | 5 4 files changed, 364 insertions(+), 63 deletions(-) diff --git a/gx_tieta/WebRoot/css/common.css b/gx_tieta/WebRoot/css/common.css index 7b2e324..f93a87f 100644 --- a/gx_tieta/WebRoot/css/common.css +++ b/gx_tieta/WebRoot/css/common.css @@ -53,7 +53,10 @@ -o-transform: rotate(90deg); transform: rotate(90deg); } - +.treeview-txt { + display: inline-block; + width: 100%; +} .whyc-sider-menu>ul ul { display: none; } diff --git a/gx_tieta/WebRoot/ele-match-group.jsp b/gx_tieta/WebRoot/ele-match-group.jsp index 4db2ee7..ae55089 100644 --- a/gx_tieta/WebRoot/ele-match-group.jsp +++ b/gx_tieta/WebRoot/ele-match-group.jsp @@ -27,6 +27,12 @@ #sideBar { height: 100%; } + .layui-table table thead th { + font-weight: bold; + } + .layui-form-radio { + margin-right: 10px !important; + } </style> </head> <body class="h" style="padding: 0; overflow: hidden;"> @@ -38,22 +44,28 @@ <!-- 涓讳綋鍐呭 --> <div id="main" class="full-container-layui"> <!-- 瀵艰埅缁撴潫 --> - <div class="whyc-page-content-tbl"> - <div class="whyc-page-content-tbl-cell w360" id="resizeCont"> - <div class="tbl-cell-container"> - <div class="side-bar-container"> - <div class="side-bar" id="sideBar"></div> - </div> + <div class="whyc-page-content-layui"> + <div class="abs abs-left w360" id="resizeCont"> + <div class="side-bar-container"> + <div class="side-bar" id="sideBar"></div> </div> </div> - <div class="whyc-page-content-tbl-cell"> - <div id="groupTbl"></div> + <div class="abs abs-right left360" id="inforCont"> + <div class="tbl-container"> + <table class="" id="groupTbl" lay-filter="groupTbl"></table> + </div> </div> </div> </div> <script type="text/html" id="groupTblTools"> - <div class="layui-btn-container"> - <input type="checkbox" name="" lay-skin="primary" title="鍝佺墝涓�鑷�" checked=""> + <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="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> </div> </script> @@ -64,19 +76,22 @@ <script type="text/javascript" src="pages/js/pages/siderbar.js"></script> <script type="text/javascript"> // treeView妯″潡 - layui.use(['table', 'layer'],function() { + layui.use(['table', 'layer', 'laytpl'],function() { var layer = layui.layer; // 鑾峰彇layer妯″潡 var table = layui.table; // 鑾峰彇table妯″潡 + var laytpl = layui.laytpl; // 鑾峰彇laytpl妯″潡 var TreeView = GLOBAL.pages.TreeView; var treeView = new TreeView($('#sideBar')); // 璁剧疆宸﹀彸缂╂斁 - $('#resizeCont').resizable({ + $('#resizeCont .side-bar-container').resizable({ handles: 'e', maxWidth: 520, minWidth: 240, - resize: function() { + alsoResize:$('#resizeCont'), + resize: function(event, ui) { treeView.setContainer(); + $('#inforCont').css('left', ui.size.width+'px'); } }); @@ -93,42 +108,328 @@ treeView.ele.on('click', '.city', function() { var city = $(this).data('attr'); third(treeView, $(this).parent(), city); - var radio = $(this).children('.treeview-txt').find('input'); radio.prop('checked', true); + + // 鏈閫変腑 + if(!$(this).hasClass('acCity')) { + // 娣诲姞琚�変腑鐨勬爣璇嗙 + treeView.ele.find('.city').removeClass('acCity'); + $(this).addClass('acCity'); + + // 鏌ヨ甯傜殑鏈烘埧淇℃伅骞剁敓鎴愯〃鏍� + searchData(); + } + }); - // 鏈烘埧->鐢垫睜缁� - treeView.ele.on('click', '.home', function() { - var home = $(this).data('attr'); + // 琛ㄦ牸鏁版嵁閰嶇疆椤� + var tOptions = { + elem: '#groupTbl' + ,toolbar: '' + ,defaultToolbar: ['exports', 'filter'] + ,cellMinWidth: 80 + ,cols: [[ + {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:'鏍囩О鐢靛帇锛圴锛�', align:'center'} + ,{field:'relcap', title:'瀹為檯瀹归噺', align:'center'} + ,{field:'percap', title:'瀹归噺鐧惧垎姣�(%)', align:'center'} + ]] + ,data:[ + + ] + ,page: {} + ,height: 'full-170' + }; + + var toolBarTpl = groupTblTools.innerHTML; + // 璁剧疆琛ㄦ牸澶撮儴鐨勫唴瀹� + laytpl(toolBarTpl).render(getToolBarStatus(true), function(html){ + tOptions.toolbar = html; + }); + + // 鑾峰彇宸ュ叿鏍忎腑鐘舵�� + function getToolBarStatus(isFirst) { var tmp = { - StationName1: home.StationName1, - StationName2: home.StationName2, - StationName: home.StationName, - StationId: home.StationId + brandAgreement: 'checked=""', + cap100: 'checked=""', + cap90:'', + cap80:'', + cap70:'', + cap60:'', + cap0:'', + range: { + max: 100, + min: 0 + } }; - fourth(treeView, $(this).parent(), tmp); - }); - + + // 鏄惁涓虹涓�娆″姞杞� + if(!isFirst) { + Object.keys(tmp).forEach(function(key) { + if(key != 'range') { + tmp[key] = getCheckString(key); + } + }); + } + return tmp; + + // 鑾峰彇checked=""瀛楃涓� + function getCheckString(key) { + var ele = $('#'+key); + var rs = ""; + if(ele.is(':checked')) { + rs = 'checked=""'; + + // 鍒ゆ柇涓嶆槸鍝佺墝涓�鑷� + if(key != 'brandAgreement') { + var range = ele.data(); + setRange(range.max, range.min); // 璁剧疆鑼冨洿 + } + } + return rs; + } + + // 璁剧疆鑼冨洿 + function setRange(max, min) { + tmp.range.max = max; + tmp.range.min = min; + } + } // 鐢熸垚琛ㄦ牸鏁版嵁 - table.render({ - elem: '#groupTbl' - ,toolbar: '#groupTblTools' - ,defaultToolbar: ['exports', 'filter'] - ,cols: [[ - ,{field:'staionname', title:'鏈烘埧鍚嶇О'} - ,{field:'groupname', title:'鐢垫睜缁勫悕绉�'} - ,{field:'monnum', title:'鍗曚綋缂栧彿'} - ,{field:'brandname', title:'鍝佺墝鍚嶇О'} - ,{field:'monvol', title:'鍗曚綋鐢靛帇'} - ,{field:'nominalcap', title:'鏍囩О瀹归噺'} - ,{field:'relcap', title:'瀹為檯瀹归噺',sort: true} - ]] - ,data:[] - ,page: true - ,height: 'full-200' - }); + table.render(tOptions); + + + // 鑾峰彇鍚庡彴鏁版嵁 + var allGroup = []; // 璁板綍鎵�鏈夌數姹犵粍鐨勪俊鎭� + function searchData() { + var temp = getSearchParams(); // 鑾峰彇鏌ヨ鏉′欢 + // 鏍规嵁鏌ヨ鏉′欢鏌ヨ鏈烘埧淇℃伅 + var loading = layer.load(0, {shade: [0.1,'#fff']}); //0浠h〃鍔犺浇鐨勯鏍硷紝鏀寔0-2 + $.ajax({ + type: 'post', + url: 'BattInfAction!serchMakeGroup', + async: true, + data: 'json='+JSON.stringify(temp), + dataType: 'json', + success: function(result) { + layer.close(loading); // 鍏抽棴绛夊緟妗� + var rs = JSON.parse(result.result); + tOptions.data = []; // 鍒濆鍖栨煡璇㈠唴瀹� + allGroup = []; // 鍒濆鍖栨墍鏈夋暟鎹唴瀹� + // 鏌ヨ鎴愬姛 + if(rs.code == 1) { + var data = rs.data; + var num = 0; + var rsData = formaterTblData(data); + // 璁剧疆琛ㄦ牸鐨勬暟鎹� + num = rsData.length; + tOptions.data = rsData; + allGroup = rsData; + // 璁剧疆鍒嗛〉淇℃伅 + tOptions.page.layout = ['count', 'prev', 'page', 'next']; //鑷畾涔夊垎椤靛竷灞� + tOptions.page.limit= num; + tOptions.page.limits = [num]; + } + + // 璁剧疆琛ㄦ牸澶撮儴鐨勫唴瀹� + laytpl(toolBarTpl).render(getToolBarStatus(true), function(html){ + tOptions.toolbar = html; + }); + // 閲嶆柊缁樺埗琛ㄦ牸鍐呭 + table.reload('groupTbl', tOptions); + } + }); + } + + // 鏋勯�犵敓鎴愯〃鏍兼暟鎹殑鏂规硶 + 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.brandname = _data.BattProducer; // 鍝佺墝 + obj.monvol = _data.MonVolStd; // 鏍囩О鐢靛帇 + obj.nominalcap = _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); + } + } + + return rs; // 杩斿洖缁撴灉闆� + } + + // 鏋勯�犳煡璇㈠悗鍙扮殑鍙傛暟 + function getSearchParams() { + var acCity = treeView.ele.find('.acCity'); // 琚�変腑鐨勬満鎴� + // 娌℃湁閫夋嫨甯傚氨杩斿洖涓篺alse + if(acCity.length == 0) { + return false; + } + var attr = acCity.data('attr'); // 鏈烘埧淇℃伅 + // 绗﹀悎鏉′欢鍚敤鏋勯�犲璞� + var temp = { + StationName2: attr.StationName2, + BattProducer: 1 + }; + + return temp; + } + + + //澶村伐鍏锋爮浜嬩欢 + table.on('toolbar(groupTbl)', function(obj){ + var event = obj.event; + switch(event){ + case 'startMatchGroup': + startMatchGroup(obj.config); + break; + } + + // 璁剧疆startMatchGroup鍑芥暟 + function startMatchGroup(obj) { + var toolBarStatus = getToolBarStatus(); // 鑾峰彇鐘舵�佹爮 + var data= getDataByRange(allGroup, toolBarStatus.range); + var fData = toolBarStatus.brandAgreement.length>0?formaterData(data):formaterData2(data); + var rsData = decodeObj(fData); + + // 璁剧疆琛ㄦ牸鐨勬暟鎹� + num = rsData.length; + tOptions.data = rsData; + // 璁剧疆鍒嗛〉淇℃伅 + tOptions.page.layout = ['count', 'prev', 'page', 'next']; //鑷畾涔夊垎椤靛竷灞� + tOptions.page.limit= num; + tOptions.page.limits = [num]; + // 璁剧疆琛ㄦ牸澶撮儴鐨勫唴瀹� + laytpl(toolBarTpl).render(toolBarStatus, function(html){ + tOptions.toolbar = html; + }); + + table.reload('groupTbl', tOptions); + } + + // 鏍规嵁閫夋嫨鑼冨洿杩斿洖鏁版嵁 + function getDataByRange(data, range) { + var rs = []; + var max = range.max; + var min = range.min; + // 閬嶅巻data + for(var i=0; i<data.length; i++) { + var _data = data[i]; + if(_data.percap<=max && _data.percap>=min) { + rs.push(_data); + } + } + return rs; + } + + // 鏍煎紡鍖栫數姹犵粍鍝佺墝涓�鑷存暟鎹� + function formaterData(data) { + var obj = {}; + for(var i=0;i<data.length;i++) { + var _data = data[i]; + + var brandname = _data.brandname; // 鐢垫睜鍝佺墝 + // 鍒ゆ柇obj.brandname鏄惁瀛樺湪 + if(typeof obj[brandname] != 'object') { + obj[brandname] = {}; + } + + // 鑾峰彇褰撳墠鐨勭數姹犲搧鐗屽璞� + var _brandname = obj[brandname]; + var cap = _data.nominalcap; // 鐢垫睜瀹归噺 + // 鍒ゆ柇obj.brandname.nominalcap鏄惁瀛樺湪 + if(typeof _brandname[cap] != 'object') { + _brandname[cap] = {}; + } + + // 鑾峰彇褰撳墠鐨勭數姹犲閲忕殑瀵硅薄 + var _cap = _brandname[cap]; + var vol = _data.monvol; // 鐢垫睜鐢靛帇 + // 鍒ゆ柇obj.brandname.nominalcap.monvol鏄惁瀛樺湪 + if(typeof _cap[vol] != 'object') { + _cap[vol] = []; + } + _cap[vol].push(_data); + } + return obj; + } + + // 鏍煎紡鍖栨暟鎹笉鍖呭惈鐢垫睜缁勪竴鑷� + function formaterData2(data) { + var obj = {}; + for(var i=0;i<data.length;i++) { + var _data = data[i]; + // 鑾峰彇褰撳墠鐨勭數姹犲搧鐗屽璞� + var cap = _data.nominalcap; // 鐢垫睜瀹归噺 + // 鍒ゆ柇obj.brandname.nominalcap鏄惁瀛樺湪 + if(typeof obj[cap] != 'object') { + obj[cap] = {}; + } + + // 鑾峰彇褰撳墠鐨勭數姹犲閲忕殑瀵硅薄 + var _cap = obj[cap]; + var vol = data[i].monvol; // 鐢垫睜鐢靛帇 + // 鍒ゆ柇obj.brandname.nominalcap.monvol鏄惁瀛樺湪 + if(typeof _cap[vol] != 'object') { + _cap[vol] = []; + } + _cap[vol].push(_data); + } + return obj; + } + // 瑙g爜瀵硅薄 + function decodeObj(obj) { + var rs = []; + Object.keys(obj).forEach(function(key){ + decodeObjRec(rs, obj[key]); + }); + //console.log(rs); + return rs; + } + + // 瑙g爜閫掑綊鍑芥暟 + function decodeObjRec(rs, obj) { + if(obj instanceof Array) { + var tmp = []; + for(var i=0; i<obj.length; i++) { + var cap = obj[i].relcap; + var _index = tmp.length; + for(var k=0; k<tmp.length; k++) { + if(tmp[k].relcap<cap) { + _index = k; + break; + } + } + + 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]); + }); + } + } + }); + // 鐢熸垚涓�绾у鑸�-鐪� function first(treeView, container) { @@ -214,7 +515,7 @@ for(var i=0; i<_data.length;i++) { var __data = _data[i]; var txt = '<input type="checkbox" checked="checked" disabled name="home">'+ __data.StationName; - var tmp = treeView.getFile(txt, 'home', __data); + var tmp = treeView.getFile(txt, 'home', __data.StationId,__data); formatData.push(tmp); } treeView.treeView(container, formatData); diff --git a/gx_tieta/WebRoot/pages/css/common.css b/gx_tieta/WebRoot/pages/css/common.css index 69b60f3..35184c7 100644 --- a/gx_tieta/WebRoot/pages/css/common.css +++ b/gx_tieta/WebRoot/pages/css/common.css @@ -56,8 +56,6 @@ /* absolute 椤堕儴 灞呬腑 搴曢儴瀹氫綅*/ .abs { position: absolute; - left: 0; - right: 0; z-index: 1; } .abs-top { @@ -70,10 +68,22 @@ bottom: 0; margin: auto; } - +.abs-left { + top:0; + bottom: 0; + left: 0; +} +.abs-right { + top:0; + bottom: 0; + right: 0; +} .abs-bottom { bottom: 0; margin: 0 auto; +} +.left360 { + left: 360px; } /* float */ .fix-left { @@ -732,24 +742,11 @@ top: 124px; bottom: 32px; } -.whyc-page-content-tbl { - display: table; - width: 100%; - height: 100%; -} -.whyc-page-content-tbl-cell { - display: table-cell; - height: 100%; +.whyc-page-content-layui { position: relative; -} - -.tbl-cell-container { - position: absolute; width: 100%; - top: 0; - bottom: 0; + height: 100%; } - .side-bar-container { height: 100%; } \ No newline at end of file diff --git a/gx_tieta/WebRoot/pages/js/pages/siderbar.js b/gx_tieta/WebRoot/pages/js/pages/siderbar.js index 0efbfc9..b15bc4f 100644 --- a/gx_tieta/WebRoot/pages/js/pages/siderbar.js +++ b/gx_tieta/WebRoot/pages/js/pages/siderbar.js @@ -29,8 +29,8 @@ //this.resize(options); // 缁欏鍣ㄥ唴瀹规坊鍔犵粦瀹氫簨浠� - this.ele.off('click.treeView.folder').on('click.treeView.folder', '.sider-menu-folder>i.fa-caret-right', function() { - $(this).parent().parent().toggleClass('sider-menu-open'); + this.ele.off('click.treeView.folder').on('click.treeView.folder', '.sider-menu-folder', function() { + $(this).parent().toggleClass('sider-menu-open'); }); this.ele.off('click.treeView.file').on('click.treeView.file', '.sider-menu-file', function() { -- Gitblit v1.9.1