!13 支持多级菜单

Merge pull request !13 from zwzw1219/m-m
master
zwzw1219 2018-06-09 09:49:45 +08:00
parent 2fb9d92101
commit c00aa92198
8 changed files with 497 additions and 462 deletions

View File

@ -2,3 +2,4 @@
## 2018.03.05 spring boot 由1.5.10 升级到2.0.0 ## 2018.03.05 spring boot 由1.5.10 升级到2.0.0
## 2018.03.15上传文件的大小配置修改spring.http.multipart改为spring.servlet.multipart ## 2018.03.15上传文件的大小配置修改spring.http.multipart改为spring.servlet.multipart
## 2018.05.24作废DruidConfig类将druid改为配置的方式前缀为spring.datasource.druid ## 2018.05.24作废DruidConfig类将druid改为配置的方式前缀为spring.datasource.druid
## 2018.06.09 修改main.js菜单渲染和对应接口使之支持多级菜单

View File

@ -55,18 +55,43 @@ public class PermissionController {
final List<Permission> permissions = list.stream().filter(l -> l.getType().equals(1)) final List<Permission> permissions = list.stream().filter(l -> l.getType().equals(1))
.collect(Collectors.toList()); .collect(Collectors.toList());
setChild(permissions); // setChild(permissions);
//
// return permissions.stream().filter(p -> p.getParentId().equals(0L)).collect(Collectors.toList());
// 2018.06.09 支持多级菜单
List<Permission> firstLevel = permissions.stream().filter(p -> p.getParentId().equals(0L)).collect(Collectors.toList());
firstLevel.parallelStream().forEach(p -> {
setChild(p, permissions);
});
return permissions.stream().filter(p -> p.getParentId().equals(0L)).collect(Collectors.toList()); return firstLevel;
} }
private void setChild(List<Permission> permissions) { /**
permissions.parallelStream().forEach(per -> { *
List<Permission> child = permissions.stream().filter(p -> p.getParentId().equals(per.getId())) * 2018.06.09
.collect(Collectors.toList()); *
per.setChild(child); * @param p
* @param permissions
*/
private void setChild(Permission p, List<Permission> permissions) {
List<Permission> child = permissions.parallelStream().filter(a -> a.getParentId().equals(p.getId())).collect(Collectors.toList());
p.setChild(child);
if (!CollectionUtils.isEmpty(child)) {
child.parallelStream().forEach(c -> {
//递归设置子元素,多级菜单支持
setChild(c, permissions);
}); });
} }
}
// private void setChild(List<Permission> permissions) {
// permissions.parallelStream().forEach(per -> {
// List<Permission> child = permissions.stream().filter(p -> p.getParentId().equals(per.getId()))
// .collect(Collectors.toList());
// per.setChild(child);
// });
// }
/** /**
* *

View File

@ -253,6 +253,8 @@ body .site-demo-nav .layui-nav-item{line-height: 40px}
padding-left: 30px; padding-left: 30px;
} }
.layui-nav-child dd{position:relative;margin-left: 10px}
.admin{ .admin{
border: 0; border: 0;
margin: 0; margin: 0;

View File

@ -11,7 +11,7 @@
<meta name="format-detection" content="telephone=no"> <meta name="format-detection" content="telephone=no">
<title>后台管理系统</title> <title>后台管理系统</title>
<link rel="stylesheet" href="layui/css/layui.css" media="all" /> <link rel="stylesheet" href="layui/css/layui.css" media="all" />
<link rel="stylesheet" href="layui/css/global.css" media="all" /> <link rel="stylesheet" href="css/global.css" media="all" />
<link rel="stylesheet" href="css/font-awesome/css/font-awesome.css" media="all" /> <link rel="stylesheet" href="css/font-awesome/css/font-awesome.css" media="all" />
</head> </head>

View File

@ -30,11 +30,19 @@ function initMenu(){
li.addClass("layui-nav-itemed"); li.addClass("layui-nav-itemed");
} }
li.append(a); li.append(a);
menu.append(li);
//二级菜单 //多级菜单
var child2 = item.child; setChild(li, item.child)
if(child2 != null && child2.length > 0){
$.each(child2, function(j,item2){ });
}
});
}
function setChild(parentElement, child){
if(child != null && child.length > 0){
$.each(child, function(j,item2){
var ca = $("<a href='javascript:;'></a>"); var ca = $("<a href='javascript:;'></a>");
ca.attr("data-url", item2.href); ca.attr("data-url", item2.href);
ca.attr("lay-id", item2.id); ca.attr("lay-id", item2.id);
@ -52,13 +60,12 @@ function initMenu(){
var dl = $("<dl class='layui-nav-child'></dl>"); var dl = $("<dl class='layui-nav-child'></dl>");
dl.append(dd); dl.append(dd);
li.append(dl); parentElement.append(dl);
// 递归
setChild(dd, item2.child);
}); });
} }
menu.append(li);
});
}
});
} }
// 登陆用户头像昵称 // 登陆用户头像昵称

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<title></title> <title></title>
<link rel="stylesheet" href="../layui/css/layui.css" media="all" /> <link rel="stylesheet" href="../layui/css/layui.css" media="all" />
<link rel="stylesheet" href="../layui/css/global.css" media="all" /> <link rel="stylesheet" href="../css/global.css" media="all" />
</head> </head>
<body> <body>