
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 ? "" : 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 = ; 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);
}
}