From 2fe250ece8de95b3f70172fe5b45793ab6a3084a Mon Sep 17 00:00:00 2001 From: D:/workspace/chenjingjing/git/gx_tieta/gx_tieta/.gitignore <chenjingjing@LAPTOP-E51P2139> Date: 星期五, 18 一月 2019 17:30:50 +0800 Subject: [PATCH] 未审批可更改 --- gx_tieta/WebRoot/ele-match-group.jsp | 431 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 380 insertions(+), 51 deletions(-) diff --git a/gx_tieta/WebRoot/ele-match-group.jsp b/gx_tieta/WebRoot/ele-match-group.jsp index 4db2ee7..4c6d8d9 100644 --- a/gx_tieta/WebRoot/ele-match-group.jsp +++ b/gx_tieta/WebRoot/ele-match-group.jsp @@ -23,9 +23,21 @@ <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%; + } + .layui-table table thead th { + font-weight: bold; + } + .layui-form-radio { + margin-right: 10px !important; } </style> </head> @@ -38,23 +50,30 @@ <!-- 涓讳綋鍐呭 --> <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-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=""> - <button class="layui-btn layui-btn-sm" lay-event="startMatchGroup">鍚姩閰嶇粍</button> + <div class="layui-btn-container" id="tblToolsBtn"> + <input type="checkbox" id="brandAgreement" name="" lay-skin="primary" title="鍝佺墝涓�鑷�" {{ d.brandAgreement }}> + <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="matchRecord">閰嶇粍璁板綍</button> </div> </script> @@ -64,21 +83,24 @@ <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'); } - }); + }); */ // 鐢熸垚涓�绾у鑸�-鐪� first(treeView, treeView.container); @@ -89,46 +111,353 @@ second(treeView, $(this).parent(), province); }); - // 甯�->鏈烘埧 + // 甯�->鍖�/鍘� 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); + third(treeView, $(this).parent(), city); + + // 鏈閫変腑 + 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-165' + }; + + 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(1, {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; + //console.log(data); + 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.monvol = _data.MonVolStd; // 鏍囩О鐢靛帇 + 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.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); + } + } + } + + 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, + StationName5: '', + BattProducer: 1 + }; + + return temp; + } + + + //澶村伐鍏锋爮浜嬩欢 + table.on('toolbar(groupTbl)', function(obj){ + var event = obj.event; + var checkStatus = table.checkStatus(obj.config.id); + // 鏍规嵁浜嬩欢鍚嶈皟鐢ㄥ搴旂殑鍑芥暟 + switch(event){ + case 'startMatchGroup': + if(allGroup.length !=0) { + startMatchGroup(obj.config); + }else { + layer.msg('娌℃湁瑕佺粍鍚�/鎺掑簭鐨勫唴瀹�'); + } + + break; + case 'matchRecord': + console.info(checkStatus); + 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); + console.log(rsData); + // 璁剧疆琛ㄦ牸鐨勬暟鎹� + 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]); // 鑾峰彇鎺掑簭鍚庣殑缁撴灉闆嗭紙鍒╃敤鏁扮粍鐨勫紩鐢ㄤ紶閫掑姛鑳斤級 + }); + + return rs; // 杩斿洖缁撴灉闆� + } + + // 瑙g爜閫掑綊鍑芥暟 + function decodeObjRec(rs, obj) { + if(obj instanceof Array) { + var tmp = []; + for(var i=0; i<obj.length; i++) { + var cap = Number(obj[i].relcap); // 灏嗗瓧绗︿覆杞寲涓烘暣鏁� + var _index = tmp.length; + for(var k=0; k<tmp.length; k++) { + 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]); + }); + } + } + }); + // 鐢熸垚涓�绾у鑸�-鐪� function first(treeView, container) { @@ -148,7 +477,7 @@ var formatData = []; for(var i=0; i<_data.length;i++) { var __data = _data[i]; - var tmp = treeView.getFolder(__data.StationName1, 'province', __data); + var tmp = treeView.getFolder(__data.StationName1, 'province', __data.StationName1, __data); formatData.push(tmp); } treeView.treeView(container, formatData); @@ -181,7 +510,7 @@ for(var i=0; i<_data.length;i++) { var __data = _data[i]; var txt = '<input type="radio" name="city">'+ __data.StationName2; - var tmp = treeView.getFolder(txt, 'city', __data); + var tmp = treeView.getFolder(txt, 'city', __data.StationName2,__data); formatData.push(tmp); } treeView.treeView(container, formatData); @@ -192,7 +521,7 @@ }); } - // 鐢熸垚 涓夌骇瀵艰埅-鏈烘埧 + // 鐢熸垚 涓夌骇瀵艰埅-鍖�/鍘� function third(treeView, container, data) { // 宸茬粡瀛樺湪 if(container.find('ul').length !=0) { @@ -201,7 +530,7 @@ treeView.addProgress(container); $.ajax({ type: "post", - url: "BattInfAction!serchStationName3", + url: "BattInfAction!serchStationName5", async:true, dataType:'json', data:"json = "+JSON.stringify(data), @@ -213,8 +542,8 @@ var formatData = []; 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 txt = '<input type="checkbox" checked="checked" disabled name="county">'+ __data.StationName5; + var tmp = treeView.getFile(txt, 'county', __data.StationName5,__data); formatData.push(tmp); } treeView.treeView(container, formatData); -- Gitblit v1.9.1