多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
``` 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) {} }) } ```