子节点复选框选中与取消选中

<%@page import="com.cits.online.buzlogic.bo.SpecifyAgentRelationBO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="com.cits.online.buzlogic.bo.OperatorBO,
				com.cits.online.common.login.OperatorFactory,
				com.cits.online.common.util.CmnUtFunc,
				java.util.List,
				java.util.Map,
				java.util.Iterator,
				java.util.Set"%>

<%
	OperatorBO operatorBO = (OperatorBO)OperatorFactory.getOperator().getOperatorBO();
	String opener_agent_text_name = CmnUtFunc.nvl(request.getParameter("agent_text_name"));
	String opener_agent_text_id = CmnUtFunc.nvl(request.getParameter("agent_text_id"));
	
	String openerAgentId = CmnUtFunc.nvl(request.getParameter("agentId"));
	
	String[] deptIdArray=null;
	if(CmnUtFunc.isNotNull(openerAgentId)){
	   deptIdArray = openerAgentId.split(",");
	}
	
	String company_id = CmnUtFunc.nvl(request.getParameter("company_id"));
	Map agentMap = (Map)request.getAttribute("agentMap");
	String operate_type = CmnUtFunc.nvl(request.getParameter("operate_type"));
	boolean showAllAgent = true;
	if(request.getAttribute("showAllAgent") != null){
		showAllAgent = ((Boolean)request.getAttribute("showAllAgent")).booleanValue();
	}
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>代理选择new</title>
<script type='text/javascript' src='/citsonlineWeb/js/jquery/jquery.js'></script>
<script type='text/javascript' src='./online/js/jquery-1.9.1.js'></script>
<link href="<%=request.getContextPath()%>/themes/<%=operatorBO.getTheme() %>/css/common.css" rel="stylesheet" type="text/css" />
<link href="<%=request.getContextPath()%>/themes/<%=operatorBO.getTheme() %>/css/displaytag/screen.css" rel="stylesheet" type="text/css"/>
<style type="text/css">
	<!--
    .orange {
		font-family: "宋体";
		font-size: 12px;
		color: #ff7e22;
	} 
	-->
	</style>
<script language="JavaScript">
    	
	    
		function clean(){
			window.opener.document.getElementById("<%=opener_agent_text_name%>").value = "全部代理";
			window.opener.document.getElementById("<%=opener_agent_text_id%>").value = "";
			window.close();
		}
		
		function query(){
			var agent_name = document.getElementById("agent_name").value;
			var useForm = document.getElementById("agentForm");
			useForm.action = "./switchdo.do?prefix=/reportCenter&page=/reportCenterCommon.do&actionType=allAgent&operate_type=query&agent_text_name=<%=opener_agent_text_name%>&agent_text_id=<%=opener_agent_text_id%>&company_id=<%=company_id%>";
			useForm.submit();
		}
		//展开代理商列表
		function showAgentList(key){
			var flag = false;
			var flagText = event.srcElement.showFlag;
			if(flagText=="+"){
				flag = true;
				event.srcElement.showFlag = "-";
				event.srcElement.src="/citsonlineWeb/reportCenter/images/open.jpg";
			}else{
				flag = false;
				event.srcElement.showFlag = "+";
				event.srcElement.src="/citsonlineWeb/reportCenter/images/close.jpg";
			}
			var trArr = document.getElementsByTagName("tr");
			if(trArr!=null&&trArr.length>0){
				for(var i=0;i<trArr.length;i++){
					var obj = trArr[i];
					if(obj.prefix == key){
						if(flag){
							obj.style.display = "block";
						}else{
							obj.style.display = "none";
						}
						
					}
				}
			}
		}
		//子节点全选或全不选
		function checkAllchildren(key){
			var obj = event.srcElement;
			var checkboxArr = document.getElementsByName("useAgentID");
			if(checkboxArr!=null&&checkboxArr.length>0){
				for(var i=0;i<checkboxArr.length;i++){
					var checkObj = checkboxArr[i];
					if(checkObj.prefix==key){
						checkObj.checked = obj.checked;
					}
				}
			}
		}
		//选择已经选中的代理
		function selected(opener_agent_id,opener_agent_name){
			//获得选中的checkBox
	  		var agentArr = orgnizeCheckedAgentInfo();
	  		if(agentArr==null||agentArr.length<=0){
	  			alert("请选择要查询的代理!");
	  			return;
	  		}else{
	  			var agentIDs = "";
	  			var agentNames = "";
	  			for(var i=0;i<agentArr.length;i++){
	  				var obj = agentArr[i];
	  				agentIDs+=obj.getAgentID();
	  				agentNames+=obj.getAgentName();
	  			}
	  			//去掉最后的,号
	  			agentIDs = agentIDs.substr(0,agentIDs.length-1);
	  			agentNames = agentNames.substr(0,agentNames.length-1);
	  			window.opener.document.getElementById(opener_agent_id).value = agentIDs;	
		  		window.opener.document.getElementById(opener_agent_name).value = agentNames;
		  		
		  		
			try{
				window.opener.cleanDeptInfo();
				window.opener.cleanAccountInfo();
			}catch(e){
			}
		  		
		  		
		  		
		  		
		  		
		  		
		  		
				window.close();
	  		}
	    }
	    //定义AgentInfo对象
	    function AgentInfoObj(agentID,agentName){
	    	this.agentID = agentID;
	    	this.agentName = agentName;
	    	this.toString = function(){
	    		return this.agentID+" "+this.agentName;
	    	}
	    	this.getAgentID = function(){
	    		return this.agentID+",";
	    	}
	    	this.getAgentName = function(){
	    		return this.agentName+",";
	    	}
	    }
	    //组织选中的checkBox
	    function orgnizeCheckedAgentInfo(){
	    	var agentArr = new Array();
	    	var index = 0;
	    	var checkboxArr = document.getElementsByName("useAgentID");
		    if(checkboxArr!=null&&checkboxArr.length>0){
				for(var i=0;i<checkboxArr.length;i++){
					var checkObj = checkboxArr[i];
					if(checkObj.checked){
						agentArr[index] = new AgentInfoObj(checkObj.value,checkObj.valueStr);
						index++;
					}
				}
			}
			return agentArr;
	    }
	    
	    $(function(){
	    	
	    	 
		})
	    
		//子节点单击事件
		function sonClick(obj){
	    	var checked = obj.checked;
	    	var prefix = obj.prefix;
	    	if(checked){
	    		var checkboxArr1 = $("input[prefix='" + prefix + "']"); 
	    		var count1 = checkboxArr1.length;//一个父节点下所有子节点的总数
	    		var count2 = $("input[prefix='" + prefix + "']:checked").length;//一个父节点下处于选中状态的子节点的总数
	    		if(count1 == count2){
	    			$("#a"+prefix).attr("checked",true); 
	    		}
	    	}else{
	    		$("#a"+prefix).removeAttr("checked"); 
	    	}
	    }
		
    </script>
