rebuildEntityTree = (value, arr) => {
if (!arr) {
return []
}
let newarr = [];
arr.forEach(element => {
if (element.text.indexOf(value) > -1) {
const ab = this.rebuildEntityTree(value, element.children);
const obj = {
...element,
//children: ab
}
newarr.push(obj);
} else {
if (element.children && element.children.length > 0) {
const ab = this.rebuildEntityTree(value, element.children);
const obj = {
...element,
children: ab
};
// newarr.push(obj);
if (ab && ab.length > 0) {
newarr.push(obj);
}
}
}
});
return newarr;
};
function showall(menu_list, parent,index) {
index++
for ( var i=0,len=menu_list.length;i<len;i++) {
// 如果有子节点,则遍历该子节点
if (menu_list[i].children.length > 0) {
// 创建一个子节点li
var oli ='<a href="#">' +
'<i class="'+menu_list[i].attributes.icon+'" ></i>' +
'<span class="nav-label" >'+menu_list[i].text+'</span>' +
'<span class="fa arrow"></span>' +
'</a>'
var li = $("<li class='child'></li>");
$(li).append($(oli))
// 将li的文本设置好,并马上添加一个空白的ul子节点,并且将这个li添加到父亲节点中
if(index==1){
$(li).append("<ul class='nav nav-second-level collapse'></ul>").appendTo(parent);
var classNm='nav nav-second-level collapse'
}else if(index==2){
$(li).append("<ul class='nav nav-third-level collapse'></ul>").appendTo(parent);
var classNm='nav nav-third-level collapse'
}else if(index==3){
$(li).append("<ul class='nav nav-fourth-level collapse'></ul>").appendTo(parent);
var classNm='nav nav-fourth-level collapse'
}
// 将空白的ul作为下一个递归遍历的父亲节点传入
showall(menu_list[i].children, $(li).children('ul'),index);
}
// 如果该节点没有子节点,则直接将该节点li以及文本创建好直接添加到父亲节点中
else {
var oli ='<a class="J_menuItem" href="'+menu_list[i].attributes.url+'">' +
'<i class="" ></i>' +
'<span class="nav-label" >'+menu_list[i].text+'</span>' +
'</a>';
$("<li class='child'></li>").append(oli).appendTo(parent);
}
}
}