zTree是一个依靠 jQuery实现的多功能“树插件”。优异的性能、灵活的配置、多种功能的组合是zTree最大优点。专门适合项目开发,尤其是树状菜单、树状数据的Web显示、权限管理等等。
官网地址:http://www.treejs.cn/v3/main.php#_zTreeInfo
2.zTree资源管理实例
⑴ 引入zTree的js和css文件:
<script type="text/javascript" src="/assets/scripts/zTree_v3/js/jquery-1.4.4.min.js"></script> <script type="text/javascript" src="/assets/scripts/zTree_v3/js/jquery.ztree.core-3.5.js"></script> <script type="text/javascript" src="/assets/scripts/zTree_v3/js/jquery.ztree.excheck-3.5.js"></script> <link rel="stylesheet" href="/assets/scripts/zTree_v3/css/zTreeStyle/zTreeStyle.css" type="text/css" />
⑵ zTree的页面元素:通过读取隐藏的Input输入框中传递的JSON字符串初始化zTree树。
<input type="hidden" id="zTreeNodes" value="{{_DATA_.ztreeNodes}}" /> <span class="resourceSpan" >父资源<label style="color:#ff0000;">*</label>:</span> <div id="parentResource" class="ztree"></div>
⑶ js简单初始化zTree树:
var zNodesStr = document.getElementById("zTreeNodes").value; var zNodes = JSON.parse(zNodesStr); $.fn.zTree.init($("#parentResource"), setting, zNodes);
⑷ 给Ztree赋初值的java代码:
public UserResourceDTO initNewResources() { List<UsersResource> resourceList = new ArrayList<UsersResource>(); resourceList = usersResourceService.getAllResource(); JSONArray jsonNodes = new JSONArray(); for (UsersResource tempRes : resourceList) { JSONObject jsonObject = new JSONObject(); jsonObject.put("id", tempRes.getId()); jsonObject.put("pId", tempRes.getParentId()); jsonObject.put("name", tempRes.getName()); if (tempRes.getParentId() == 0) { jsonObject.put("checked", true); jsonObject.put("open", true); } else { jsonObject.put("open", false); } jsonNodes.add(jsonObject); } UserResourceDTO userResourceDTO = new UserResourceDTO(); userResourceDTO.setZtreeNodes(jsonNodes.toString()); return userResourceDTO; }
⑸ UserResourceDTO代码:
package com.ouc.mkhl.platform.usersAuth.dto; import java.io.Serializable; //RBAC权限管理-资源信息 public class UserResourceDTO implements Serializable { private static final long serialVersionUID = -889200123123123L; private Integer id; //资源Id private String name; //资源名称 private String description; //资源描述 private String url; //链接地址 private String type; //资源类型:0-URL资源,1-组件资源 private String status; //状态:0-隐藏,1-展示 private String code; //标识码 private String configuration; //配置项 private String moduleName; //模块名称 private Integer orderIndex; //排序号 private Integer parentId; //父资源 private String ztreeNodes; // 关联资源结点 public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name == null ? null : name.trim(); } public String getDescription() { return description; } public void setDescription(String description) { this.description = description == null ? null : description.trim(); } public String getUrl() { return url; } public void setUrl(String url) { this.url = url == null ? null : url.trim(); } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public String getCode() { return code; } public void setCode(String code) { this.code = code == null ? null : code.trim(); } public String getConfiguration() { return configuration; } public void setConfiguration(String configuration) { this.configuration = configuration == null ? null : configuration .trim(); } public String getModuleName() { return moduleName; } public void setModuleName(String moduleName) { this.moduleName = moduleName == null ? null : moduleName.trim(); } public Integer getOrderIndex() { return orderIndex; } public void setOrderIndex(Integer orderIndex) { this.orderIndex = orderIndex; } public Integer getParentId() { return parentId; } public void setParentId(Integer parentId) { this.parentId = parentId; } public void setZtreeNodes(String ztreeNodes) { this.ztreeNodes = ztreeNodes == null ? null : ztreeNodes.trim(); } public String getZtreeNodes() { return ztreeNodes; } }