tudc пре 5 година
родитељ
комит
91aad7440b

+ 1 - 1
src/main/webapp/admin/reprotManage/dataWare.html

@@ -49,7 +49,7 @@
 			"<i class='iconfont up iconSelect_drop-down'/></i>");
 		$("#content").slideToggle();
 	});
-	var pageId = "200000";
+	var pageId = "210000";
 	
      var table;
      var form;

+ 3 - 2
src/main/webapp/admin/reprotManage/dataWareDetail.html

@@ -45,11 +45,12 @@
 		  table.render({
 			id: 'tableTest'
 		    ,elem: '#tableTest'
-		    ,limit : 10000
+		    ,limit : 100
+		    ,limits : [100,200,300,400]
+		    ,page : true
 		    ,url: 'DataWareManageAction/fileInfDetail' //数据接口
 		    ,method: 'post'
 		    ,where:{MINView:"JSON", fileId : fileId, fileType : fileType}
-		    ,page: false
 		    ,cols: cols
 		    ,done: function(res, curr, count){
 		    }

+ 1 - 0
src/main/webapp/admin/reprotManage/reportAlgorithm.html

@@ -19,6 +19,7 @@
 		</div>
 	</div>
     <script>
+    	var pageId = "210003";
     	// 报告生成事查看算法
     	var reportTypeId = getQueryString("reportTypeId");
     	if (!isEmpty(reportTypeId)) {

+ 5 - 3
src/main/webapp/admin/reprotManage/reportManage.html

@@ -53,7 +53,9 @@
 			"<i class='iconfont up iconSelect_drop-down'/></i>");
 		$("#content").slideToggle();
 	});
-	var pageId = "200001";
+	var pageId = "220000";
+	
+	var timeType = getQueryString("timeType");// 00日报01周报02月报
 	
      var table;
      var form;
@@ -77,7 +79,7 @@
 		    ,limit:10
 		    ,url: 'ReportManageAction/reportInfQuery' //数据接口
 		    ,method: 'post'
