level 1
wzhd_20078
楼主
$(function(){
var rel = '<s:property value="%{#parameters.zwork_ui_rel}"/>';
var container = $("#" + rel);
var setting = {
showLine : true,
checkable : true,
showIcon : false,
isSimpleData : true,
treeNodeKey : "id",
treeNodeParentKey : "pId"
};
try{
var treeNodes = <s:property value="text" escapeHtml="false"/>;
var treeDom = $("#rbacRolePermissionTree", container);
var rbacRolePermissionTree = treeDom.zTree(setting, treeNodes);
rbacRolePermissionTree.expandAll(true);
// 将ztree对象存储到DOM节点,用户树搜索
treeDom.data("rbacRolePermissionTree",rbacRolePermissionTree);
$("#rbacRolePermissionConfirm", container).bind("click",function(){
var checkedNodes = rbacRolePermissionTree.getCheckedNodes(true);
var selected = "";
for(var i = 0; i < checkedNodes.length; i++){
if("P" == checkedNodes[i].type){
selected += checkedNodes[i].id + "|";
}
}
$("#rbacRolePermissionSelectedIds", container).val(selected);
});
} catch(e) {
}
// 为搜索按钮绑定搜索js方法
$("#search", container).bind("click",function(){
// 获取ztree对象
var rbacRolePermissionTree = $("#rbacRolePermissionTree", container).data("rbacRolePermissionTree");
// 调用ztree搜索api进行搜索
var param = $("#permission_name").val();
var newTreeNodes = rbacRolePermissionTree.getNodesByParamFuzzy("name", param, null);
if (newTreeNodes && newTreeNodes.length>0) {
var msg = "找到节点信息: ";
for (var i=0; i<newTreeNodes.length; i++) {
msg += ("\n(" + (i+1) + ") tId=" + newTreeNodes[i].tId + ", name=" + newTreeNodes[i].name + ", pId=" + newTreeNodes[i].pId + ", level=" + newTreeNodes[i].level);
}
} else {
alert("没有找到匹配的节点,请更换搜索条件");
}
// 以搜索结果重新构造树,获取已搜索到节点的父节点以及子节点信息(递归获取所有)
var showTreeNodes = getParentNodes(newTreeNodes);
for (var i=0; i<showTreeNodes.length; i++) {
msg += ("\n(" + (i+1) + ") tId=" + showTreeNodes[i].tId + ", name=" + showTreeNodes[i].name + ", level=" + showTreeNodes[i].level);
}
alert(msg);
alert(showTreeNodes.length);
var rbacRolePermissionTree = $("#rbacRolePermissionTree", container).zTree(setting, showTreeNodes);
var nodes = rbacRolePermissionTree.getNodes();
rbacRolePermissionTree.expandAll(true);
});
});
function getParentNodes(treeNodes) {
var newTreeNodes = [];
for (var i=0; i<treeNodes.length; i++) {
newTreeNodes = getParentNodesById(treeNodes[i], newTreeNodes);
if (newTreeNodes && newTreeNodes.length>0) {
var msg = "找到节点信息: ";
for (var i=0; i<newTreeNodes.length; i++) {
msg += ("\n(" + (i+1) + ") tId=" + newTreeNodes[i].tId + ", name=" + newTreeNodes[i].name + ", pId=" + newTreeNodes[i].pId + ", level=" + newTreeNodes[i].level);
}
} else {
alert("没有找到匹配的节点,请更换搜索条件");
}
}
return newTreeNodes;
}
function getParentNodesById(node, newTreeNodes) {
if(node != undefined) {
var flag = isExist(node, newTreeNodes);
if(!flag) {
newTreeNodes.push(node);
}
if(node.parentNode != undefined && node.parentNode.id!=node.parentNode.pId) {
return getParentNodesById(node.parentNode, newTreeNodes);
} else {
return newTreeNodes;
}
}
}
function isExist(node, treeNodes) {
var flag = false;
if (treeNodes && treeNodes.length>0) {
for (var i=0; i<treeNodes.length; i++) {
if(treeNodes[i].id == node.id) {
flag = true;
}
}
}
return flag;
}
2016年05月24日 09点05分
1
var rel = '<s:property value="%{#parameters.zwork_ui_rel}"/>';
var container = $("#" + rel);
var setting = {
showLine : true,
checkable : true,
showIcon : false,
isSimpleData : true,
treeNodeKey : "id",
treeNodeParentKey : "pId"
};
try{
var treeNodes = <s:property value="text" escapeHtml="false"/>;
var treeDom = $("#rbacRolePermissionTree", container);
var rbacRolePermissionTree = treeDom.zTree(setting, treeNodes);
rbacRolePermissionTree.expandAll(true);
// 将ztree对象存储到DOM节点,用户树搜索
treeDom.data("rbacRolePermissionTree",rbacRolePermissionTree);
$("#rbacRolePermissionConfirm", container).bind("click",function(){
var checkedNodes = rbacRolePermissionTree.getCheckedNodes(true);
var selected = "";
for(var i = 0; i < checkedNodes.length; i++){
if("P" == checkedNodes[i].type){
selected += checkedNodes[i].id + "|";
}
}
$("#rbacRolePermissionSelectedIds", container).val(selected);
});
} catch(e) {
}
// 为搜索按钮绑定搜索js方法
$("#search", container).bind("click",function(){
// 获取ztree对象
var rbacRolePermissionTree = $("#rbacRolePermissionTree", container).data("rbacRolePermissionTree");
// 调用ztree搜索api进行搜索
var param = $("#permission_name").val();
var newTreeNodes = rbacRolePermissionTree.getNodesByParamFuzzy("name", param, null);
if (newTreeNodes && newTreeNodes.length>0) {
var msg = "找到节点信息: ";
for (var i=0; i<newTreeNodes.length; i++) {
msg += ("\n(" + (i+1) + ") tId=" + newTreeNodes[i].tId + ", name=" + newTreeNodes[i].name + ", pId=" + newTreeNodes[i].pId + ", level=" + newTreeNodes[i].level);
}
} else {
alert("没有找到匹配的节点,请更换搜索条件");
}
// 以搜索结果重新构造树,获取已搜索到节点的父节点以及子节点信息(递归获取所有)
var showTreeNodes = getParentNodes(newTreeNodes);
for (var i=0; i<showTreeNodes.length; i++) {
msg += ("\n(" + (i+1) + ") tId=" + showTreeNodes[i].tId + ", name=" + showTreeNodes[i].name + ", level=" + showTreeNodes[i].level);
}
alert(msg);
alert(showTreeNodes.length);
var rbacRolePermissionTree = $("#rbacRolePermissionTree", container).zTree(setting, showTreeNodes);
var nodes = rbacRolePermissionTree.getNodes();
rbacRolePermissionTree.expandAll(true);
});
});
function getParentNodes(treeNodes) {
var newTreeNodes = [];
for (var i=0; i<treeNodes.length; i++) {
newTreeNodes = getParentNodesById(treeNodes[i], newTreeNodes);
if (newTreeNodes && newTreeNodes.length>0) {
var msg = "找到节点信息: ";
for (var i=0; i<newTreeNodes.length; i++) {
msg += ("\n(" + (i+1) + ") tId=" + newTreeNodes[i].tId + ", name=" + newTreeNodes[i].name + ", pId=" + newTreeNodes[i].pId + ", level=" + newTreeNodes[i].level);
}
} else {
alert("没有找到匹配的节点,请更换搜索条件");
}
}
return newTreeNodes;
}
function getParentNodesById(node, newTreeNodes) {
if(node != undefined) {
var flag = isExist(node, newTreeNodes);
if(!flag) {
newTreeNodes.push(node);
}
if(node.parentNode != undefined && node.parentNode.id!=node.parentNode.pId) {
return getParentNodesById(node.parentNode, newTreeNodes);
} else {
return newTreeNodes;
}
}
}
function isExist(node, treeNodes) {
var flag = false;
if (treeNodes && treeNodes.length>0) {
for (var i=0; i<treeNodes.length; i++) {
if(treeNodes[i].id == node.id) {
flag = true;
}
}
}
return flag;
}