parent
2fb9d92101
commit
c00aa92198
|
|
@ -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菜单渲染和对应接口,使之支持多级菜单
|
||||
|
|
|
|||
|
|
@ -55,19 +55,44 @@ 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);
|
||||
// });
|
||||
// }
|
||||
|
||||
/**
|
||||
* 菜单列表
|
||||
*
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -30,37 +30,44 @@ 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){
|
||||
var ca = $("<a href='javascript:;'></a>");
|
||||
ca.attr("data-url", item2.href);
|
||||
ca.attr("lay-id", item2.id);
|
||||
//多级菜单
|
||||
setChild(li, item.child)
|
||||
|
||||
var css2 = item2.css;
|
||||
if(css2!=null && css2!=""){
|
||||
ca.append("<i aria-hidden='true' class='fa " + css2 +"'></i>");
|
||||
}
|
||||
|
||||
ca.append("<cite>"+item2.name+"</cite>");
|
||||
|
||||
var dd = $("<dd></dd>");
|
||||
dd.append(ca);
|
||||
|
||||
var dl = $("<dl class='layui-nav-child'></dl>");
|
||||
dl.append(dd);
|
||||
|
||||
li.append(dl);
|
||||
});
|
||||
}
|
||||
menu.append(li);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
var css2 = item2.css;
|
||||
if(css2!=null && css2!=""){
|
||||
ca.append("<i aria-hidden='true' class='fa " + css2 +"'></i>");
|
||||
}
|
||||
|
||||
ca.append("<cite>"+item2.name+"</cite>");
|
||||
|
||||
var dd = $("<dd></dd>");
|
||||
dd.append(ca);
|
||||
|
||||
var dl = $("<dl class='layui-nav-child'></dl>");
|
||||
dl.append(dd);
|
||||
|
||||
parentElement.append(dl);
|
||||
|
||||
// 递归
|
||||
setChild(dd, item2.child);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// 登陆用户头像昵称
|
||||
showLoginInfo();
|
||||
function showLoginInfo(){
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Reference in New Issue