-		    ,where:{MINView:"JSON"}
+		    ,where:{MINView:"JSON", timeType : timeType}
 		    ,page: true //开启分页
 		    ,cols: [[ //表头
 		      {field:'num', title: '序号',width:'5%', type:'numbers', align: 'center'}
@@ -150,7 +152,7 @@
       
       function uploadExcel(){
     	  var openPageId = pageId + "-01";
-    	  openMainTabPage(openPageId, "导入", "reprotManage/reportProduce.html?pageId="+openPageId, '', pageId, reloadSearch);
+    	  openMainTabPage(openPageId, "导入", "reprotManage/reportProduce.html?pageId="+openPageId+"&timeType="+timeType, '', pageId, reloadSearch);
       }
       
       function showDetail(data){

+ 18 - 11
src/main/webapp/admin/reprotManage/reportProduce.html

@@ -61,7 +61,7 @@
 		  	<input type="text" style = "display : inline-block" class="layui-input" id="dayRange" placeholder="请选择报表日期">
 		  	<input type="text" style = "display : inline-block" class="layui-input" id="dateRange" placeholder="请选择报表日期范围">
 		  	<input type="text" style = "display : inline-block" class="layui-input" id="timeRange" placeholder="请选择报表时间段">
-		  	<p><a id = "monthNum" style = "font-size: 18px; color: red;" onclick = "changeHtml(this)">2</a>个月内停电<a id = "countNum" style = "font-size: 18px; color: red;" onclick = "changeHtml(this)">3</a>次以上的台区数量</p>
+		  	<p name = "TQTDRB" style = "display : none;"><a id = "monthNum" style = "font-size: 18px; color: red;" onclick = "changeHtml(this)">2</a>个月内停电<a id = "countNum" style = "font-size: 18px; color: red;" onclick = "changeHtml(this)">3</a>次以上的台区数量</p>
 		</div>
 		<div style="margin-top : 50px;">
 	      <button type="button" class="layui-btn" style = "width : 214px" onclick = "tableYulan()">下一步</button>
@@ -89,6 +89,16 @@
 	
     <script>
 		var pageId = getQueryString("pageId");
+		var timeType = getQueryString("timeType");// 00日报01周报02月报
+		// 日报
+		if (timeType == '00') {
+			$("#dayRange").show();
+			$("#dateRange").hide();
+		// 周报和月报
+		} else {
+			$("#dayRange").hide();
+			$("#dateRange").show();
+		}
 		
 		var $step;
 		layui.config({
@@ -122,12 +132,12 @@
 		});
 		
 		// 范围类型
-		var timeType = null;
 		layui.use('form', function(){
 			var form = layui.form;
 			$.request({
 				action : 'BranchReportTypeAction/branchReportTypeQuery',
 				data : {
+					timeType : timeType
 				},
 				success : function(data) {
 					var html = '<select id = "reportType" lay-filter="reportTypeFilter"><option value = "">请选择</option>';
@@ -149,15 +159,7 @@
 				var value = data.value;
 				if (!isEmpty(value)) {
 					var reportTypeId = value.split("_")[0];
-					timeType = value.split("_")[2];
-					// 日报
-					if (timeType == '00') {
-						$("#dayRange").show();
-						$("#dateRange").hide();
-					} else {
-						$("#dayRange").hide();
-						$("#dateRange").show();
-					}
+					
 					$("#fileName").html(data.elem.selectedOptions[0].text);
 					
 					if (!isEmpty(reportTypeId)) {
@@ -203,6 +205,11 @@
 					$.ErrorAlert("请选择上传文件类型!");
 					return;
 				}
+				var reportType = reportInf.split("_")[0];
+				// 台区停电日报
+				if ("TQTDRB" == reportType) {
+					$("body").find("[name='TQTDRB']").show();
+				}
 			}
 			
 			if (step == 4) {

+ 1 - 1
src/main/webapp/admin/reprotManage/utilExcelManage.html

@@ -50,7 +50,7 @@
 			"<i class='iconfont up iconSelect_drop-down'/></i>");
 		$("#content").slideToggle();
 	});
-	var pageId = "200003";
+	var pageId = "210002";
 	
      var table;
      var form;

+ 139 - 70
src/main/webapp/admin/roleManage/roleAdd.html

@@ -10,33 +10,34 @@
     <script src="../../js/min-loader-next.js"></script>
 </head>
 
-<body style="margin-top: 52px;">
-<form class="layui-form" id = "formName" >
-	<div style="margin-top: 20px;margin-left: 20px;margin-right: 120px; padding-bottom:60px;">
-       <div class="layui-form-item">
-           <label class="layui-form-label">角色名称</label>
-           <div class="layui-input-block">
-               <input type="text" name="name" id="name" lay-verify="required" autocomplete="off" placeholder="请输入角色名称" class="layui-input">
-           </div>
-       </div>
-       <div class="layui-form-item">
-           <label class="layui-form-label">角色主页</label>
-           <div class="layui-input-block" id = 'roleMainPage'>
-			</div>
-       </div>
-       <div class="layui-form-item">
-           <label class="layui-form-label">角色描述</label>
-           <div class="layui-input-block">
-               <textarea name="desc" id="desc" placeholder="请输入角色描述" class="layui-textarea"></textarea>
-           </div>
-       </div>
-    </div>
+<body class="body-content">
+	<form class="layui-form" id = "formName" style = "margin-top : 75px">
+		<div style="margin-top: 20px;margin-left: 20px;margin-right: 120px;">
+	       <div class="layui-form-item">
+	           <label class="layui-form-label">角色名称</label>
+	           <div class="layui-input-block">
+	               <input type="text" name="name" id="name" lay-verify="required" autocomplete="off" placeholder="请输入角色名称" class="layui-input">
+	           </div>
+	       </div>
+	       <div class="layui-form-item">
+	           <label class="layui-form-label">角色主页</label>
+	           <div class="layui-input-block" id = 'roleMainPage'>
+				</div>
+	       </div>
+	       <div class="layui-form-item">
+	           <label class="layui-form-label">角色描述</label>
+	           <div class="layui-input-block">
+	               <textarea name="desc" id="desc" placeholder="请输入角色描述" class="layui-textarea"></textarea>
+	           </div>
+	       </div>
+	    </div>
     </form>
-    <div style="margin-top: 20px;margin-left: 20px;margin-right: 120px;"> 
+    <div style="margin-top: 20px;margin-left: 66px;margin-right: 120px; margin-bottom: 80px"> 
        <table class="layui-table" style="margin-top: 20px;margin-left: 20px;margin-right: 120px;margin-bottom: 70px;">
        	<thead >
        		<tr>
        			<th id="selectTr"></th>
+       			<th>系统名称</th>
        			<th>一级栏目</th>
        			<th>二级栏目</th>
        		</tr>
@@ -54,46 +55,67 @@
       <script src="../../js/min-loader-next.js"></script>
     <!-- 注意:如果你直接复制所有代码到本地,上述js路径需要改成你本地的 -->
     <script>
+    var tabPageId = getQueryString("tabPageId");
    		function testNewPage() {
 			// 打开新增页面
-			deleteTabPage('315001-01');
+			deleteTabPage(tabPageId);
    		}
    		
         // checkbox 点击事件
         function authChoose(t){
-        	var val = t.value;
-        	var isChecked = t.checked;
-        	var inputs = document.getElementsByName(t.name);
-        	// 主菜单
-        	if (isEmpty(val)) {
-        		for (var i = 0; i < inputs.length; i ++) {
-        			inputs[i].checked = isChecked;
-        		}
-        	// 单个菜单
-        	} else {
-        		// 是否全选
-        		var isAllFlag = true;
-        		for (var i = 0; i < inputs.length; i ++) {
-        			if (!inputs[i].checked && !isEmpty(inputs[i].value)) {
-        				isAllFlag = false;
-        				break;
-        			}
-        		}
-        		if (isAllFlag) {
-        			inputs[0].checked = true;
-        		} else {
-        			inputs[0].checked = false;
-        		}
-        	}
-			//处理全选框问题
-			var checkedAll = true;
-			$('#tbody').find(':checkbox').each(function(){
-				if( !this.checked ){
-					checkedAll = false;
-					return false;
+        	var checkType = $(t).attr("name");
+			var isCheck = $(t).prop('checked');
+			// 系统选项
+			if (checkType == "xitongCheck") {
+				var xitongId = $(t).attr("xitongId");
+				var xitongInp = $("#tbody").find("input[xitongId='"+ xitongId +"']");
+				for (var i = 0; i < xitongInp.length; i ++) {
+					$(xitongInp[i]).prop('checked',isCheck);
+				}
+			// 一级菜单
+			} else if (checkType == "yijiCheck") {
+				// 操作所属二级菜单
+				var yijiId = $(t).attr("yijiId");
+				var yijiInp = $("#tbody").find("input[yijiId='"+ yijiId +"']");
+				for (var i = 0; i < yijiInp.length; i ++) {
+					$(yijiInp[i]).prop('checked',isCheck);
+				}
+				// 判断系统是否需要选中
+				var xitongIsCheck = true;
+				var xitongId = $(t).attr("xitongId");
+				var xitongInp = $("#tbody").find("input[xitongId='"+ xitongId +"']");
+				for (var i = 1; i < xitongInp.length; i ++) {
+					if(!$(xitongInp[i]).prop('checked')){
+						xitongIsCheck = false;
+						break;
+					};
+				}
+				$(xitongInp[0]).prop('checked',xitongIsCheck);
+			// 二级菜单
+			} else {
+				// 所属一级菜单是否需要选中
+				var yijiIsCheck = true;
+				var yijiId = $(t).attr("yijiId");
+				var yijiInp = $("#tbody").find("input[yijiId='"+ yijiId +"']");
+				for (var i = 1; i < yijiInp.length; i ++) {
+					if(!$(yijiInp[i]).prop('checked')){
+						yijiIsCheck = false;
+						break;
+					};
+				}
+				$(yijiInp[0]).prop('checked',yijiIsCheck);
+				// 判断系统是否需要选中
+				var xitongIsCheck = true;
+				var xitongId = $(t).attr("xitongId");
+				var xitongInp = $("#tbody").find("input[xitongId='"+ xitongId +"']");
+				for (var i = 1; i < xitongInp.length; i ++) {
+					if(!$(xitongInp[i]).prop('checked')){
+						xitongIsCheck = false;
+						break;
+					};
 				}
-			});
-			$("#selectAll").prop('checked',checkedAll);
+				$(xitongInp[0]).prop('checked',xitongIsCheck);
+			}
        	}
         
         // 新增角色按钮
@@ -101,11 +123,12 @@
         	var itemid = "";
         	var name = document.getElementById('name').value;
         	var desc = document.getElementById('desc').value;
-        	var inputs = document.getElementsByTagName("input");
+        	var inputs = $("#tbody").find("input[name='erjiCheck']");
+//         	var inputs = document.getElementsByTagName("erjiCheck");
         	var roleMainPage = $("select[name='roleMainPage']").val();
         	// 获取菜单数组
         	for (var i = 0; i < inputs.length; i ++) {
-        		if (!isEmpty(inputs[i].value) && inputs[i].checked) {
+        		if ($(inputs[i]).prop('checked')) {
         			itemid += inputs[i].value + ",";
         		}
         	}
@@ -152,7 +175,7 @@
        						  time: 1000 //2秒关闭(如果不配置,默认是3秒)
        						}, function(){
        							// 关闭当前页面
-       							deleteTabPage('315001-01');
+       							deleteTabPage(tabPageId);
        						});
                 		})
         			} else {
@@ -186,20 +209,66 @@
 	        		},
 	        		success : function(data){
 	        			var menu = data.MINQueryResult;
-	        			var html = "";
+	        			
+	        			/* // 一级菜单临时html
+	        			var onelevelHtmlPartOne = "";
+	        			var onelevelHtmlPartTwo = "";
+	        			// 二级菜单tml
+	        			var twolevelHtml = "";
+	        			// 一级菜单是否被选中
+	        			var onelevelIsChecked = ""; */
 	        			for (var i = 0; i < menu.length; i ++) {
+	        				var html = "";
+	        				var xitongIsChecked = "checked";
+	        				
+	        				
+	        				var xitong = menu[i].xitong;
+	        				
 	        				html += '<tr>' +
-	        							'<td><input type="checkbox" lay-skin="primary" name='+menu[i].menuid+' value='+menu[i].itemid+' onclick="authChoose(this)"></td>' +
-	        							'<td style="color:#D3D3D3;">'+menu[i].lv1+'</td>';
-	        							var lv2 = "";
-	        							if (menu[i].lv2 != null) {
-	        								lv2 = menu[i].lv2;
-	        							} 
-	        							html += '<td>' + lv2 + '</td>' +
-	        						'</tr>';
+										'<td><input onclick="authChoose(this)" type="checkbox" lay-skin="primary" xitongIsChecked name="xitongCheck" xitongId="'+xitong.id+'" value="'+xitong.id+'"></td>' +
+										'<td style="color:#D3D3D3;">'+xitong.name+'</td>'+
+										'<td></td>' +
+										'<td></td>' +
+									'</tr>';
+	        				
+							var yijiMenuList = xitong.yijiMenu;
+	        				for (var j = 0; j < yijiMenuList.length; j ++) {
+	        					// 是否全部选中
+	        					var yijiMenuIsChecked = "checked";
+	        					
+	        					var yijiMenu = yijiMenuList[j];
+	        					html += '<tr>' +
+											'<td><input onclick="authChoose(this)" type="checkbox" lay-skin="primary" yijiMenuIsChecked xitongId="'+xitong.id+'" yijiId="'+yijiMenu.id+'" name="yijiCheck" value='+yijiMenu.id+'></td>' +
+											'<td style="color:#D3D3D3;">'+xitong.name+'</td>'+
+											'<td>'+yijiMenu.name+'</td>' +
+											'<td></td>' +
+										'</tr>';
+								
+								var erjiMenuList = yijiMenu.erjiMenu;
+								for (var k = 0; k < erjiMenuList.length; k ++) {
+									var erjiMenu = erjiMenuList[k];
+									var isChecked = "";
+									if (erjiMenu.checked) {
+										isChecked = "checked";
+									} else {
+										// 一级菜单未全部选中
+										yijiMenuIsChecked = "";
+										// 系统未全部选中 
+										xitongIsChecked = "";
+									}
+									html += '<tr>' +
+												'<td><input onclick="authChoose(this)" type="checkbox" lay-skin="primary" xitongId="'+xitong.id+'" yijiId="'+yijiMenu.id+'" name="erjiCheck" value='+erjiMenu.id+' ' + isChecked + '></td>' +
+												'<td style="color:#D3D3D3;">'+xitong.name+'</td>'+
+												'<td>'+yijiMenu.name+'</td>' +
+												'<td>'+erjiMenu.name+'</td>' +
+											'</tr>';
+								}
+								html = html.replace("yijiMenuIsChecked", yijiMenuIsChecked);
+	        				}
+	        				html = html.replace("xitongIsChecked", xitongIsChecked);
+	        				$("#tbody").append(html);
 	        			}
-	        			$("#tbody").append(html);
-	        			form.render();
+	        			
 	        		},
 	        		error : function(data) {
 	        			layui.use(['layer'], function(){
@@ -213,7 +282,7 @@
     		var form = layui.form;
 	    	initSelectb('roleMainPage', "MAIN_PAGE_URL", "roleMainPage", 'main.html', true);
 	    	form.render();
-    	});	
+    	});
     </script>
 
 </body>

+ 55 - 39
src/main/webapp/admin/roleManage/roleDetail.html

@@ -16,10 +16,11 @@
 	     </table>
      </div> 
     <div style="margin-top: 20px;margin-left: 20px;margin-right: 120px;"> 
-       <table class="layui-table" style="margin-top: 20px;margin-left: 20px;margin-right: 120px;">
+      <table class="layui-table" style="margin-top: 20px;margin-left: 20px;margin-right: 120px;">
        	<thead>
        		<tr>
-       			<th></th>
+       			<th id="selectTr"></th>
+       			<th>系统名称</th>
        			<th>一级栏目</th>
        			<th>二级栏目</th>
        		</tr>
@@ -28,7 +29,6 @@
        	</tbody>
        </table>
 	</div>
-      <script src="../../js/min-loader-next.js"></script>
     <!-- 注意:如果你直接复制所有代码到本地,上述js路径需要改成你本地的 -->
     <script>
 	    var params = layui.sessionData("ROW_DATA").NOW_ROW.params;
@@ -122,50 +122,66 @@
         		},
         		success : function(data){
         			var menu = data.MINQueryResult;
-        			var html = "";
-        			// 一级菜单临时html
+var menu = data.MINQueryResult;
+        			
+        			/* // 一级菜单临时html
         			var onelevelHtmlPartOne = "";
         			var onelevelHtmlPartTwo = "";
         			// 二级菜单tml
         			var twolevelHtml = "";
         			// 一级菜单是否被选中
-        			var onelevelIsChecked = "";
-        			/* debugger; */
+        			var onelevelIsChecked = ""; */
         			for (var i = 0; i < menu.length; i ++) {
-        				// 一级菜单
-        				if (isEmpty(menu[i].lv2)) {
-        					html += (onelevelHtmlPartOne + onelevelIsChecked + onelevelHtmlPartTwo + twolevelHtml);
-        					// 清空标示
-        					onelevelIsChecked = "checked";
-        					twolevelHtml = "";
-        					onelevelHtmlPartOne = '<tr>' +
-												'<td><input type="checkbox" lay-skin="primary" name='+menu[i].menuid+' value='+menu[i].itemid+' onclick="authChoose(this)" ';
-							onelevelHtmlPartTwo = ' disabled="disabled"></td>' +
-												'<td>'+menu[i].lv1+'</td>' +
-											'</tr>';
-						// 二级菜单
-        				} else {
-        					var isChecked = 'checked';
-            				if (isEmpty(menu[i].roleid)) {
-            					isChecked = '';
-            					onelevelIsChecked = '';
-            				}
-            				console.log("isChecked " + isChecked + "   twolevelHtml :"+i+"  -- "+twolevelHtml);
-            				var roleAuthNames = (menu[i].roleAuthNames == undefined || menu[i].roleAuthNames == 'undefined') ?  " " : menu[i].roleAuthNames
-            				authTd = "<td >"+ roleAuthNames +"</td>"; 
-        					twolevelHtml += '<tr>' +
-												'<td><input type="checkbox" lay-skin="primary" name='+menu[i].menuid+' value='+menu[i].itemid+' onclick="authChoose(this)" ' + isChecked +' disabled="disabled"></td>' +
-												'<td style="color:#D3D3D3;">'+menu[i].lv1+'</td>' +
-												'<td>' + menu[i].lv2 + '</td>' +
-											'</tr>';
-						 	
-        				}
-        				// 最后一个一级菜单
-        				if (i == menu.length - 1) {
-        					html += (onelevelHtmlPartOne + onelevelIsChecked + onelevelHtmlPartTwo + twolevelHtml);
+        				var html = "";
+        				var xitongIsChecked = "checked";
+        				
+        				
+        				var xitong = menu[i].xitong;
+        				
+        				html += '<tr>' +
+									'<td><input onclick="authChoose(this)" type="checkbox" lay-skin="primary" xitongIsChecked name="xitongCheck" xitongId="'+xitong.id+'" value="'+xitong.id+'"></td>' +
+									'<td style="color:#D3D3D3;">'+xitong.name+'</td>'+
+									'<td></td>' +
+									'<td></td>' +
+								'</tr>';
+        				
+						var yijiMenuList = xitong.yijiMenu;
+        				for (var j = 0; j < yijiMenuList.length; j ++) {
+        					// 是否全部选中
+        					var yijiMenuIsChecked = "checked";
+        					
+        					var yijiMenu = yijiMenuList[j];
+        					html += '<tr>' +
+										'<td><input onclick="authChoose(this)" type="checkbox" lay-skin="primary" yijiMenuIsChecked xitongId="'+xitong.id+'" yijiId="'+yijiMenu.id+'" name="yijiCheck" value='+yijiMenu.id+'></td>' +
+										'<td style="color:#D3D3D3;">'+xitong.name+'</td>'+
+										'<td>'+yijiMenu.name+'</td>' +
+										'<td></td>' +
+									'</tr>';
+							
+							var erjiMenuList = yijiMenu.erjiMenu;
+							for (var k = 0; k < erjiMenuList.length; k ++) {
+								var erjiMenu = erjiMenuList[k];
+								var isChecked = "";
+								if (erjiMenu.checked) {
+									isChecked = "checked";
+								} else {
+									// 一级菜单未全部选中
+									yijiMenuIsChecked = "";
+									// 系统未全部选中 
+									xitongIsChecked = "";
+								}
+								html += '<tr>' +
+											'<td><input onclick="authChoose(this)" type="checkbox" lay-skin="primary" xitongId="'+xitong.id+'" yijiId="'+yijiMenu.id+'" name="erjiCheck" value='+erjiMenu.id+' ' + isChecked + '></td>' +
+											'<td style="color:#D3D3D3;">'+xitong.name+'</td>'+
+											'<td>'+yijiMenu.name+'</td>' +
+											'<td>'+erjiMenu.name+'</td>' +
+										'</tr>';
+							}
+							html = html.replace("yijiMenuIsChecked", yijiMenuIsChecked);
         				}
+        				html = html.replace("xitongIsChecked", xitongIsChecked);
+        				$("#tbody").append(html);
         			}
-        			$("#tbody").append(html);
         		},
         		error : function(data) {
         			layui.use(['layer'], function(){

+ 165 - 30
src/main/webapp/admin/roleManage/roleUpdate.html

@@ -1,5 +1,6 @@
 <!DOCTYPE html>
 <html>
+
 <head>
     <meta charset="utf-8">
     <title>角色修改</title>
@@ -8,9 +9,11 @@
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
     <script src="../../js/min-loader-next.js"></script>
 </head>
-<body class="content">
+
+<body class="body-content">
+
 	<form class="layui-form" id = "formName" >
-    <div style="margin-top: 20px;margin-left: 20px;margin-right: 120px;padding-bottom:60px;" >
+    <div style="margin-top: 20px;margin-left: 20px;margin-right: 120px;" >
     	  <div class="layui-form-item">
 		    <label class="layui-form-label">角色编号</label>
 		    <div class="layui-input-block">
@@ -36,25 +39,28 @@
 		  </div>
       </div>  
       </form>
-		<div style="margin-top: 20px;margin-left: 20px;margin-right: 120px;"> 
-			<table class="layui-table" style="margin-top: 20px;margin-left: 20px;margin-right: 120px; margin-bottom: 80px;">
-		       	<thead>
-		       		<tr>
-		       			<th id="selectTr"></th>
-		       			<th>一级栏目</th>
-		       			<th>二级栏目</th>
-		       		</tr>
-		       	</thead>
-	       		<tbody id="tbody">
-	       		</tbody>
-       		</table>
-    	</div>
-       	<div class="layui-form-item box-button">
+		  <div style="margin-top: 20px;margin-left: 66px;margin-right: 120px;padding-bottom:80px;"> 
+       <table class="layui-table" style="margin-top: 20px;margin-left: 20px;margin-right: 120px;">
+       	<thead>
+       		<tr>
+       			<th id="selectTr"></th>
+       			<th>系统名称</th>
+       			<th>一级栏目</th>
+       			<th>二级栏目</th>
+       		</tr>
+       	</thead>
+       	<tbody id="tbody">
+       	</tbody>
+       </table>
+    </div>
+       <div class="layui-form-item box-button">
            <div class="layui-input-block">
                <button class="layui-btn" onclick = "updateRole()">提交</button>
            </div>
-       	</div>
-	<script src="../../js/min-loader-next.js"></script>
+       </div>
+		  
+       
+      <script src="../../js/min-loader-next.js"></script>
     <!-- 注意:如果你直接复制所有代码到本地,上述js路径需要改成你本地的 -->
     <script>
 	    var params = layui.sessionData("ROW_DATA").NOW_ROW.params;
@@ -67,14 +73,15 @@
 		$("#roleId").val(roleId);
 		$("#name").val(name);
 		$("#desc").val(desc);
+		var tabPageId = getQueryString("tabPageId");
     	layui.use('form', function(){
     		var form = layui.form;
 	    	initSelectb('roleMainPage', "MAIN_PAGE_URL", "roleMainPage", roleMainPage, true);
 	    	form.render();
-    	});	
+    	});
 		// checkbox 点击事件
         function authChoose(t){
-        	var val = t.value;
+        	/* var val = t.value;
         	var isChecked = t.checked;
         	var inputs = document.getElementsByName(t.name);
         	// 主菜单
@@ -98,6 +105,7 @@
         			inputs[0].checked = false;
         		}
         	}
+        	
         	//处理全选框问题
 			var checkedAll = true;
 			$('#tbody').find(':checkbox').each(function(){
@@ -106,7 +114,60 @@
 					return false;
 				}
 			});
-			$("#selectAll").prop('checked',checkedAll);
+			$("#selectAll").prop('checked',checkedAll); */
+			var checkType = $(t).attr("name");
+			var isCheck = $(t).prop('checked');
+			// 系统选项
+			if (checkType == "xitongCheck") {
+				var xitongId = $(t).attr("xitongId");
+				var xitongInp = $("#tbody").find("input[xitongId='"+ xitongId +"']");
+				for (var i = 0; i < xitongInp.length; i ++) {
+					$(xitongInp[i]).prop('checked',isCheck);
+				}
+			// 一级菜单
+			} else if (checkType == "yijiCheck") {
+				// 操作所属二级菜单
+				var yijiId = $(t).attr("yijiId");
+				var yijiInp = $("#tbody").find("input[yijiId='"+ yijiId +"']");
+				for (var i = 0; i < yijiInp.length; i ++) {
+					$(yijiInp[i]).prop('checked',isCheck);
+				}
+				// 判断系统是否需要选中
+				var xitongIsCheck = true;
+				var xitongId = $(t).attr("xitongId");
+				var xitongInp = $("#tbody").find("input[xitongId='"+ xitongId +"']");
+				for (var i = 1; i < xitongInp.length; i ++) {
+					if(!$(xitongInp[i]).prop('checked')){
+						xitongIsCheck = false;
+						break;
+					};
+				}
+				$(xitongInp[0]).prop('checked',xitongIsCheck);
+			// 二级菜单
+			} else {
+				// 所属一级菜单是否需要选中
+				var yijiIsCheck = true;
+				var yijiId = $(t).attr("yijiId");
+				var yijiInp = $("#tbody").find("input[yijiId='"+ yijiId +"']");
+				for (var i = 1; i < yijiInp.length; i ++) {
+					if(!$(yijiInp[i]).prop('checked')){
+						yijiIsCheck = false;
+						break;
+					};
+				}
+				$(yijiInp[0]).prop('checked',yijiIsCheck);
+				// 判断系统是否需要选中
+				var xitongIsCheck = true;
+				var xitongId = $(t).attr("xitongId");
+				var xitongInp = $("#tbody").find("input[xitongId='"+ xitongId +"']");
+				for (var i = 1; i < xitongInp.length; i ++) {
+					if(!$(xitongInp[i]).prop('checked')){
+						xitongIsCheck = false;
+						break;
+					};
+				}
+				$(xitongInp[0]).prop('checked',xitongIsCheck);
+			}
        	}
 		
         // 新增角色按钮
@@ -123,12 +184,17 @@
         			itemid += inputs[i].value + ",";
         		}
         	} */
+        	
+        	
         	var authCheck = false;
         	$('#tbody').find("tr").each(function(){
-        		if($(this).find("td:eq(0)").find(":checkbox").prop('checked')){
+        		
+        		if($(this).find("td:eq(0)").find("input[name='erjiCheck']").prop('checked')){
         			//if($(this).find("input:checkbox").eq(0).val() != undefined && $(this).find("input:checkbox").eq(0).val() != 'undefined'){
         				itemid += $(this).find("input:checkbox").eq(0).val() + "," ;//拼接菜单信息
         			//}
+        			
+        			
         			var itemAuth = "";//菜单权限
         			var itmName = $(this).find("td:eq(2)").html();
         			
@@ -152,10 +218,13 @@
         			}
         			authInputs += itemAuth;
         		}
+        		
        		});
         	if(authCheck){
         		return ;
         	}
+        	
+        	
         	// 校验数据
         	if (isEmpty(name)) {
         		layui.use(['layer'], function(){
@@ -189,11 +258,13 @@
         		success : function(data){
         			if (data.MINStatus == 0) {
         				layui.use(['layer'], function(){
+//                 			layer.alert('修改成功!', {icon: 1});
         					layer.msg('修改成功!', {
        							icon: 1,
        							time: 3000 //2秒关闭(如果不配置,默认是3秒)
        						}, function(){
-       							parent.location.reload();
+       							// parent.location.reload(); 
+       							deleteTabPageParent(tabPageId);
        						});
                 		})
         			} else {
@@ -209,11 +280,13 @@
         		}
         	})
         }
+		
         function checkAll(checked){
        		$('#tbody').find(':checkbox').each(function(){
 				$(this).prop('checked', checked); 
        		});
         }
+        
         $(document).ready(function(){
         	$("#selectTr").html("<input type='checkbox' id='selectAll' onclick='checkAll(this.checked);'> ");
         	// 查询菜单
@@ -224,15 +297,66 @@
         		},
         		success : function(data){
         			var menu = data.MINQueryResult;
-        			var html = "";
-        			// 一级菜单临时html
+        			
+        			/* // 一级菜单临时html
         			var onelevelHtmlPartOne = "";
         			var onelevelHtmlPartTwo = "";
         			// 二级菜单tml
         			var twolevelHtml = "";
         			// 一级菜单是否被选中
-        			var onelevelIsChecked = "";
+        			var onelevelIsChecked = ""; */
         			for (var i = 0; i < menu.length; i ++) {
+        				var html = "";
+        				var xitongIsChecked = "checked";
+        				
+        				
+        				var xitong = menu[i].xitong;
+        				
+        				html += '<tr>' +
+									'<td><input onclick="authChoose(this)" type="checkbox" lay-skin="primary" xitongIsChecked name="xitongCheck" xitongId="'+xitong.id+'" value="'+xitong.id+'"></td>' +
+									'<td style="color:#D3D3D3;">'+xitong.name+'</td>'+
+									'<td></td>' +
+									'<td></td>' +
+								'</tr>';
+        				
+						var yijiMenuList = xitong.yijiMenu;
+        				for (var j = 0; j < yijiMenuList.length; j ++) {
+        					// 是否全部选中
+        					var yijiMenuIsChecked = "checked";
+        					
+        					var yijiMenu = yijiMenuList[j];
+        					html += '<tr>' +
+										'<td><input onclick="authChoose(this)" type="checkbox" lay-skin="primary" yijiMenuIsChecked xitongId="'+xitong.id+'" yijiId="'+yijiMenu.id+'" name="yijiCheck" value='+yijiMenu.id+'></td>' +
+										'<td style="color:#D3D3D3;">'+xitong.name+'</td>'+
+										'<td>'+yijiMenu.name+'</td>' +
+										'<td></td>' +
+									'</tr>';
+							
+							var erjiMenuList = yijiMenu.erjiMenu;
+							for (var k = 0; k < erjiMenuList.length; k ++) {
+								var erjiMenu = erjiMenuList[k];
+								var isChecked = "";
+								if (erjiMenu.checked) {
+									isChecked = "checked";
+								} else {
+									// 一级菜单未全部选中
+									yijiMenuIsChecked = "";
+									// 系统未全部选中 
+									xitongIsChecked = "";
+								}
+								html += '<tr>' +
+											'<td><input onclick="authChoose(this)" type="checkbox" lay-skin="primary" xitongId="'+xitong.id+'" yijiId="'+yijiMenu.id+'" name="erjiCheck" value='+erjiMenu.id+' ' + isChecked + '></td>' +
+											'<td style="color:#D3D3D3;">'+xitong.name+'</td>'+
+											'<td>'+yijiMenu.name+'</td>' +
+											'<td>'+erjiMenu.name+'</td>' +
+										'</tr>';
+							}
+							html = html.replace("yijiMenuIsChecked", yijiMenuIsChecked);
+        				}
+        				html = html.replace("xitongIsChecked", xitongIsChecked);
+    					/* if(isEmpty(menu[i].proDesc)){
+        					menu[i].proDesc = "";
+        				}
         				// 一级菜单
         				if (isEmpty(menu[i].lv2)) {
         					html += (onelevelHtmlPartOne + onelevelIsChecked + onelevelHtmlPartTwo + twolevelHtml);
@@ -240,8 +364,9 @@
         					onelevelIsChecked = "checked";
         					twolevelHtml = "";
         					onelevelHtmlPartOne = '<tr>' +
-												'<td><input type="checkbox" lay-skin="primary" name='+menu[i].menuid+' value='+menu[i].itemid+' onclick="authChoose(this)" ';
+												'<td><input onclick="authChoose(this)" type="checkbox" lay-skin="primary" name='+menu[i].menuid+' value='+menu[i].itemid+' onclick="authChoose(this)" ';
 							onelevelHtmlPartTwo = '></td>' +
+												'<td style="color:#D3D3D3;">'+menu[i].proDesc+'</td>'+
 												'<td>'+menu[i].lv1+'</td>' +
 											'</tr>';
 						// 二级菜单
@@ -256,6 +381,7 @@
             				var authNames= menu[i].authNames;
             				var authDefaults = menu[i].authDefaults;
             				var roleAuthNos = menu[i].roleAuthNos;//角色已选的权限
+            				
             				var authHtml = "";
             				// 判断该菜单下是否存在权限
             				if( authNos != null && authNos != ''){
@@ -265,6 +391,7 @@
             						//组装所有的权限
             						for(var j = 0 ; j < authNos.split(",").length ; j ++){
 	            						var checked = "";
+	            						
 	            						if(roleAuthNos != undefined && roleAuthNos!= 'undefined' && roleAuthNos.indexOf(authNos.split(',')[j]) != -1){//已选中该权限
 	            							checked = "checked";
 	            						}
@@ -282,11 +409,13 @@
         	        					authHtml += checkboxHtm;
         	        				}
             					}
+    	        				
             				}
             				
             				authTd = "<td>"+authHtml+"</td>"
         					twolevelHtml += '<tr>' +
-												'<td><input type="checkbox" lay-skin="primary" name='+menu[i].menuid+' value='+menu[i].itemid+' onclick="authChoose(this)" '+isChecked+'></td>' +
+												'<td><input onclick="authChoose(this)" type="checkbox" lay-skin="primary" name='+menu[i].menuid+' value='+menu[i].itemid+' onclick="authChoose(this)" '+isChecked+'></td>' +
+			        							'<td style="color:#D3D3D3;">'+menu[i].proDesc+'</td>'+
 												'<td style="color:#D3D3D3;">'+menu[i].lv1+'</td>' +
 												'<td>' + menu[i].lv2 + '</td>' +
 												//添加权限问题
@@ -295,9 +424,10 @@
         				// 最后一个一级菜单
         				if (i == menu.length - 1) {
         					html += (onelevelHtmlPartOne + onelevelIsChecked + onelevelHtmlPartTwo + twolevelHtml);
-        				}
+        				} */
+        				$("#tbody").append(html);
         			}
-        			$("#tbody").append(html);
+        			
         		},
         		error : function(data) {
         			layui.use(['layer'], function(){
@@ -305,7 +435,12 @@
             		})
         		}
         	})
+        	
         })
