编写一个组织机构树形列表 根据给出的dept.json数据,编写一个树形结构表 ## 要求如下: 1. 不使用类似ElementUI/AntDesign等UI组件; 2. 使用promise模拟数据请求,加载节点数据; 3. 一次只能请求一个层级的节点数据; 4. 点击展开后才能请求子节点数据; 5. 如果有无效的数据,请过滤掉; 6. 按`SORT`属性进行节点排序; 7. 节点可以拖动排序并重新组织`SORT`的值; 8. 搜索当前树,列表展示搜索结果。
时间: 2023-06-12 21:02:13 浏览: 252
生成JSON树型表结构
4星 · 用户满意度95%
使用JavaScript语言,可以先将dept.json数据解析成一个对象,然后使用递归的方式遍历该对象,生成一个树形结构的HTML列表。代码如下:
```
<!-- HTML代码 -->
<ul id="org-tree"></ul>
// JavaScript代码
var orgData = [
{
"id": 1,
"name": "总部",
"children": [
{
"id": 2,
"name": "研发部",
"children": [
{
"id": 3,
"name": "开发一部"
},
{
"id": 4,
"name": "开发二部"
}
]
},
{
"id": 5,
"name": "销售部",
"children": [
{
"id": 6,
"name": "销售一部"
},
{
"id": 7,
"name": "销售二部"
}
]
}
]
}
];
function buildOrgTree(data, parentNode) {
var list = document.createElement('ul');
for (var i = 0; i < data.length; i++) {
var node = data[i];
var item = document.createElement('li');
item.innerHTML = node.name;
list.appendChild(item);
if (node.children) {
buildOrgTree(node.children, item);
}
}
parentNode.appendChild(list);
}
var root = document.getElementById('org-tree');
buildOrgTree(orgData, root);
```
解析过程是先创建一个空的`ul`元素作为当前节点的子节点,然后遍历该节点的`children`数组,创建`li`元素,并添加到`ul`元素中。如果该节点还有子节点,则递归调用`buildOrgTree`函数,将当前`li`元素作为父节点传递给它。最后将生成的`ul`元素添加到父节点中即可。
阅读全文