```
layui.pagedone = function (d) {
//树
var nodes = [];
// 思路: 使用对象属性特性,缓存每个MenuID对应的节点对象,用于判断对应的上级在不在,如果在,则可直接将节点挂接到其上级菜单节点下;不在则将节点放到根节点上
// rels 用于 建立MenuID 与 节点的关系
var tables = d.tables, len = tables.length, rels = {};
//for循环遍历树的级别
for (var i = 0; i < len; i++) {
//forEach遍历级别里面的数据,然后push到一个数组里
tables[i].forEach(function (item) {
//debugger
var m = {
name: item.Name,
id: item.ID,
sex: item.Sex,
children: []
};
//看缓存的 MenuID 对象中是否有 对应节点
if (rels[item.PreID]) {
// 有则放到 对应节点的子节点中
rels[item.PreID].children.push(m);
} else { // 如果没有对应节点, 放根节点
nodes.push(m);
}
// 给对象属性赋值,建立 ID 与 节点之间的关系
rels[item.ID] = m;
});
}
var tree = layui.atree({
elem: '#admin-personnel-people' //指定元素
, skin: 'as' //设定皮肤
//,target: '_blank' //是否新选项卡打开(比如节点返回href才有效)
// drag: true,
, spreadAll: true
, props: {
addBtnLabel: '新增',
deleteBtnLabel: '删除',
reviseBtnLabel: '修改',
name: 'name',
id: 'id',
children: 'children',
spread: 'spread'
}
, nodes: nodes
, click: function (item) {}
, addClick: function (item, elem, add) {}
, deleteClick: function (item, elem, done) {}
, reviseClick: function (item, elem, done) {}
})
}
```