+
+  	
     </script>
+
 </body>
+
 </html>

+ 67 - 36
src/main/webapp/js/report.js

@@ -1,45 +1,25 @@
 var TQTDRB = "TQTDRB";	//台区停电日报
 var TQTDZB = "TQTDZB";	//台区停电周报
 
-function countTaiqu(taiQuMap, taiQu, addressName) {
-	var flag = false;
-	for(var k in taiQu){
-		var itemVal = taiQu[k];
-		if (addressName == k) {
-			flag = true;
-			taiQu[k] = (itemVal + 1);
-			if (taiQu[k] >= 3) {
-				taiQu.count = (taiQu.count + 1);
-				taiQuMap.heji.count = (taiQuMap.heji.count + 1);
-			}
-		}
-	}
-	if (!flag) {
-		taiQu[addressName] = 1;
-	}
-}
 
 // 拼接报表格式
 function reportTable(excelList, typeId, isEdit) {
 	var editHtml;
-	// 台区停电日报
-	if (typeId == "TQTDRB") {
-		var html = '';
-		for (var i = 0; i < excelList.length; i ++) {
-			html += '<tr>';
-			var excelChildList = excelList[i];
-			for (var j = 0; j < excelChildList.length; j ++) {
-				if (isEdit) {
-					editHtml = '<td contenteditable = "true" onblur = "reportChange(this, ' + typeId + ',' + i + ', '+ j + ')">';
-				} else {
-					editHtml = '<td>';
-				}
-				html += editHtml + excelChildList[j] + '</td>';
+	var html = '';
+	for (var i = 0; i < excelList.length; i ++) {
+		html += '<tr>';
+		var excelChildList = excelList[i];
+		for (var j = 0; j < excelChildList.length; j ++) {
+			if (isEdit) {
+				editHtml = '<td contenteditable = "true" onblur = "reportChange(this, ' + typeId + ',' + i + ', '+ j + ')">';
+			} else {
+				editHtml = '<td>';
 			}
-			html += '</tr>';
+			html += editHtml + excelChildList[j] + '</td>';
 		}
-		$("#reportTable").html(html);
+		html += '</tr>';
 	}
+	$("#reportTable").html(html);
 }
 
 /**
@@ -51,13 +31,21 @@ function reportTable(excelList, typeId, isEdit) {
  * @returns
  */
 function reportChange(t, typeId, rowIndex, colIndex) {
-	if (typeId == "10000001") {
-		tableCount10000001(t, typeId, rowIndex, colIndex);
+	if (typeId == "TQTDRB") {
+		tableCountTQTDRB(t, typeId, rowIndex, colIndex);
+	} else if (typeId == "TQTDZB") {
+		tableCountTQTDZB(t, typeId, rowIndex, colIndex);
 	}
 }
 
-
-function tableCount10000001(t, typeId, rowIndex, colIndex) {
+/**
+ * 台区停电日报表编辑
+ * @param t
+ * @param typeId
+ * @param rowIndex
+ * @param colIndex
+ */
+function tableCountTQTDRB(t, typeId, rowIndex, colIndex) {
 	var tableDom = $(t).parent().parent();
 	var trsDom = $(tableDom).find("tr");
 	// 台区数量行
@@ -110,6 +98,44 @@ function tableCount10000001(t, typeId, rowIndex, colIndex) {
 		}
 	}
 }
+/**
+ * 台区停电周报表编辑
+ * @param t
+ * @param typeId
+ * @param rowIndex
+ * @param colIndex
+ */
+function tableCountTQTDZB(t, typeId, rowIndex, colIndex) {
+	var tableDom = $(t).parent().parent();
+	var trsDom = $(tableDom).find("tr");
+
+	// 管理台区总数 、1个月内累计停电台次 、上月累计停电台次、去年同期累计停电台次 合计为相加值
+	if (colIndex == 1 || colIndex == 2 || colIndex == 3 || colIndex == 4) {
+		// 不是表头也不是合计,需要重新计算合计数
+		if (rowIndex != 0 && rowIndex != (trsDom.length - 1)) {
+			var heji = "0";
+			for (var i = 1; i < (trsDom.length - 1); i ++) {
+				var tdsDom = $(trsDom[i]).find("td");
+				var val = $(tdsDom[colIndex]).html();
+				heji = accAdd(heji, val, 2);
+			}
+			$($(trsDom[trsDom.length - 1]).find("td")[colIndex]).html(heji);
+		}
+		// 管理台区总数 、1个月内累计停电台次  改变会改变频次
+		if (colIndex == 1 || colIndex == 2) {
+			// 本身频次改变
+			var zongtaishu = $($(trsDom[rowIndex]).find("td")[1]).html();
+			var tingdiantaici = $($(trsDom[rowIndex]).find("td")[2]).html();
+			var pinci = accDivFun(tingdiantaici, zongtaishu, 2);
+			$($(trsDom[rowIndex]).find("td")[5]).html(pinci);
+			// 合计频次改变
+			var zongtaishu = $($(trsDom[trsDom.length - 1]).find("td")[1]).html();
+			var tingdiantaici = $($(trsDom[trsDom.length - 1]).find("td")[2]).html();
+			var pinci = accDivFun(tingdiantaici, zongtaishu, 2);
+			$($(trsDom[trsDom.length - 1]).find("td")[5]).html(pinci);
+		}
+	} 
+}
 
 
 // excel数据拼接table
@@ -131,6 +157,11 @@ function initExcelData(excelList, tableId, isEdit) {
 	$("#" + tableId).html(html);
 }
 
+/**
+ * 表格数据转成JSON数据
+ * @param tableId
+ * @returns {Array}
+ */
 function getTableToArray(tableId) {
 	var excelList = new Array();
 	var tableDom = $("#" + tableId);