1.实体
public class UserDataZTreeVo { private String id; private String pid; private String name; private boolean open; private String readWriteAuthority; private String code; private String description; private boolean isParent; private boolean checked; //ztree组件需要格式 public String getpId() { return this.pid == null ? "0" : this.pid; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getPid() { return pid; } public void setPid(String pid) { this.pid = pid; } public boolean isParent() { return isParent; } public void setParent(boolean parent) { isParent = parent; } public boolean isOpen() { return open; } public void setOpen(boolean open) { this.open = open; } public String getReadWriteAuthority() { return readWriteAuthority; } public void setReadWriteAuthority(String readWriteAuthority) { this.readWriteAuthority = readWriteAuthority; } public boolean isChecked() { return checked; } public void setChecked(boolean checked) { this.checked = checked; } }
2.zTree封装
//ztree封装,先创建组织 List<UserDataZTreeVo> list = new ArrayList<UserDataZTreeVo>(); String organizationTreeId = ""; for (int i = 0; i < listUserDataVo.size(); i++) { UserDataZTreeVo ztree = new UserDataZTreeVo(); UserDataManageVO vo = listUserDataVo.get(i); if (!organizationTreeId.equals(String.valueOf(vo.getManagedOrganizationId()))) { ztree.setId(String.valueOf(vo.getManagedOrganizationId())); ztree.setPid(String.valueOf(vo.getManagedOrganizationId())); ztree.setName(vo.getManagedOrganizationName()); ztree.setOpen(true); ztree.setParent(true); organizationTreeId = String.valueOf(vo.getManagedOrganizationId()); list.add(ztree); } }
3.加载
//========================================3.ztree=========================================== var zNodes = []; var initUserManageTree = function (userId, organizationId) { $.ajax({ url: CTX + "/manage/loadUserManagedTree",//发送ajax请求加载权限数据 type: 'post', dataType: 'json', async: false, data: { "userId": userId, "organizationId": organizationId }, success: function (data) {//data就是服务端返回的权限数据 var data = data.data; zNodes = data; }, error: function (msg) { alert('树加载异常!'); } }); }; var InitialTree = function () { // 授权树初始化 var setting = { view: { selectedMulti: true, showLine: true, addDiyDom: addDiyDom }, data: { key: { name: "name" }, simpleData: { enable: true, idKey: "id", pIdKey: "pid", rootPId: null } }, check: {//使用ztree选中效果 enable: true, } }; $.fn.zTree.init($("#userDataManageTree"), setting, zNodes).expandAll(true); };
var addDiyDom = function (treeId, treeNode) { var pNode = treeNode.getParentNode(); var readWriteAuthority = treeNode.readWriteAuthority; var aObj = $("#" + treeNode.tId + "_a"); if (pNode) { var editStr = ""; if (readWriteAuthority == "1") { editStr += "<label class='isRead'>" + "<input class='a-radio' id='writeRead" + treeNode.id + "' value='1' type='radio' name='writeRead" + treeNode.id + "' checked/>" + "<span class='b-radio'></span>只读</label>"; editStr += "<label class='isRead'>" + "<input id='writeRead" + treeNode.id + "' class='a-radio' value='2' type='radio' name='writeRead" + treeNode.id + "' />" + "<span class='b-radio'></span>读写</label>"; } else { editStr += "<label class='isRead'>" + "<input class='a-radio' id='writeRead" + treeNode.id + "' value='1' type='radio' name='writeRead" + treeNode.id + "' />" + "<span class='b-radio'></span>只读</label>"; editStr += "<label class='isRead'>" + "<input id='writeRead" + treeNode.id + "' class='a-radio' value='2' type='radio' name='writeRead" + treeNode.id + "' checked />" + "<span class='b-radio'></span>读写</label>"; } aObj.append(editStr); } }; var hiddenNodes = []; var autoMatch = function (txtObj) { // 授权树初始化 var setting = { view: { selectedMulti: true, showLine: true, addDiyDom: addDiyDom }, data: { key: { name: "name" }, simpleData: { enable: true, idKey: "id", pIdKey: "pid", rootPId: null } }, check: { enable: true } }; var searchUserTree = $('#searchUserTree').val(); if (searchUserTree) { InitialTree(); var zTree = $.fn.zTree.getZTreeObj("userDataManageTree"); var nodeList = zTree.getNodesByParamFuzzy("name", searchUserTree); //parent hiddenNodes = zTree.transformToArray(nodeList); for (var n in hiddenNodes) { findParent(zTree, hiddenNodes[n]); } $.fn.zTree.destroy("userDataManageTree"); $.fn.zTree.init($("#userDataManageTree"), setting, hiddenNodes).expandAll(true); } else { InitialTree(); } }; function findParent(treeObj, node) { var pNode = node.getParentNode();//获取父节点 if (pNode != null && hiddenNodes.indexOf(pNode) == -1) { hiddenNodes.push(pNode); treeObj.removeChildNodes(pNode); } }