!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.15上传文件的大小配置修改spring.http.multipart改为spring.servlet.multipart
## 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))
.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()))
.collect(Collectors.toList());
per.setChild(child);
/**
*
* 2018.06.09
*
* @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;
}
.layui-nav-child dd{position:relative;margin-left: 10px}
.admin{
border: 0;
margin: 0;

View File

@ -11,7 +11,7 @@
<meta name="format-detection" content="telephone=no">
<title>后台管理系统</title>
<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" />
</head>

View File

@ -30,11 +30,19 @@ function initMenu(){
li.addClass("layui-nav-itemed");
}
li.append(a);
menu.append(li);
//二级菜单
var child2 = item.child;
if(child2 != null && child2.length > 0){
$.each(child2, function(j,item2){
//多级菜单
setChild(li, item.child)
});
}
});
}
function setChild(parentElement, child){
if(child != null && child.length > 0){
$.each(child, function(j,item2){
var ca = $("<a href='javascript:;'></a>");
ca.attr("data-url", item2.href);
ca.attr("lay-id", item2.id);
@ -52,13 +60,12 @@ function initMenu(){
var dl = $("<dl class='layui-nav-child'></dl>");
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">
<title></title>
<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>
<body>