Foxtable(狐表)用户栏目Web开发 → [求助]求如何将周老师的llayui两级目录树改成三级?


  共有201人关注过本帖树形打印复制链接

主题:[求助]求如何将周老师的llayui两级目录树改成三级?

帅哥哟,离线,有人找我吗?
ahui010
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:96 积分:1074 威望:0 精华:0 注册:2018/8/3 10:02:00
[求助]求如何将周老师的llayui两级目录树改成三级?  发帖心情 Post By:2021/3/2 10:56:00 [只看该作者]


上次我改的那个三级目录树,还没有改好,我希望节点每级里面不要重复,这下面图中,第二级就有重复的了。


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20210302104941.png
图片点击可在新窗口打开查看

是我对map,forEach等函数不熟悉,改了几次,花了很长时间也没有改好。

案例是从周老师视频中的目录树知识点,想改成三级的,修改代码如下:



图片点击可在新窗口打开查看此主题相关图片如下:qq图片20210302105007.png
图片点击可在新窗口打开查看

我的修改的代码如下:


 success: function(res){
        var aa;   // 第一级
        var bb;   // 第二级
       res.forEach(function(item){
                item = item.split('|');
               if(aa != item[0]){
                     arr.push({
                    title:item[0],
                    children:$.map(res,function(v,i){
                                  v = v.split('|');
                                  if(item[0]==v[0] && bb!=v[1]){
                                        return {
                                                title:v[1],
                                               children:$.map(res,function(s,i){
                                                           s = s.split('|');
                                                             if(v[0]==s[0] && v[1]==s[1] && v[2]==s[2]){
                                                                                return {
                                                                                     title:s[2],
                                                                                         p:s[0] + "--"+ s[1] + "--"
                                                                                           }
                                                                                }
                                                               })
                                                         } 
                 
                                                  };
                                     bb = v[1]; 
                                       })
                                  })
                        };
                aa = item[0]
       });

现在生成的arr数组的数据结构如下:


[
title: "否",
children: [
                   {title: "非以下重点职业人员", children:[{title: "陈建军", p: "否--非以下重点职业人员--"}]},
                   {title: "非以下重点职业人员", children: [{title: "阙臻毅", p: "否--非以下重点职业人员--"}]},
                   {title: "非以下重点职业人员", children: [{title: "杨华", p: "否--非以下重点职业人员--"}]},
                   {title: "非以下重点职业人员", children: [{title: "杨进杰", p: "否--非以下重点职业人员--"}]},
                   {title: "非以下重点职业人员", children: [{title: "杨俊涛", p: "否--非以下重点职业人员--"}]},
                   {title: "非以下重点职业人员", children: [{title: "杨陆", p: "否--非以下重点职业人员--"}]},
                   {title: "非以下重点职业人员", children: [{title: "杨胜栋", p: "否--非以下重点职业人员--"}]},
                   {title: "非以下重点职业人员", children: [{title: "杨玉文", p: "否--非以下重点职业人员--"}]},
                   {title: "非以下重点职业人员", children: [{title: "杨志", p: "否--非以下重点职业人员--"}]},
                   {title: "冷链食品从业人员", children: [{title: "陈冬立", p: "否--冷链食品从业人员--"}]}
                ]
],
[
title: "涉外",
children: [
              {title: "进出口岸冷链货物人员", children: [{title: "伍红华", p: "涉外--进出口岸冷链货物人员--"}]}
              ]
],

[title: "涉疫",
children: [
                 {title: "非以下重点职业人员", children: [{title: "杨志刚", p: "涉疫--非以下重点职业人员--"}]}
               ]
]


但是我希望生成的arr数组是这个样的:

[
title: "否",
children: [
                   {title: "非以下重点职业人员", children:[
                                                                          {title: "陈建军", p: "否--非以下重点职业人员--"},
                                                                          {title: "阙臻毅", p: "否--非以下重点职业人员--"},
                                                                          {title: "杨华", p: "否--非以下重点职业人员--"},
                                                                          {title: "杨进杰", p: "否--非以下重点职业人员--"},
                                                                          {title: "杨俊涛", p: "否--非以下重点职业人员--"},
                                                                          {title: "杨陆", p: "否--非以下重点职业人员--"},
                                                                          {title: "杨胜栋", p: "否--非以下重点职业人员--"},
                                                                          {title: "杨玉文", p: "否--非以下重点职业人员--"},
                                                                          {title: "杨志", p: "否--非以下重点职业人员--"},
                                                                          {title: "陈冬立", p: "否--冷链食品从业人员--"}
                                                                        ]
                    }
              ]
],

[
title: "涉外",
children: [
              {title: "进出口岸冷链货物人员", children: [{title: "伍红华", p: "涉外--进出口岸冷链货物人员--"}]}
              ]
],

[title: "涉疫",
children: [
                 {title: "非以下重点职业人员", children: [{title: "杨志刚", p: "涉疫--非以下重点职业人员--"}]}
               ]
]




res数组的数据结构如下:

[
"否|非以下重点职业人员|陈建军",
"否|非以下重点职业人员|阙臻毅",
"否|非以下重点职业人员|杨华",
"否|非以下重点职业人员|杨进杰",
"否|非以下重点职业人员|杨俊涛",
"否|非以下重点职业人员|杨陆",
"否|非以下重点职业人员|杨胜栋",
"否|非以下重点职业人员|杨玉文",
"否|非以下重点职业人员|杨志",
"否|冷链食品从业人员|陈冬立",
"涉外|进出口岸冷链货物人员|伍红华",
"涉疫|非以下重点职业人员|杨志刚"
]
[此贴子已经被作者于2021/3/2 11:21:47编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:2263 积分:18513 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2021/3/2 17:55:00 [只看该作者]

var arr = [
"否|非以下重点职业人员|陈建军",
"否|非以下重点职业人员|阙臻毅",
"否|非以下重点职业人员|杨华",
"否|非以下重点职业人员|杨进杰",
"否|非以下重点职业人员|杨俊涛",
"否|非以下重点职业人员|杨陆",
"否|非以下重点职业人员|杨胜栋",
"否|非以下重点职业人员|杨玉文",
"否|非以下重点职业人员|杨志",
"否|冷链食品从业人员|陈冬立",
"涉外|进出口岸冷链货物人员|伍红华",
"涉疫|非以下重点职业人员|杨志刚"
];
arr = arr.map(function(item){
    return item.split('|')
});
var aa,bb,cc;
var newarr = [];
arr.forEach(function(item){
    if(aa != item[0]){
        newarr.push({
            title:item[0],
            children:$.map(arr,function(v){
                if(item[0]==v[0] && bb != v[1]){
                    bb = v[1]; 
                    return {
                        title:v[1],
                        children:$.map(arr,function(s){
                            if(v[0]==s[0] && v[1]==s[1] && cc!=s[2]){
                                cc = s[2];
                                return {
                                    title:s[2],
                                    p:s[0] + "--"+ s[1] + "--"
                                }
                            }
                        })
                    } 
                };
            })
        })
    };
    aa = item[0]
}) 


[本帖被加为精华]
 回到顶部