/*isleaf为true时表示叶子节点即文件,false时表示文件夹*/
var data1=[{
"tid": "1",
"isleaf": false,
"text": "产品1",
"children": [{
"tid": "1-1",
"isleaf": false,
"text": "产品模拟",
"children": [{
"tid": "1-1-1",
"isleaf": false,
"text": "产品模拟"
}, {
"tid": "1-1-2",
"isleaf": true,
"text": "产品模拟"
}]
}, {
"tid": "1-2",
"isleaf": true,
"text": "产品模拟"
}]
},{
"tid": "2",
"isleaf": false,
"text": "产品2",
"children": [{
"tid": "2-1",
"isleaf": false,
"text": "产品模拟",
"children": [{
"tid": "2-1-1",
"isleaf": true,
"text": "产品模拟"
}, {
"tid": "2-1-2",
"isleaf": true,
"text": "产品模拟"
}]
}, {
"tid": "2-2",
"isleaf": true,
"text": "产品模拟"
}]
}]
var data2= [
{"tid": "1", "isleaf": false, "text": "产品1"},
{"tid": "2", "isleaf": false, "text": "产品2"},
{"tid": "1-1", "pid": "1", "isleaf": false, "text": "产品模拟"},
{"tid": "1-2", "pid": "1", "isleaf": true, "text": "产品模拟"},
{"tid": "2-1", "pid": "2", "isleaf": false, "text": "产品模拟"},
{"tid": "2-2", "pid": "2", "isleaf": true, "text": "产品模拟"},
{"tid": "1-1-1", "pid": "1-1", "isleaf": false, "text": "产品模拟"},
{"tid": "1-1-2", "pid": "1-1", "isleaf": true, "text": "产品模拟"},
{"tid": "2-1-1", "pid": "2-1", "isleaf": true, "text": "产品模拟"},
{"tid": "2-1-2", "pid": "2-1", "isleaf": true, "text": "产品模拟"},
];
在做一个树形插件功能(类似文件管理系统用户可增删改查),用户对dom进行操作时要对应到相应数据做增删改查,比如新建文件是直接增加一层数据传递给后台,删除直接就删除相应dom对应的tid那一层的数据再渲染dom;
初次拿到数据时是第一种格式然后渲染出dom,但很多时候,要把第一种格式转换成第二种,怎么写两个方法实现两种格式数据互相转换。
还有这种强交互的树形文件管理数据层应该怎么设计??有哪些要注意的??(比如删除一层数据后所有数据要重新便利一边赋新的id吗??)谢谢谢谢!!!
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
1、用树形插件的话就删除后服务端再重新遍历吧
2、操作DOM就隐藏掉数据,插件好像没有操作的方法吧,比如ZTree...
本质就是一颗树的层次遍历
那就遍历拿到的json,一层一层遍历下去,每次遍历后,把根的除了children属性的所有属性组织好push进一个数组,然后再遍历子树