`

ztree二级树菜单(SSI框架下)--hulian平台二版代码

 
阅读更多

这是用jquery ztree做的二级权限树,互联二版代码,原理主要:

1.框架基于struts2、spring3、ibatIS2.3

2.主要是TEmployeePriv表的三个字段(PRIV_NUM、MENU_ID_1、PRIV_TYPE):

   privNum为id(子id),menuId1为pId(父id),

   privType为权限菜单类型[权限菜单(60),权限集合(61),权限动作(62)]即60一级菜单、61二级菜单、62三级菜单

 

一、action代码

	/**
	 * 打开授权
	 */
	public String openImpower()
	{	
		role = service.queryById(roleNum);
		
		TRolePriv rp = new TRolePriv();
		rp.setRoleNum(roleNum);
		
		List<TRolePriv> rpList = service.queryRolePriv(rp);//权限中间表List
		List<TEmployeePriv> privList = service.queryAllPriv(new TEmployeePriv());//查询所有TEmployeePriv
		
		/**合成权限树*/
		List<PrivJSON> jsonList = new ArrayList<PrivJSON>();
		
		for( TEmployeePriv priv : privList ){
			if("60".equals(priv.getPrivType())){
				PrivJSON json = new PrivJSON();//一级菜单
				json.setId(priv.getPrivNum());
				json.setpId("0");
				json.setName(priv.getPrivName());
				json.setOpen(false);//默认不展开
				
				jsonList.add(json);
			}
			else{
				PrivJSON json2 = new PrivJSON();
				json2.setId(priv.getPrivNum());
				json2.setpId(priv.getMenuId1());
				json2.setName(priv.getPrivName());
				json2.setPrivNum(priv.getPrivNum());
				
				for(TRolePriv trp : rpList){
					if(trp.getPrivNum().equals(priv.getPrivNum())){
						json2.setOpen(false);//默认不展开
						json2.setChecked(true);
					}
				}
				jsonList.add(json2);
			}
		}
		
		JSONArray myjsonObj = JSONArray.fromObject(jsonList);//将权限集合,转成JSON数组
		this.getRequest().setAttribute("myjsonObj",myjsonObj);
		
		successPath = "/jsp/phone/priv/role/impowerRole.jsp";
		return SUCCESS;
	}

 

二、jsp页面代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>角色授权</title>
	<%@ include file="/cssBasePage.jsp"%>
	
	<link rel="stylesheet" href="BaseInfo/ztree/demoStyle/demo.css" type="text/css"/>
  	<link rel="stylesheet" href="BaseInfo/ztree/zTreeStyle/zTreeStyle.css" type="text/css"/>
  	<script type="text/javascript" src="BaseInfo/ztree/jquery.ztree-2.6.js"></script>
	<script type="text/javascript" src="<%=path%>/jsp/phone/priv/role/impowerRole.js"></script>

  <script type="text/javascript">
	var zTreeObj;
	var setting = {checkable:true,treeNodeKey:"id",treeNodeParentKey:"pId",isSimpleData:true}; //zTree的参数配置,深入使用请参考 API 文档(参数说明 -- setting 详解)
	/*var zNodes = [
	{name:"test1", open:true, nodes:[
		{name:"test1_1"}, {name:"test1_2"}]},
	{name:"test2", open:true, nodes:[
		{name:"test2_1"}, {name:"test2_2"}]}
	];*/ //zTree的数据属性,深入使用请参考 API 文档(参数说明 -- zTreeNodes 详解)

	var myjsonObj = ${requestScope.myjsonObj};
	var zNodes = myjsonObj;
	                	
	$(document).ready(function(){
		zTreeObj = $("#treeDemo").zTree(setting, zNodes);
	});

	function expandAll(expandSign) {
		zTreeObj.expandAll(expandSign);
	}

	function checkAllTreeNode(checked) {
		var oldNodes = zTreeObj.getNodes();
		var oldcheckNum = zTreeObj.getCheckedNodes(checked).length;
		zTreeObj.checkAllNodes(checked);
		var newcheckNum = zTreeObj.getCheckedNodes(checked).length;
		if (newcheckNum != oldcheckNum) zTreeObj.checkAllNodes(checked);
	}

	/*测试用树授权*/
	function testImpower()
	{
		var temp ="";
		var nodes = zTreeObj.getCheckedNodes();
		for( var i=0; i<nodes.length; i++ ){
			if(nodes[i].privNum != ''){
				temp = temp+";"+nodes[i].privNum;
			}
		}
		alert(temp);
		document.getElementById('privSelect').value=temp;
	}

	/*分配运维权限*/
	function allotYunwei()
	{
		checkAllTreeNode(false);
		var privNum = ["menu_0101","menu_0102"];//数组不能包含一级菜单,包含将会选中整个节点
		for(var i=0;i<privNum.length;i++){
			var node = zTreeObj.getNodeByParam("privNum", privNum[i]);
			node.checked=true;
			zTreeObj.updateNode(node,true);
			//zTreeObj.selectNode(node);//选中指定的节点
		}
	}
  </script> 
</head>
  <body>
	<hp:HpNavigate TValue="工号及权限管理,角色管理,角色授权"></hp:HpNavigate>
	<hp:HpSearch namekey="site.page.update.title">
		<br/>
		<table>
    		<tr>
    			<td class="txtright">当前角色名称:</td>
    			<td class="txtleft">
    				${ role.roleName }
				</td>
    		</tr>
    		
    		<tr>
    			<td class="txtleft" colspan="2">&nbsp;</td>
    		</tr>
    		
    		<tr>
    			<td class="txtleft" colspan="2">
    				<div class="zTreeDemoBackground">
					<button onclick="expandAll(true);">全展开</button>|<button onclick="expandAll(false);">全关闭</button>
					<button onclick="checkAllTreeNode(true);">全选</button>|<button onclick="checkAllTreeNode(false);">全不选</button>
					<button onclick="testImpower();">测试</button>
					<button onclick="allotYunwei();">运维授权</button><br/><br/>
						<ul id="treeDemo" class="tree"></ul>
					</div>
    			</td>
    		</tr>
    	</table>
    	
	    <form method="post" name="form1" id="form1">
	    	<input type="hidden" name="roleNum" value="${role.roleNum}"/>
	    	<input id="privSelect" name="privSelect" type="hidden"/> <!-- 真正提交时的list,后台Action中得到此项,修改权限 -->
	    	
	    	<br/>
	    	<table>	    		
	    		<tr>
	    			<td class="txtright">修改原因:</td>
	    			<td class="txtleft">
						<hp:HpTextarea TRows="6" name="alterReason" id="alterReason" TValue="" 
							TCols="75" TClass="text-input inputbox"
							TOnBlur="onBlurValiTextArea3(this.value,'role\\\\.alterReasonDiv')" 
							TMaxLength="50" />
						<div class="DivShowInfoCss" id="role.alterReasonDiv" style="display: inline" ></div>
					</td>
	    		</tr>
	    		
	    		<tr>
	    			<td class="txtright">业务密码:</td>
	    			<td class="txtleft">
						<hp:HpInputPass name="password2" TClass="inputbox" id="password2" 
							TMaxLength="16" TOnBlur="onBlurValiPass2(this.value,'password2Div')" ></hp:HpInputPass>
						<div class="DivShowInfoCss" id="password2Div" style="display: inline" ></div>
					</td>
	    		</tr>
	    		    		
	    		<tr>
	    			<td></td>
	    			<td class="txtleft">
						<hp:HpButton TJsClick="impower()" TValue="save" id=""></hp:HpButton>
						<hp:HpButton TJsClick="$('.DivShowInfoCss').html('');" TValue="reset" id=""></hp:HpButton>
						<hp:HpButton TJsClick="$.hpDialog.close();" TValue="return" id=""></hp:HpButton>
	    			</td>
	    			<td></td>
	    		</tr>
	    	</table>
	    </form>
	</hp:HpSearch>  
  </body>
</html>
分享到:
评论

相关推荐

    ztree树形菜单

    《zTree:构建高效易用的树形菜单》 在Web开发中,树形菜单是一种常见的数据展示形式,尤其在管理界面中,用于展现层级关系的数据。zTree是一款基于jQuery的插件,专用于实现多级可展开闭合的树形菜单。其简洁的...

    基于ztree开发的下拉树控件ztree-select

    【基于ztree开发的下拉树控件ztree-select】是一种高效的前端UI组件,它结合了ztree的核心特性和下拉菜单的功能,适用于构建具有层级结构的选中项。ztree是一个广泛使用的JavaScript树形插件,而ztree-select则是其...

    bootstrap风格的zTree树形菜单代码.zip

    Bootstrap风格的zTree树形菜单代码是一款结合了流行的前端框架Bootstrap和强大的jQuery树形插件zTree的解决方案。zTree是一款轻量级的JavaScript组件,它能够帮助开发者快速构建出功能丰富的树形结构,适用于网站...

    zTree后台组装树结构java代码

    zTree是一款流行的JavaScript插件,专门用于创建交互式的树形菜单或树状视图。本主题聚焦于如何在Java后端组装zTree所需的树结构,并与MySQL数据库进行交互。以下是关于这个主题的详细知识点: 1. **zTree**: - ...

    zTree实现树形菜单

    在这个场景下,我们讨论的是如何利用zTree这个JavaScript库来实现树形菜单。zTree是一款功能丰富的jQuery插件,专门用于构建交互式的树形结构。 首先,我们需要理解zTree的基本概念。zTree的核心是JSON数据格式,它...

    Jquery-ztree树形菜单代码并适应移动端

    JQuery-zTree是一款基于jQuery的树形插件,它提供了丰富的功能和良好的性能,尤其适用于构建树形结构的菜单和数据展示。在移动端应用中,zTree能够自适应屏幕尺寸,提供良好的用户体验。本项目提供的代码是针对...

    Ztree+treeTable实现 Java实现 树形菜单 树形表格

    在Java开发中,构建用户界面时,树形菜单和树形表格是常见且重要的组件,它们可以帮助用户以层次结构的方式浏览和操作数据。本篇将详细介绍如何利用Ztree和treeTable来实现这样的功能。 Ztree是一款基于JavaScript...

    使用zTree框架完成树形框架链接到数据库实现增删改

    在实现“使用zTree框架完成树形框架链接到数据库实现增删改”的过程中,主要涉及以下几个步骤: 1. **数据获取**:首先,需要从数据库获取树形结构的数据。通常,这可以通过执行SQL查询完成,将结果转化为JSON格式...

    zTree-zTree_v3-master.zip_ztree_多功能插件

    zTree的核心功能在于实现树形结构的数据展示,这种数据结构常见于网站的导航菜单、组织架构图、文件目录等场景。它的优势在于能够将复杂的数据结构以直观、易操作的树状形式展现,使得用户可以方便地进行展开、折叠...

    亲测可用的zTree树菜单插件

    zTree是一款广泛应用于Web开发中的JavaScript树形菜单插件,其功能强大且易于使用。它以其灵活的配置、丰富的API和良好的性能深受开发者喜爱。在本文中,我们将深入探讨zTree的基本概念、主要特点、使用方法以及如何...

    日志管理系统【SSH2真实使用的项目--ztree--boostrap】---首发

    在本项目中,我们主要探讨的是一个基于SSH2(Spring、Struts2和Hibernate)框架构建的日志管理系统,结合了Ztree和Bootstrap技术,提供了一种实用的企业级解决方案。SSH2是一个广泛应用于Java Web开发的开源框架组合...

    jquery-zTree树形菜单

    **jQuery zTree 树形菜单详解** jQuery zTree是一款基于jQuery的开源JavaScript库,用于创建交互式的树形菜单。它提供了丰富的配置选项、多种事件处理和灵活的数据接口,使得在网页中构建各种复杂的树结构变得非常...

    ztree树形菜单、ztree树形菜单demo

    **zTree:强大的JavaScript树形菜单库** zTree是一款基于JavaScript的开源树形插件,广泛应用于网页中的数据展示和交互操作。它以其轻量级、高性能和丰富的配置选项而受到开发者的青睐。zTree的核心功能是将JSON...

    使用ztree构建树形菜单,需要引入的js及样式文件

    ZTree是一款非常流行的JavaScript插件,它能够帮助开发者轻松地创建交互式的树形菜单。以下是对使用ZTree构建树形菜单时需要引入的JS和样式文件的详细说明。 首先,ZTree的核心是其JavaScript库,主要包含两个文件...

    ztree树形菜单demo

    在本“ztree树形菜单demo”中,我们将探讨ZTree的核心功能、如何实现节点的显示以及如何进行实际应用。 ZTree的核心特性包括: 1. **丰富的API接口**:ZTree提供了大量的API接口,允许开发者对树形结构进行动态...

    使用Ztree实现java动态树形菜单

    Ztree是一款轻量级的JavaScript插件,专用于创建交互式的树形结构,它可以很好地与后台服务器进行数据交互,支持Ajax动态加载,适用于构建动态树形菜单。在Java开发中,结合Ztree可以轻松地实现前后端数据的绑定和...

    java jquery Ztree 机构人员树示例

    在IT行业中,构建一个高效的组织结构和人员管理系统是至关重要的,而"java jquery Ztree 机构人员树示例"就是一种实现方式。这个示例利用了Java后端技术和前端jQuery库ZTree,来创建一个可交互的、可视化展示机构与...

Global site tag (gtag.js) - Google Analytics