</head>
<body>
<form name="agentForm" id="agentForm" method="post" >
    <input type="hidden" name="seeAllFlg" value="<%=CmnUtFunc.nvl(request.getParameter("seeAllFlg")) %>">
	<table width="98%" border="0" cellspacing="0" cellpadding="0">
		<tr>
		  <td valign="top">
			
				<table border="0" cellspacing="0" cellpadding="0">
					<tr>
						<td class="top_up_td"></td>
					</tr>
				</table>
				<table id="querytable" width="99%" border="0" cellspacing="0" cellpadding="0" align="center">
				  <tr class="">
					<td width="13%" class="text_right_12p">
						代理:			
					</td>
					<td width="1%"> </td>
					<td width="86%" class="align_left"> 
						<input type="text" id="agent_name" name="agent_name" value="<%=CmnUtFunc.nvl(request.getParameter("agent_name"))%>"   onKeyDown="if (event.keyCode==13) query();">
						<input name="button2" type="button" class="common_btn" value="查 找" onClick="query()">
						<%if(showAllAgent){%>
						<input name="button2" type="button" class="common_btn" value="全 部" onClick="clean()">
						<%}%>
						<input name="button2" type="button" class="common_btn" value="选 择" onClick="selected('<%=opener_agent_text_id%>','<%=opener_agent_text_name%>');">
						
					</td>
				  </tr>
			</table>
			
			<%
				if(agentMap!=null&&!agentMap.isEmpty()){
			%>
			  <table  cellpadding="0" cellspacing="0" class="its" style="width:100%;">
			<%	
					String key = "";
					String keyValue = "";
					List agentList	= null;
					Set keys = agentMap.keySet();
					Iterator it = keys.iterator();
					key = "xxxxxx";
					agentList = (List)agentMap.get(key);
					if(agentList!=null&&agentList.size()>0){
						keyValue = "公司级代理";
					
			%>
					
				 	 <tr class="odd" >
	                      <td style="text-align: left;" width="30%">
		                      <img src="/citsonlineWeb/reportCenter/images/close.jpg" style="cursor:hand" onclick="showAgentList('<%=key%>');" showFlag = "+"/>
		        			  <% 
		        			  	  String c = "";
			        			  List<SpecifyAgentRelationBO> updateList = (List<SpecifyAgentRelationBO>)request.getAttribute("agentList");
		                      	  if(updateList != null && updateList.size() > 0){
		                      		    int count = 0;
		                      			for(int i = 0; i < updateList.size(); i++){
		                      				SpecifyAgentRelationBO specifyAgentRelationBO = updateList.get(i);
		                      				for(int j=0;j<agentList.size();j++){
		        					 			Map tempMap = (Map)agentList.get(j);
		        					 			String agentID = (String)tempMap.get("agent_id");
		        					 			if(specifyAgentRelationBO.getSpecify_agent_id().equals(agentID)){
		        					 				count++;
		        					 			}
		        					 			if(count > 0 && count == agentList.size()){
		        					 				break;
		        					 			}
		                      				}
			                      		}
		                      			if(count > 0 && count == agentList.size()){
		                      				c = "checked";
		                      			}
		                      	  }
		        			  %>
		        			  <input type="checkbox" <%=c%> onclick="checkAllchildren('<%=key%>');" name="parentName<%=key%>" id="a<%=key%>"><%=keyValue%> 
	        			  </td>
                     </tr>
				 		<%
							for(int j=0;j<agentList.size();j++){
					 			Map tempMap = (Map)agentList.get(j);
					 			String agentID = (String)tempMap.get("agent_id");
					 			String agentName = (String)tempMap.get("agentName");
			 			%>
		 			<tr class="even" prefix="<%=key%>" style="display:none">
	                      <td  style="text-align: left;" width="70%">    
	                      <img src="/citsonlineWeb/reportCenter/images/page.gif"/>
	                      <% 
	                      		c = "";
	                      		if(updateList != null && updateList.size() > 0){
	                      			for(int i = 0; i < updateList.size(); i++){
	                      				SpecifyAgentRelationBO specifyAgentRelationBO = updateList.get(i);
		                      			if(specifyAgentRelationBO.getSpecify_agent_id().equals(agentID)){
		                      				c = "checked";
		                      				break;
		                      			}
		                      		}
	                      		}
	                      		
	                      %>
		                  <input type="checkbox" onclick="sonClick(this);" <%=c%>  name="useAgentID" prefix="<%=key%>" value="<%=agentID%>"  valueStr="<%=agentName%>" ><%=agentName%>(子节点)</td>
                    </tr>
		 			<%
							}
						}
								
								for(;it.hasNext();){
								 	key = (String)it.next();
								 	agentList = (List)agentMap.get(key);
								 	if(key.equals("xxxxxx")){
								 		continue;
								 	}else{
								 		keyValue = (String)((Map)agentList.get(0)).get("deptName");
								 	}
				 	%>
				 	 <tr class="odd" >
	                      <td style="text-align: left;" width="30%">
	                      <img src="/citsonlineWeb/reportCenter/images/close.jpg" style="cursor:hand;" onclick="showAgentList('<%=key%>');" showFlag = "+"/>
	                      <% 
	        			  	  String c = "";
		        			  List<SpecifyAgentRelationBO> updateList = (List<SpecifyAgentRelationBO>)request.getAttribute("agentList");
	                      	  if(updateList != null && updateList.size() > 0){
	                      		    int count = 0;
	                      			for(int i = 0; i < updateList.size(); i++){
	                      				SpecifyAgentRelationBO specifyAgentRelationBO = updateList.get(i);
	                      				for(int j=0;j<agentList.size();j++){
	        					 			Map tempMap = (Map)agentList.get(j);
	        					 			String agentID = (String)tempMap.get("agent_id");
	        					 			if(specifyAgentRelationBO.getSpecify_agent_id().equals(agentID)){
	        					 				count++;
	        					 			}
	        					 			if(count > 0 && count == agentList.size()){
	        					 				break;
	        					 			}
	                      				}
		                      		}
	                      			if(count > 0 && count == agentList.size()){
	                      				c = "checked";
	                      			}
	                      	  }
	        			  %>
	                      <input type="checkbox" <%=c%> onclick="checkAllchildren('<%=key%>');" name="parentName<%=key%>" id="a<%=key%>" valueStr="<%=key%>"><%=keyValue%> </td>
                     </tr>
				 	
				 	<%
								 	if(agentList!=null&&agentList.size()>0){
								 		for(int j=0;j<agentList.size();j++){
								 			Map tempMap = (Map)agentList.get(j);
								 			String agentID = (String)tempMap.get("agent_id");
								 			String agentName = (String)tempMap.get("agentName");
		 			%>
		 			<tr class="even" prefix="<%=key%>" style="display:none">
                      	<td  style="text-align: left;" width="70%">    
                      		<img src="/citsonlineWeb/reportCenter/images/page.gif"/>
                      		<% 
	                      		c = "";
	                      		if(updateList != null && updateList.size() > 0){
	                      			for(int i = 0; i < updateList.size(); i++){
	                      				SpecifyAgentRelationBO specifyAgentRelationBO = updateList.get(i);
		                      			if(specifyAgentRelationBO.getSpecify_agent_id().equals(agentID)){
		                      				c = "checked";
		                      				break;
		                      			}
		                      		}
	                      		}
	                      		
	                       %>
		                    <input type="checkbox" onclick="sonClick(this);" <%=c%>  name="useAgentID" prefix="<%=key%>" value="<%=agentID%>" valueStr="<%=agentName%>">
	                      	<%=agentName%>(子节点)
                      	</td>
                  	</tr>
		 			<%
								 		}
								 	}
								 	
								}
					%>
			</table>
			<%
				}else if(!"".equals(operate_type)){
			%>
			<br>
			 <table width="98%" border="0" cellspacing="0" cellpadding="0" align="center">
               		<tr>
			          <td align="left" class="orange">
			           <img src="/citsonlineWeb/themes/default/images/tanhaotishi.gif" />  没有符合条件的信息
                      </td>
			       </tr>
             </table>
			<%
				} 
			%>
				
				
              </td>
            </tr>
          </table>      
         </form>
	</body>
</html>

猜你喜欢

转载自blog.csdn.net/zhangzhangjava/article/details/78051727
今日推荐