87,904
社区成员
发帖
与我相关
我的任务
分享
//勾选单个角色拥有的权限
function getchecked(data){
console.log("in getchecked");
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
console.log("树数据"+zTree);
var modules = data;
//console.log("点击获取的权限:"+modules);
var nodes = zTree.getNodes();
console.log("nodes"+nodes);
let moduleNames = "";
for(var i = 0;i<modules.length;i++){
moduleNames += modules[i].moduleName;
if(i != modules.length-1){
moduleNames += ","
}
}
console.log("权限名"+moduleNames);
if(modules!=null && modules !=''){
for(var i = 0; i < moduleNames.length; i++){
var node = zTree.getNodeByParam("name",moduleNames[i]);
console.log(node);
for(var j = 0; j < nodes.length; j++){
if(node.equals(zTree.getNodeByParam("name",nodes[j].tId))){
zTree.selectNode(node);
zTree.checkNode(node, true, true);
}
}
}
}
//初使化所有被选中的节点
function initChecked(data){
console.log("in init");
show();
getchecked(data);
}
//获取全部权限
function show(){
console.log("in show");
$.ajax({
type: "GET",
url: "/pcm/role/getModule",
data: {},
dataType: "json",
success: function(data){
var module = tree(data.modules,'');
listdemo(module);
}
});
}
//加载树
function listdemo(data){
console.log("in listdemo");
$(".main-right").mCustomScrollbar({
theme:"minimal-dark",
scrollButtons:{
enable:true,
scrollType:"continuous",
scrollSpeed:20,
scrollAmount:40
},
horizontalScroll:false,
});
var setting = {
check: {
enable: true
},
data: {
simpleData: {
enable: false
}
}
};
var zNodes = data;
$.fn.zTree.init($("#treeDemo"), setting, zNodes);
}
var node = zTree.getNodeByParam("name",moduleNames[i]);
这个返回的node肯定都是null,还不明白??
等于你原来有3个模块叫模块1,模块2,模块3
你的代码执行后moduleNames='模块1,模块2,模块3',
下面的循环里,moduleNames[i]的值分别对应'模','块','1'……你这样node能匹配到才叫有鬼。
if(modules!=null && modules !=''){
for(var i = 0; i < moduleNames.length; i++){
var node = zTree.getNodeByParam("name",moduleNames[i]);
console.log(node);
for(var j = 0; j < nodes.length; j++){
if(node.equals(zTree.getNodeByParam("name",nodes[j].tId))){
zTree.selectNode(node);
zTree.checkNode(node, true, true);
}
}
}
这段代码里面,我用了if判断,怎么还会报null?
if(modules!=null && modules !=''){
for(var i = 0; i < moduleNames.length; i++){ // 你这里去遍历每个单独的字符串,下面这一行肯定永远都抓不到对应的值
var node = zTree.getNodeByParam("name",moduleNames[i]);
console.log(node);
for(var j = 0; j < nodes.length; j++){
if(node.equals(zTree.getNodeByParam("name",nodes[j].tId))){
zTree.selectNode(node);
zTree.checkNode(node, true, true);
}
}
}
if(modules!=null && modules !=''){
for(var i = 0; i < moduleNames.length; i++){
var node = zTree.getNodeByParam("name",moduleNames[i]);
console.log(node);
for(var j = 0; j < nodes.length; j++){
if(node.equals(zTree.getNodeByParam("name",nodes[j].tId))){
zTree.selectNode(node);
zTree.checkNode(node, true, true);
}
}
}
这段代码里面,我用了if判断,怎么还会报null? //初使化所有被选中的节点
function initChecked(data){
console.log("in init");
show(function(){
getchecked(data); // 把getchecked方法当做回调传入
});
}
//获取全部权限
function show(callback){
console.log("in show");
$.ajax({
type: "GET",
url: "/pcm/role/getModule",
data: {},
dataType: "json",
success: function(data){
var module = tree(data.modules,'');
listdemo(module);
callback && callback(); // 确定数据加载完成后,listdemo函数执行完成后,执行传入的回调函数。
}
});
}