//treeData数据,titleName需要把哪个参数改成title,expend是否默认展开:需要的话加‘expand’参数,不需要的话不加,contextmenu是否需要右键菜单
creatTreeData(treeData, titleName, expand, contextmenu) {
treeData = JSON.parse(JSON.stringify(treeData));
//构建根节点
var rootData = [];
for (var i = 0; i < treeData.length; i++) {
treeData[i].title = treeData[i][titleName];
//treeData[i].checked = treeData[i].Checked;
if (expand) {
treeData[i].expand = true;
}
//if (contextmenu) {
// treeData[i].contextmenu = true;
//}
if (treeData[i].pId == '##') {
treeData[i].disabled = true;
rootData.push(treeData[i]);
}
}
//到此处,根节点构建完毕,开始循环遍历数组,往根节点上挂
for (var i = 0; i < rootData.length; i++) {
var currentNode = rootData[i];
createChildrenData(treeData, currentNode, currentNode.id);
}
function createChildrenData(treeData, currentNode, parentId) {
currentNode.isParentNode = false;
for (var j = 0; j < treeData.length; j++) {
var childrenNode = treeData[j];
if (childrenNode.pId == parentId) {
currentNode.isParentNode = true;
if (currentNode.children == null || currentNode.children.length == 0) {
currentNode.children = [];
currentNode.children = [childrenNode];
} else if (currentNode.children.length > 0) {
currentNode.children.push(childrenNode);
}
createChildrenData(treeData, childrenNode, childrenNode.id);
}
}
}
return rootData;
}
扁平化数据改为嵌套数组,适用于iview中tree组件
最新推荐文章于 2023-05-31 13:40:56 发布