From 0afa84e6de17cda97792f3acd114fffa552ee163 Mon Sep 17 00:00:00 2001
From: 81041 <81041@DESKTOP-025NVD9>
Date: 星期四, 03 一月 2019 16:15:03 +0800
Subject: [PATCH] Merge branch 'dev_lxw' of https://gitlab.com/whyclxw1/gx_tieta.git into dev_lxw
---
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