<script type="text/javascript" src="/js/ztreejs/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="/js/ztreejs/jquery.ztree.core.js"></script>
<script type="text/javascript" src="/js/ztreejs/jquery.ztree.excheck.js"></script>
var zNodes = [];
var setting = {
check : {
enable : true
},
data : {
simpleData : {
enable : true
}
}
};
function treeData(menuIds) {//menuIds需要回显的数据集合
$.ajax({
type : "GET",
url : "/manager/menu/getTreeData",
data : null,
dataType : "json",
success : function(e) {
if ("0" != e.code) {
layer.msg(e.msg);
return;
}
var data = e.data;
for (var i = 0; i < data.length; i++) {
var json = {};
json.id = data[i].id;
json.pId = data[i].parentId;
json.name = data[i].menuName;
json.open = true;
if (-1 != menuIds.indexOf(data[i].id)) {
json.checked = true;
}
zNodes.push(json);
}
$.fn.zTree.init($("#ztree"), setting, zNodes);
},
error : function(e) {
layer.msg("请求失败!");
}
});
}
$("#addMenu").click(function() {
layer.close(zindex);
$('#menuTree').hide();
var ztreeObj = $.fn.zTree.getZTreeObj("ztree");
var nodesArray = ztreeObj.getNodes();
var ids = "";
var names = "";
for (var i = 0; i < nodesArray.length; i++) {
var treeNode = nodesArray[i];
//此处treeNode 为当前节点
if (treeNode.isParent && treeNode.checked) {
ids += treeNode.id + ",";
names += treeNode.name + ",";
ids = getAllChildrenNodes(treeNode, ids, true);
names = getAllChildrenNodes(treeNode, names, false);
} else if (!treeNode.isParent && treeNode.checked) {
ids += treeNode.id + ",";
names += treeNode.name + ",";
}
}
console.log("id集合:" + ids);
console.log("name集合:" + names);
$.post("/manager/role/addMenus", {
"menuIds" : ids,
"roleId" : $("#roleId").val()
}, function(data) {
if (0 != data.code) {
return;
}
layer.msg(data.msg);
}, "json");
});
//使用了递归,得到叶子节点的数据
function getAllChildrenNodes(treeNode, result, isId) {
if (treeNode.isParent && treeNode.checked) {
var childrenNodes = treeNode.children;
if (childrenNodes) {
for (var i = 0; i < childrenNodes.length; i++) {
if (childrenNodes[i].isParent && childrenNodes[i].checked) {
result = getAllChildrenNodes(childrenNodes[i], result, isId);
} else if (childrenNodes[i].checked && isId) {
result += childrenNodes[i].id + ',';
} else if (childrenNodes[i].checked && !isId) {
result += childrenNodes[i].name + ',';
}
}
}
}
return result;
}