Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wjsqjg
EasyAdmin
提交
7f62b751
E
EasyAdmin
项目概览
wjsqjg
/
EasyAdmin
与 Fork 源项目一致
Fork自
lakernote / EasyAdmin
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
EasyAdmin
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
7f62b751
编写于
10月 20, 2021
作者:
lakernote
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
(add)[整体](数据权限全新改版,支持指定到具体的mapper和method)
上级
21f7d442
变更
31
展开全部
隐藏空白更改
内联
并排
Showing
31 changed file
with
566 addition
and
4976 deletion
+566
-4976
README.md
README.md
+9
-5
sql/easy-admin.sql
sql/easy-admin.sql
+334
-4634
src/main/java/com/laker/admin/framework/ext/mybatis/LakerDataPermissionHandler.java
...min/framework/ext/mybatis/LakerDataPermissionHandler.java
+6
-7
src/main/java/com/laker/admin/framework/ext/mybatis/UserDataPower.java
.../com/laker/admin/framework/ext/mybatis/UserDataPower.java
+14
-0
src/main/java/com/laker/admin/framework/ext/mybatis/UserInfoAndPowers.java
.../laker/admin/framework/ext/mybatis/UserInfoAndPowers.java
+1
-2
src/main/java/com/laker/admin/framework/ext/satoken/SaTokenExtActionImpl.java
...ker/admin/framework/ext/satoken/SaTokenExtActionImpl.java
+2
-3
src/main/java/com/laker/admin/framework/ext/satoken/StpInterfaceImpl.java
...m/laker/admin/framework/ext/satoken/StpInterfaceImpl.java
+3
-3
src/main/java/com/laker/admin/module/sys/controller/LoginController.java
...om/laker/admin/module/sys/controller/LoginController.java
+3
-2
src/main/java/com/laker/admin/module/sys/controller/SysMenuController.java
.../laker/admin/module/sys/controller/SysMenuController.java
+4
-4
src/main/java/com/laker/admin/module/sys/controller/SysRoleController.java
.../laker/admin/module/sys/controller/SysRoleController.java
+24
-4
src/main/java/com/laker/admin/module/sys/entity/SysDataPower.java
.../java/com/laker/admin/module/sys/entity/SysDataPower.java
+0
-50
src/main/java/com/laker/admin/module/sys/entity/SysPower.java
...main/java/com/laker/admin/module/sys/entity/SysPower.java
+11
-3
src/main/java/com/laker/admin/module/sys/entity/SysRole.java
src/main/java/com/laker/admin/module/sys/entity/SysRole.java
+3
-4
src/main/java/com/laker/admin/module/sys/mapper/SysDataPowerMapper.java
...com/laker/admin/module/sys/mapper/SysDataPowerMapper.java
+0
-16
src/main/java/com/laker/admin/module/sys/mapper/SysMenuMapper.java
...java/com/laker/admin/module/sys/mapper/SysMenuMapper.java
+4
-4
src/main/java/com/laker/admin/module/sys/mapper/SysUserMapper.java
...java/com/laker/admin/module/sys/mapper/SysUserMapper.java
+4
-4
src/main/java/com/laker/admin/module/sys/pojo/LoginDto.java
src/main/java/com/laker/admin/module/sys/pojo/LoginDto.java
+1
-1
src/main/java/com/laker/admin/module/sys/service/ISysDataPowerService.java
.../laker/admin/module/sys/service/ISysDataPowerService.java
+0
-16
src/main/java/com/laker/admin/module/sys/service/ISysMenuService.java
...a/com/laker/admin/module/sys/service/ISysMenuService.java
+2
-2
src/main/java/com/laker/admin/module/sys/service/ISysUserService.java
...a/com/laker/admin/module/sys/service/ISysUserService.java
+2
-2
src/main/java/com/laker/admin/module/sys/service/impl/SysDataPowerServiceImpl.java
...dmin/module/sys/service/impl/SysDataPowerServiceImpl.java
+0
-20
src/main/java/com/laker/admin/module/sys/service/impl/SysMenuServiceImpl.java
...ker/admin/module/sys/service/impl/SysMenuServiceImpl.java
+8
-8
src/main/java/com/laker/admin/module/sys/service/impl/SysUserServiceImpl.java
...ker/admin/module/sys/service/impl/SysUserServiceImpl.java
+2
-2
src/main/resources/mapper/module.sys/SysDataPowerMapper.xml
src/main/resources/mapper/module.sys/SysDataPowerMapper.xml
+0
-19
src/main/resources/mapper/module.sys/SysMenuMapper.xml
src/main/resources/mapper/module.sys/SysMenuMapper.xml
+0
-26
web/admin/view/system/power.html
web/admin/view/system/power.html
+30
-9
web/admin/view/system/power/add.html
web/admin/view/system/power/add.html
+44
-10
web/admin/view/system/power/edit.html
web/admin/view/system/power/edit.html
+54
-10
web/admin/view/system/role.html
web/admin/view/system/role.html
+1
-55
web/admin/view/system/role/add.html
web/admin/view/system/role/add.html
+0
-24
web/admin/view/system/role/edit.html
web/admin/view/system/role/edit.html
+0
-27
未找到文件。
README.md
浏览文件 @
7f62b751
...
...
@@ -30,17 +30,19 @@
> 视频正在实时更新中,欢迎大家批评指导
#### 🌰 在线演示
🌽
**地址**
:
[
http://101.132.189.23:81/admin/login.html
](
http://101.132.189.23:81/admin/login.html
)
> **低配机轻点拍**,**穷比**✈️✈️✈️✈️✈️✈️✈️
-
**用户名/密码**
:
**laker**
/
**lakernote**
(老李提交请假申请)
-
**用户名/密码**
:
**laker**
/
**lakernote**
(
**普通员工**
-
老李提交请假申请)
-
**用户名/密码**
:
**yang**
/
**lakernote**
(杨总审批)
-
**用户名/密码**
:
**yang**
/
**lakernote**
(
**部门领导**
-
杨总审批)
-
**用户名/密码**
:
**zhang**
/
**lakernote**
(大于2天张总审批)
-
**用户名/密码**
:
**zhang**
/
**lakernote**
(
**公司领导**
-
大于2天张总审批)
> **当前处于开发阶段** ,由于我前端技术小白水平,开发进度较慢,还有很多功能未开发完成,有想一起开发的小伙伴,请加微信☎️【**lakernote**】联系我。
...
...
@@ -59,6 +61,7 @@
|
**基于SpringTask定时任务(支持动态CRUD任务)**
🐾 | ✅ |
[
基于Spring Task实现动态管理任务
](
https://blog.csdn.net/abu935009066/article/details/116142630
)
|
|
**在线WebLog、动态修改日志级别**
🐾 | ✅ |
[
在线WebLog、动态修改日志级别
](
https://blog.csdn.net/abu935009066/article/details/114121941
)
|
|
**保证服务的幂等性和防止重复请求**
🐾 | ✅ |
[
相关文档
](
https://blog.csdn.net/abu935009066/article/details/117471885
)
|
|
**独特的数据权限过滤功能**
🐾 | ✅ | |
|
**前端路由守卫**
| ❎ | |
|
**前端按钮控制**
| ❎ | |
...
...
@@ -263,6 +266,7 @@ ext_log // 影响前端代码生成路径D:\JT\easy-admin/web/admin/view/ext/
#### 🌺部署教程
**整体部署规划结构如下:**
...
...
@@ -332,13 +336,13 @@ web
### ☎️联系方式☎️
**个人微信: lakernote**
(进群加我拉你)
**个人微信: lakernote**
(进群加我拉你
,备注:easyadmin
)
![](
https://img-blog.csdnimg.cn/cf8ed2c013614143b346a453a9082232.jpg?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAbGFrZXJub3Rl,size_10,color_FFFFFF,t_70,g_se,x_16#pic_center
)
------------------------------------------------
**微信公众号**
:
**
Java大厂面试官
**
**微信公众号**
:
**
李哥聊架构
**
![](
https://img-blog.csdnimg.cn/2020110915544650.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FidTkzNTAwOTA2Ng==,size_16,color_FFFFFF,t_70#pic_center
)
\ No newline at end of file
sql/easy-admin.sql
浏览文件 @
7f62b751
此差异已折叠。
点击以展开。
src/main/java/com/laker/admin/framework/ext/mybatis/LakerDataPermissionHandler.java
浏览文件 @
7f62b751
...
...
@@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollUtil;
import
cn.hutool.core.util.StrUtil
;
import
com.baomidou.mybatisplus.extension.plugins.handler.DataPermissionHandler
;
import
com.laker.admin.framework.utils.EasyAdminSecurityUtils
;
import
com.laker.admin.module.sys.entity.SysDataPower
;
import
lombok.SneakyThrows
;
import
lombok.extern.slf4j.Slf4j
;
import
net.sf.jsqlparser.expression.Expression
;
...
...
@@ -48,25 +47,25 @@ public class LakerDataPermissionHandler implements DataPermissionHandler {
if
(
userInfoAndPowers
.
isSuperAdmin
())
{
return
where
;
}
List
<
Sys
DataPower
>
userDataPowers
=
userInfoAndPowers
.
getUserDataPowers
();
List
<
User
DataPower
>
userDataPowers
=
userInfoAndPowers
.
getUserDataPowers
();
if
(
CollUtil
.
isEmpty
(
userDataPowers
))
{
return
where
;
}
Optional
<
SysDataPower
>
dataPower
=
userDataPowers
.
stream
()
.
filter
(
sysDataPower
->
StrUtil
.
equalsIgnoreCase
(
mapper
,
sysDataPower
.
getMapper
()
)
&&
StrUtil
.
equalsIgnoreCase
(
method
,
sysDataPower
.
getMethod
()))
String
powerCode
=
mapper
+
"."
+
method
;
Optional
<
UserDataPower
>
dataPower
=
userDataPowers
.
stream
(
)
.
filter
(
sysDataPower
->
StrUtil
.
equalsIgnoreCase
(
powerCode
,
sysDataPower
.
getPowerCode
()))
.
findFirst
();
if
(!
dataPower
.
isPresent
())
{
return
where
;
}
try
{
// 1. 获取权限过滤相关信息
log
.
info
(
"进行权限过滤,dataPowerFilterType:{} , where: {},mappedStatementId: {}"
,
dataPower
.
get
().
getFilterType
(),
where
,
mappedStatementId
);
log
.
info
(
"进行权限过滤,dataPowerFilterType:{} , where: {},mappedStatementId: {}"
,
dataPower
.
get
().
get
Data
FilterType
(),
where
,
mappedStatementId
);
Expression
expression
=
new
HexValue
(
" 1 = 1 "
);
if
(
where
==
null
)
{
where
=
expression
;
}
switch
(
dataPower
.
get
().
getFilterType
())
{
switch
(
dataPower
.
get
().
get
Data
FilterType
())
{
// 查看全部
case
ALL:
return
where
;
...
...
src/main/java/com/laker/admin/framework/ext/mybatis/UserDataPower.java
0 → 100644
浏览文件 @
7f62b751
package
com.laker.admin.framework.ext.mybatis
;
import
com.laker.admin.module.enums.DataFilterTypeEnum
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
UserDataPower
{
private
String
powerCode
;
private
DataFilterTypeEnum
dataFilterType
;
}
src/main/java/com/laker/admin/framework/ext/mybatis/UserInfoAndPowers.java
浏览文件 @
7f62b751
package
com.laker.admin.framework.ext.mybatis
;
import
com.laker.admin.module.sys.entity.SysDataPower
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
...
...
@@ -25,7 +24,7 @@ public class UserInfoAndPowers {
private
String
userTableAlias
;
private
String
sql
;
private
Set
<
Long
>
deptIds
;
private
List
<
Sys
DataPower
>
userDataPowers
;
private
List
<
User
DataPower
>
userDataPowers
;
public
Boolean
isSuperAdmin
()
{
return
userId
.
longValue
()
==
1L
;
...
...
src/main/java/com/laker/admin/framework/ext/satoken/SaTokenExtActionImpl.java
浏览文件 @
7f62b751
...
...
@@ -3,9 +3,8 @@ package com.laker.admin.framework.ext.satoken;
import
cn.dev33.satoken.action.SaTokenActionDefaultImpl
;
import
cn.dev33.satoken.annotation.SaCheckLogin
;
import
cn.dev33.satoken.stp.StpUtil
;
import
com.laker.admin.framework.utils.EasyAdminSecurityUtils
;
import
com.laker.admin.framework.ext.mybatis.UserInfoAndPowers
;
import
com.laker.admin.
module.enums.DataFilterTypeEnum
;
import
com.laker.admin.
framework.utils.EasyAdminSecurityUtils
;
import
org.springframework.stereotype.Component
;
import
java.lang.reflect.AnnotatedElement
;
...
...
@@ -26,7 +25,7 @@ public class SaTokenExtActionImpl extends SaTokenActionDefaultImpl {
@Override
protected
void
validateAnnotation
(
AnnotatedElement
target
)
{
UserInfoAndPowers
currentUserInfo
=
EasyAdminSecurityUtils
.
getCurrentUserInfo
();
if
(
currentUserInfo
.
isSuperAdmin
())
{
if
(
currentUserInfo
!=
null
&&
currentUserInfo
.
isSuperAdmin
())
{
return
;
}
super
.
validateAnnotation
(
target
);
...
...
src/main/java/com/laker/admin/framework/ext/satoken/StpInterfaceImpl.java
浏览文件 @
7f62b751
...
...
@@ -2,7 +2,7 @@ package com.laker.admin.framework.ext.satoken;
import
cn.dev33.satoken.stp.StpInterface
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.laker.admin.module.sys.entity.Sys
Menu
;
import
com.laker.admin.module.sys.entity.Sys
Power
;
import
com.laker.admin.module.sys.entity.SysRolePower
;
import
com.laker.admin.module.sys.entity.SysUserRole
;
import
com.laker.admin.module.sys.service.ISysMenuService
;
...
...
@@ -35,8 +35,8 @@ public class StpInterfaceImpl implements StpInterface {
List
<
SysRolePower
>
rolePowerLists
=
sysRolePowerService
.
list
(
Wrappers
.<
SysRolePower
>
lambdaQuery
().
in
(
SysRolePower:
:
getRoleId
,
roleIds
));
List
<
Long
>
powerIds
=
rolePowerLists
.
stream
().
map
(
sysRolePower
->
sysRolePower
.
getPowerId
()).
collect
(
Collectors
.
toList
());
// 2是按钮
List
<
Sys
Menu
>
sysMenus
=
menuService
.
list
(
Wrappers
.<
SysMenu
>
lambdaQuery
().
in
(
SysMenu:
:
getMenuId
,
powerIds
).
eq
(
SysMenu
:
:
getType
,
2
));
List
<
String
>
strings
=
sys
Menu
s
.
stream
().
map
(
sysMenu
->
sysMenu
.
getPowerCode
()).
collect
(
Collectors
.
toList
());
List
<
Sys
Power
>
sysPowers
=
menuService
.
list
(
Wrappers
.<
SysPower
>
lambdaQuery
().
in
(
SysPower:
:
getMenuId
,
powerIds
).
eq
(
SysPower
:
:
getType
,
2
));
List
<
String
>
strings
=
sys
Power
s
.
stream
().
map
(
sysMenu
->
sysMenu
.
getPowerCode
()).
collect
(
Collectors
.
toList
());
return
strings
;
}
...
...
src/main/java/com/laker/admin/module/sys/controller/LoginController.java
浏览文件 @
7f62b751
...
...
@@ -13,15 +13,16 @@ import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import
com.laker.admin.framework.EasyAdminConstants
;
import
com.laker.admin.framework.aop.Metrics
;
import
com.laker.admin.framework.cache.ICache
;
import
com.laker.admin.framework.ext.mybatis.UserDataPower
;
import
com.laker.admin.framework.ext.mybatis.UserInfoAndPowers
;
import
com.laker.admin.framework.ext.satoken.MySaTokenListener
;
import
com.laker.admin.framework.ext.satoken.OnlineUser
;
import
com.laker.admin.framework.model.PageResponse
;
import
com.laker.admin.framework.model.Response
;
import
com.laker.admin.framework.utils.PageDtoUtil
;
import
com.laker.admin.module.sys.entity.SysDataPower
;
import
com.laker.admin.module.sys.entity.SysDept
;
import
com.laker.admin.module.sys.entity.SysUser
;
import
com.laker.admin.module.sys.pojo.LoginDto
;
import
com.laker.admin.module.sys.service.ISysDeptService
;
import
com.laker.admin.module.sys.service.ISysRoleService
;
import
com.laker.admin.module.sys.service.ISysUserRoleService
;
...
...
@@ -75,7 +76,7 @@ public class LoginController {
}
StpUtil
.
login
(
sysUser
.
getUserId
());
// 获取用户的数据权限
List
<
Sys
DataPower
>
userDataPowers
=
sysUserService
.
getUserDataPowers
(
sysUser
.
getUserId
());
List
<
User
DataPower
>
userDataPowers
=
sysUserService
.
getUserDataPowers
(
sysUser
.
getUserId
());
UserInfoAndPowers
.
UserInfoAndPowersBuilder
userInfoAndPowersBuilder
=
UserInfoAndPowers
.
builder
()
.
deptId
(
sysUser
.
getDeptId
())
.
userId
(
sysUser
.
getUserId
())
...
...
src/main/java/com/laker/admin/module/sys/controller/SysMenuController.java
浏览文件 @
7f62b751
...
...
@@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.laker.admin.framework.model.Response
;
import
com.laker.admin.framework.aop.Metrics
;
import
com.laker.admin.module.sys.entity.Sys
Menu
;
import
com.laker.admin.module.sys.entity.Sys
Power
;
import
com.laker.admin.module.sys.pojo.MenuVo
;
import
com.laker.admin.module.sys.service.ISysMenuService
;
import
io.swagger.annotations.ApiOperation
;
...
...
@@ -36,7 +36,7 @@ public class SysMenuController {
public
Response
pageAll
(
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
long
current
,
@RequestParam
(
required
=
false
,
defaultValue
=
"10"
)
long
size
)
{
Page
roadPage
=
new
Page
<>(
current
,
size
);
LambdaQueryWrapper
<
Sys
Menu
>
queryWrapper
=
new
QueryWrapper
().
lambda
();
LambdaQueryWrapper
<
Sys
Power
>
queryWrapper
=
new
QueryWrapper
().
lambda
();
Page
pageList
=
sysMenuService
.
page
(
roadPage
,
queryWrapper
);
return
Response
.
ok
(
pageList
);
}
...
...
@@ -45,14 +45,14 @@ public class SysMenuController {
@GetMapping
(
"/list"
)
@ApiOperation
(
value
=
"系统菜单表分页查询"
)
public
Response
list
()
{
List
<
Sys
Menu
>
list
=
sysMenuService
.
list
(
Wrappers
.<
SysMenu
>
lambdaQuery
().
orderByAsc
(
SysMenu
:
:
getSort
));
List
<
Sys
Power
>
list
=
sysMenuService
.
list
(
Wrappers
.<
SysPower
>
lambdaQuery
().
orderByAsc
(
SysPower
:
:
getSort
));
return
Response
.
ok
(
list
);
}
@PostMapping
@ApiOperation
(
value
=
"新增或者更新系统菜单表"
)
@SaCheckPermission
(
"menu.update"
)
public
Response
saveOrUpdate
(
@RequestBody
Sys
Menu
param
)
{
public
Response
saveOrUpdate
(
@RequestBody
Sys
Power
param
)
{
return
Response
.
ok
(
sysMenuService
.
saveOrUpdate
(
param
));
}
...
...
src/main/java/com/laker/admin/module/sys/controller/SysRoleController.java
浏览文件 @
7f62b751
...
...
@@ -5,11 +5,12 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.laker.admin.framework.aop.Metrics
;
import
com.laker.admin.framework.exception.BusinessException
;
import
com.laker.admin.framework.model.PageResponse
;
import
com.laker.admin.framework.model.Response
;
import
com.laker.admin.framework.model.ResultTree
;
import
com.laker.admin.framework.aop.Metrics
;
import
com.laker.admin.module.sys.entity.SysMenu
;
import
com.laker.admin.module.sys.entity.SysPower
;
import
com.laker.admin.module.sys.entity.SysRole
;
import
com.laker.admin.module.sys.entity.SysRolePower
;
import
com.laker.admin.module.sys.service.ISysMenuService
;
...
...
@@ -50,7 +51,7 @@ public class SysRoleController {
Integer
roleType
)
{
Page
roadPage
=
new
Page
<>(
current
,
size
);
LambdaQueryWrapper
<
SysRole
>
queryWrapper
=
new
QueryWrapper
().
lambda
();
queryWrapper
.
eq
(
SysRole:
:
getRoleType
,
roleType
);
queryWrapper
.
eq
(
roleType
!=
null
,
SysRole:
:
getRoleType
,
roleType
);
Page
pageList
=
sysRoleService
.
page
(
roadPage
,
queryWrapper
);
return
PageResponse
.
ok
(
pageList
.
getRecords
(),
pageList
.
getTotal
());
}
...
...
@@ -69,10 +70,29 @@ public class SysRoleController {
}
/**
* 根据角色id查询角色权限
* 如果角色是菜单角色 则剔除数据权限
* 如果角色是数据权限 则剔除非数据权限
*
* @param roleId
* @return
*/
@GetMapping
(
"/getRolePower"
)
@ApiOperation
(
value
=
"根据角色id查询角色权限"
)
public
ResultTree
getRolePower
(
Long
roleId
)
{
List
<
SysMenu
>
allPower
=
sysMenuService
.
list
(
null
);
SysRole
role
=
sysRoleService
.
getById
(
roleId
);
if
(
role
==
null
)
{
throw
new
BusinessException
(
"角色不存在"
);
}
List
<
SysPower
>
allPower
=
null
;
// 菜单角色
if
(
role
.
getRoleType
().
equals
(
SysRole
.
ROLE_TYPE_MENU
))
{
allPower
=
sysMenuService
.
list
(
Wrappers
.<
SysPower
>
lambdaQuery
().
ne
(
SysPower:
:
getType
,
3
));
}
else
{
allPower
=
sysMenuService
.
list
(
Wrappers
.<
SysPower
>
lambdaQuery
().
ne
(
SysPower:
:
getType
,
2
));
}
List
<
SysRolePower
>
myPower
=
sysRolePowerService
.
list
(
Wrappers
.<
SysRolePower
>
lambdaQuery
().
eq
(
SysRolePower:
:
getRoleId
,
roleId
));
allPower
.
forEach
(
sysPower
->
{
myPower
.
forEach
(
sysRolePower
->
{
...
...
src/main/java/com/laker/admin/module/sys/entity/SysDataPower.java
已删除
100644 → 0
浏览文件 @
21f7d442
package
com.laker.admin.module.sys.entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.laker.admin.module.enums.DataFilterTypeEnum
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 系统数据权限
* </p>
*
* @author laker
* @since 2021-10-14
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
SysDataPower
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 数据权限id
*/
@TableId
(
value
=
"data_power_id"
,
type
=
IdType
.
AUTO
)
private
Long
dataPowerId
;
/**
* mapper名称
*/
private
String
mapper
;
/**
* 方法名称
*/
private
String
method
;
/**
* 权限类型
*/
private
DataFilterTypeEnum
filterType
;
private
LocalDateTime
createTime
;
}
src/main/java/com/laker/admin/module/sys/entity/Sys
Menu
.java
→
src/main/java/com/laker/admin/module/sys/entity/Sys
Power
.java
浏览文件 @
7f62b751
...
...
@@ -3,6 +3,7 @@ package com.laker.admin.module.sys.entity;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.laker.admin.module.enums.DataFilterTypeEnum
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
...
...
@@ -11,7 +12,7 @@ import java.time.LocalDateTime;
/**
* <p>
* 系统
菜单
表
* 系统
权限
表
* </p>
*
* @author laker
...
...
@@ -19,7 +20,7 @@ import java.time.LocalDateTime;
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
Sys
Menu
implements
Serializable
{
public
class
Sys
Power
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
...
...
@@ -70,8 +71,15 @@ public class SysMenu implements Serializable {
private
String
remark
;
private
Integer
type
;
/**
* 如果是数据权限类型,则为数据权限标识 ExtLeaveMapper.selectPage Mapper名称+方法名称
*/
private
String
powerCode
;
/**
* 权限类型
*/
private
DataFilterTypeEnum
dataFilterType
;
/**
* 创建时间
*/
...
...
src/main/java/com/laker/admin/module/sys/entity/SysRole.java
浏览文件 @
7f62b751
...
...
@@ -56,12 +56,11 @@ public class SysRole implements Serializable {
private
LocalDateTime
createTime
;
/**
* 1是菜单接口角色,2为数据角色
*/
private
Integer
roleType
;
private
DataFilterTypeEnum
dataType
;
private
String
dataSql
;
/**
* 提供前端 显示
*/
...
...
src/main/java/com/laker/admin/module/sys/mapper/SysDataPowerMapper.java
已删除
100644 → 0
浏览文件 @
21f7d442
package
com.laker.admin.module.sys.mapper
;
import
com.laker.admin.module.sys.entity.SysDataPower
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* <p>
* 系统数据权限 Mapper 接口
* </p>
*
* @author laker
* @since 2021-10-14
*/
public
interface
SysDataPowerMapper
extends
BaseMapper
<
SysDataPower
>
{
}
src/main/java/com/laker/admin/module/sys/mapper/SysMenuMapper.java
浏览文件 @
7f62b751
package
com.laker.admin.module.sys.mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.laker.admin.module.sys.entity.Sys
Menu
;
import
com.laker.admin.module.sys.entity.Sys
Power
;
import
org.apache.ibatis.annotations.Select
;
import
java.util.List
;
...
...
@@ -14,8 +14,8 @@ import java.util.List;
* @author laker
* @since 2021-08-04
*/
public
interface
SysMenuMapper
extends
BaseMapper
<
Sys
Menu
>
{
public
interface
SysMenuMapper
extends
BaseMapper
<
Sys
Power
>
{
@Select
(
"select * from sys_
menu
where enable = #{enable} order by sort"
)
List
<
Sys
Menu
>
findAllByStatusOrderBySort
(
Boolean
enable
);
@Select
(
"select * from sys_
power
where enable = #{enable} order by sort"
)
List
<
Sys
Power
>
findAllByStatusOrderBySort
(
Boolean
enable
);
}
src/main/java/com/laker/admin/module/sys/mapper/SysUserMapper.java
浏览文件 @
7f62b751
package
com.laker.admin.module.sys.mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.laker.admin.
module.sys.entity.Sys
DataPower
;
import
com.laker.admin.
framework.ext.mybatis.User
DataPower
;
import
com.laker.admin.module.sys.entity.SysUser
;
import
org.apache.ibatis.annotations.Select
;
...
...
@@ -23,10 +23,10 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
* @param userId
* @return
*/
@Select
(
"select
distinct dp.* from sys_data_power dp
"
+
" inner join sys_role_power rw on
dp.data_power_id = rw.power
_id"
+
@Select
(
"select
p.* from sys_power p
"
+
" inner join sys_role_power rw on
rw.power_id = p.menu
_id"
+
" inner join sys_user_role ur on rw.role_id = ur.role_id"
+
" inner join sys_role r on r.role_id = ur.role_id"
+
" where ur.user_id = #{userId} and r.role_type = 2"
)
List
<
Sys
DataPower
>
getUserDataPowers
(
Long
userId
);
List
<
User
DataPower
>
getUserDataPowers
(
Long
userId
);
}
src/main/java/com/laker/admin/module/sys/
controller
/LoginDto.java
→
src/main/java/com/laker/admin/module/sys/
pojo
/LoginDto.java
浏览文件 @
7f62b751
package
com.laker.admin.module.sys.
controller
;
package
com.laker.admin.module.sys.
pojo
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.Data
;
...
...
src/main/java/com/laker/admin/module/sys/service/ISysDataPowerService.java
已删除
100644 → 0
浏览文件 @
21f7d442
package
com.laker.admin.module.sys.service
;
import
com.laker.admin.module.sys.entity.SysDataPower
;
import
com.baomidou.mybatisplus.extension.service.IService
;
/**
* <p>
* 系统数据权限 服务类
* </p>
*
* @author laker
* @since 2021-10-14
*/
public
interface
ISysDataPowerService
extends
IService
<
SysDataPower
>
{
}
src/main/java/com/laker/admin/module/sys/service/ISysMenuService.java
浏览文件 @
7f62b751
package
com.laker.admin.module.sys.service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.laker.admin.module.sys.entity.Sys
Menu
;
import
com.laker.admin.module.sys.entity.Sys
Power
;
import
com.laker.admin.module.sys.pojo.MenuVo
;
import
java.util.List
;
...
...
@@ -14,6 +14,6 @@ import java.util.List;
* @author laker
* @since 2021-08-04
*/
public
interface
ISysMenuService
extends
IService
<
Sys
Menu
>
{
public
interface
ISysMenuService
extends
IService
<
Sys
Power
>
{
List
<
MenuVo
>
menu
();
}
src/main/java/com/laker/admin/module/sys/service/ISysUserService.java
浏览文件 @
7f62b751
package
com.laker.admin.module.sys.service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.laker.admin.
module.sys.entity.Sys
DataPower
;
import
com.laker.admin.
framework.ext.mybatis.User
DataPower
;
import
com.laker.admin.module.sys.entity.SysUser
;
import
java.util.List
;
...
...
@@ -25,5 +25,5 @@ public interface ISysUserService extends IService<SysUser> {
* @param userId
* @return
*/
List
<
Sys
DataPower
>
getUserDataPowers
(
Long
userId
);
List
<
User
DataPower
>
getUserDataPowers
(
Long
userId
);
}
src/main/java/com/laker/admin/module/sys/service/impl/SysDataPowerServiceImpl.java
已删除
100644 → 0
浏览文件 @
21f7d442
package
com.laker.admin.module.sys.service.impl
;
import
com.laker.admin.module.sys.entity.SysDataPower
;
import
com.laker.admin.module.sys.mapper.SysDataPowerMapper
;
import
com.laker.admin.module.sys.service.ISysDataPowerService
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.springframework.stereotype.Service
;
/**
* <p>
* 系统数据权限 服务实现类
* </p>
*
* @author laker
* @since 2021-10-14
*/
@Service
public
class
SysDataPowerServiceImpl
extends
ServiceImpl
<
SysDataPowerMapper
,
SysDataPower
>
implements
ISysDataPowerService
{
}
src/main/java/com/laker/admin/module/sys/service/impl/SysMenuServiceImpl.java
浏览文件 @
7f62b751
...
...
@@ -3,7 +3,7 @@ package com.laker.admin.module.sys.service.impl;
import
cn.dev33.satoken.stp.StpUtil
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.laker.admin.module.sys.entity.Sys
Menu
;
import
com.laker.admin.module.sys.entity.Sys
Power
;
import
com.laker.admin.module.sys.entity.SysRolePower
;
import
com.laker.admin.module.sys.entity.SysUserRole
;
import
com.laker.admin.module.sys.mapper.SysMenuMapper
;
...
...
@@ -29,7 +29,7 @@ import java.util.stream.Collectors;
* @since 2021-08-04
*/
@Service
public
class
SysMenuServiceImpl
extends
ServiceImpl
<
SysMenuMapper
,
Sys
Menu
>
implements
ISysMenuService
{
public
class
SysMenuServiceImpl
extends
ServiceImpl
<
SysMenuMapper
,
Sys
Power
>
implements
ISysMenuService
{
@Autowired
ISysUserRoleService
sysUserRoleService
;
...
...
@@ -43,15 +43,15 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
@Override
public
List
<
MenuVo
>
menu
()
{
Long
loginId
=
StpUtil
.
getLoginIdAsLong
();
List
<
Sys
Menu
>
sysMenu
s
=
null
;
List
<
Sys
Power
>
sysPower
s
=
null
;
// 超级管理员开玩笑
if
(
loginId
.
longValue
()
==
1L
)
{
sys
Menu
s
=
sysMenuMapper
.
findAllByStatusOrderBySort
(
true
);
sys
Power
s
=
sysMenuMapper
.
findAllByStatusOrderBySort
(
true
);
}
else
{
sys
Menu
s
=
getSysMenusPowerByLoginUser
(
loginId
);
sys
Power
s
=
getSysMenusPowerByLoginUser
(
loginId
);
}
List
<
MenuVo
>
menuInfo
=
new
ArrayList
<>();
for
(
Sys
Menu
e
:
sysMenu
s
)
{
for
(
Sys
Power
e
:
sysPower
s
)
{
MenuVo
menuVO
=
new
MenuVo
();
menuVO
.
setId
(
e
.
getMenuId
());
menuVO
.
setPid
(
e
.
getPid
());
...
...
@@ -66,12 +66,12 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
return
TreeUtil
.
toTree
(
menuInfo
,
0L
);
}
private
List
<
Sys
Menu
>
getSysMenusPowerByLoginUser
(
Long
loginId
)
{
private
List
<
Sys
Power
>
getSysMenusPowerByLoginUser
(
Long
loginId
)
{
List
<
SysUserRole
>
userRoles
=
sysUserRoleService
.
list
(
Wrappers
.<
SysUserRole
>
lambdaQuery
().
eq
(
SysUserRole:
:
getUserId
,
loginId
));
List
<
Long
>
roleIds
=
userRoles
.
stream
().
map
(
sysUserRole
->
sysUserRole
.
getRoleId
()).
collect
(
Collectors
.
toList
());
List
<
SysRolePower
>
rolePowerLists
=
sysRolePowerService
.
list
(
Wrappers
.<
SysRolePower
>
lambdaQuery
().
in
(
SysRolePower:
:
getRoleId
,
roleIds
));
List
<
Long
>
powerIds
=
rolePowerLists
.
stream
().
map
(
sysRolePower
->
sysRolePower
.
getPowerId
()).
collect
(
Collectors
.
toList
());
return
menuService
.
list
(
Wrappers
.<
Sys
Menu
>
lambdaQuery
().
in
(
SysMenu:
:
getMenuId
,
powerIds
).
eq
(
SysMenu:
:
getEnable
,
true
).
orderByAsc
(
SysMenu
:
:
getSort
));
return
menuService
.
list
(
Wrappers
.<
Sys
Power
>
lambdaQuery
().
in
(
SysPower:
:
getMenuId
,
powerIds
).
eq
(
SysPower:
:
getEnable
,
true
).
orderByAsc
(
SysPower
:
:
getSort
));
}
}
src/main/java/com/laker/admin/module/sys/service/impl/SysUserServiceImpl.java
浏览文件 @
7f62b751
package
com.laker.admin.module.sys.service.impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.laker.admin.
module.sys.entity.Sys
DataPower
;
import
com.laker.admin.
framework.ext.mybatis.User
DataPower
;
import
com.laker.admin.module.sys.entity.SysUser
;
import
com.laker.admin.module.sys.mapper.SysDeptMapper
;
import
com.laker.admin.module.sys.mapper.SysUserMapper
;
...
...
@@ -35,7 +35,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
}
@Override
public
List
<
Sys
DataPower
>
getUserDataPowers
(
Long
userId
)
{
public
List
<
User
DataPower
>
getUserDataPowers
(
Long
userId
)
{
return
this
.
getBaseMapper
().
getUserDataPowers
(
userId
);
}
}
src/main/resources/mapper/module.sys/SysDataPowerMapper.xml
已删除
100644 → 0
浏览文件 @
21f7d442
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.laker.admin.module.sys.mapper.SysDataPowerMapper"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"com.laker.admin.module.sys.entity.SysDataPower"
>
<id
column=
"data_power_id"
property=
"dataPowerId"
/>
<result
column=
"mapper"
property=
"mapper"
/>
<result
column=
"method"
property=
"method"
/>
<result
column=
"filter_type"
property=
"filterType"
/>
<result
column=
"create_time"
property=
"createTime"
/>
</resultMap>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
data_power_id, mapper, method, filter_type, create_time
</sql>
</mapper>
src/main/resources/mapper/module.sys/SysMenuMapper.xml
已删除
100644 → 0
浏览文件 @
21f7d442
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.laker.admin.module.sys.mapper.SysMenuMapper"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"com.laker.admin.module.sys.entity.SysMenu"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"pid"
property=
"pid"
/>
<result
column=
"title"
property=
"title"
/>
<result
column=
"icon"
property=
"icon"
/>
<result
column=
"href"
property=
"href"
/>
<result
column=
"target"
property=
"target"
/>
<result
column=
"sort"
property=
"sort"
/>
<result
column=
"status"
property=
"status"
/>
<result
column=
"remark"
property=
"remark"
/>
<result
column=
"create_at"
property=
"createAt"
/>
<result
column=
"update_at"
property=
"updateAt"
/>
<result
column=
"delete_at"
property=
"deleteAt"
/>
</resultMap>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
id, pid, title, icon, href, target, sort, status, remark, create_at, update_at, delete_at
</sql>
</mapper>
web/admin/view/system/power.html
浏览文件 @
7f62b751
...
...
@@ -42,9 +42,11 @@
{{
#
if
(
d
.
type
==
'
0
'
)
{
}}
<
span
style
=
"
color: #2dc26b
"
>
目录
<
/span
>
{{
#
}
else
if
(
d
.
type
==
'
1
'
){
}}
<
span
style
=
"
color: #1E9FFF
"
>
菜单
<
/span
>
<
span
style
=
"
color: #1E9FFF
"
>
&
nbsp
&
nbsp
菜单
<
/span
>
{{
#
}
else
if
(
d
.
type
==
'
2
'
){
}}
<
span
style
=
"
color: red
"
>
按钮
<
/span
>
<
span
style
=
"
color: #eb7350
"
>&
nbsp
&
nbsp
&
nbsp
&
nbsp接口
<
/span
>
{{
#
}
else
if
(
d
.
type
==
'
3
'
){
}}
<
span
style
=
"
color: red
"
>&
nbsp
&
nbsp
&
nbsp
&
nbsp数据
<
/span
>
{{
#
}
}}
</script>
...
...
@@ -86,13 +88,32 @@
cols
:
[
[
{
type
:
'
checkbox
'
},
{
field
:
'
title
'
,
minWidth
:
200
,
title
:
'
菜单
名称
'
},
{
field
:
'
icon
'
,
title
:
'
图标
'
,
templet
:
'
#icon
'
},
{
field
:
'
title
'
,
minWidth
:
100
,
title
:
'
名称
'
},
{
field
:
'
icon
'
,
width
:
60
,
title
:
'
图标
'
,
templet
:
'
#icon
'
},
{
field
:
'
type
'
,
title
:
'
权限类型
'
,
templet
:
'
#power-type
'
},
{
field
:
'
powerCode
'
,
title
:
'
权限标识
'
},
{
field
:
'
enable
'
,
title
:
'
是否可用
'
,
templet
:
'
#power-enable
'
},
{
field
:
'
sort
'
,
title
:
'
排序
'
},
{
title
:
'
操作
'
,
templet
:
'
#power-bar
'
,
width
:
150
,
align
:
'
center
'
}
{
field
:
'
href
'
,
title
:
'
菜单路径
'
,
width
:
380
},
{
field
:
'
powerCode
'
,
title
:
'
权限标识
'
,
width
:
200
},
{
title
:
'
数据权限
'
,
field
:
'
dataFilterType
'
,
align
:
'
center
'
,
width
:
100
,
templet
:
function
(
d
)
{
if
(
d
.
dataFilterType
===
'
ALL
'
)
{
return
'
<span style="color: red;">全部</span>
'
}
if
(
d
.
dataFilterType
===
'
DEPT
'
)
{
return
'
<span style="color:red;">本部门</span>
'
}
if
(
d
.
dataFilterType
===
'
SELF
'
)
{
return
'
<span style="color: red;">本人</span>
'
}
return
''
}
},
{
field
:
'
enable
'
,
title
:
'
是否可用
'
,
templet
:
'
#power-enable
'
,
width
:
100
},
{
field
:
'
sort
'
,
title
:
'
排序
'
,
width
:
60
},
{
title
:
'
操作
'
,
templet
:
'
#power-bar
'
,
width
:
150
,
align
:
'
center
'
,
width
:
100
}
]
]
});
...
...
@@ -160,7 +181,7 @@
type
:
2
,
title
:
'
修改
'
,
shade
:
0.1
,
area
:
[
'
450px
'
,
'
5
00px
'
],
area
:
[
'
500px
'
,
'
6
00px
'
],
content
:
MODULE_PATH
+
'
edit.html?menuId=
'
+
obj
.
data
.
menuId
});
}
...
...
web/admin/view/system/power/add.html
浏览文件 @
7f62b751
...
...
@@ -16,17 +16,11 @@
<ul
id=
"selectParent"
name=
"pid"
class=
"dtree"
data-id=
"-1"
></ul>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
名称
</label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"title"
lay-verify=
"title"
autocomplete=
"off"
placeholder=
"菜单名称"
class=
"layui-input"
>
</div>
</div>
<div
class=
"layui-form-item"
id=
"powerCodeItem"
>
<label
class=
"layui-form-label"
>
标识
</label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
id=
"powerCode"
name=
"powerCode"
autocomplete=
"off"
placeholder=
"权限标识"
<input
type=
"text"
name=
"title"
lay-verify=
"title"
autocomplete=
"off"
placeholder=
"名称"
class=
"layui-input"
>
</div>
</div>
...
...
@@ -35,9 +29,18 @@
<div
class=
"layui-input-block"
>
<input
type=
"radio"
lay-filter=
"powerType"
name=
"type"
value=
"0"
title=
"目录"
>
<input
type=
"radio"
lay-filter=
"powerType"
name=
"type"
value=
"1"
title=
"菜单"
checked
>
<input
type=
"radio"
lay-filter=
"powerType"
name=
"type"
value=
"2"
title=
"按钮"
>
<input
type=
"radio"
lay-filter=
"powerType"
name=
"type"
value=
"2"
title=
"接口"
>
<input
type=
"radio"
lay-filter=
"powerType"
name=
"type"
value=
"3"
title=
"数据"
>
</div>
</div>
<div
class=
"layui-form-item"
id=
"powerCodeItem"
>
<label
class=
"layui-form-label"
>
标识
</label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
id=
"powerCode"
name=
"powerCode"
autocomplete=
"off"
placeholder=
"权限标识"
class=
"layui-input"
>
</div>
</div>
<div
class=
"layui-form-item"
id=
"powerUrlItem"
>
<label
class=
"layui-form-label"
>
路径
</label>
<div
class=
"layui-input-block"
>
...
...
@@ -55,12 +58,26 @@
</select>
</div>
</div>
<div
class=
"layui-form-item"
>
<div
class=
"layui-form-item"
id=
"iconItem"
>
<label
class=
"layui-form-label"
>
图标
</label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
id=
"icon"
name=
"icon"
lay-filter=
"icon"
class=
"layui-input"
>
</div>
</div>
<div
class=
"layui-form-item"
id=
"dataFilterType"
>
<label
class=
"layui-form-label"
>
数据权限
</label>
<div
class=
"layui-input-block"
>
<select
name=
"dataFilterType"
lay-filter=
"dataTypeFilter"
>
<option
value=
"ALL"
selected
>
全部
</option>
<option
value=
"DEPT"
>
本人所在组织机构
</option>
<option
value=
"SELF"
>
本人
</option>
<!-- <option value="DEPT_SETS">自定义组织机构</option>-->
<!-- <option value="DIY">自定义sql过滤</option>-->
</select>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
排序
</label>
<div
class=
"layui-input-block"
>
...
...
@@ -96,6 +113,9 @@
$
(
"
#powerUrlItem
"
).
show
();
$
(
"
#powerCodeItem
"
).
hide
();
$
(
"
#openTypeItem
"
).
show
();
$
(
"
#iconItem
"
).
hide
();
$
(
"
#dataFilterType
"
).
hide
();
$
(
"
#dataFilterType
"
).
val
(
"
ALL
"
);
$
(
"
#powerCode
"
).
val
(
""
);
easyAdmin
.
httpGet
(
"
/sys/menu/selectTree
"
,
function
(
result
)
{
...
...
@@ -117,7 +137,9 @@
if
(
this
.
value
==
'
0
'
)
{
$
(
"
#powerUrlItem
"
).
hide
();
$
(
"
#powerCodeItem
"
).
hide
();
$
(
"
#iconItem
"
).
show
();
$
(
"
#openTypeItem
"
).
hide
();
$
(
"
#dataFilterType
"
).
hide
();
$
(
"
#powerUrl
"
).
val
(
""
);
$
(
"
#powerCode
"
).
val
(
""
);
$
(
"
#openType
"
).
val
(
""
);
...
...
@@ -125,11 +147,23 @@
$
(
"
#powerUrlItem
"
).
show
();
$
(
"
#powerCodeItem
"
).
hide
();
$
(
"
#openTypeItem
"
).
show
();
$
(
"
#dataFilterType
"
).
hide
();
$
(
"
#iconItem
"
).
hide
();
$
(
"
#powerCode
"
).
val
(
""
);
}
else
if
(
this
.
value
==
'
2
'
)
{
$
(
"
#powerUrlItem
"
).
hide
();
$
(
"
#openTypeItem
"
).
hide
();
$
(
"
#dataFilterType
"
).
hide
();
$
(
"
#powerCodeItem
"
).
show
();
$
(
"
#iconItem
"
).
hide
();
$
(
"
#powerUrl
"
).
val
(
""
);
$
(
"
#openType
"
).
val
(
""
);
}
else
if
(
this
.
value
==
'
3
'
)
{
$
(
"
#powerUrlItem
"
).
hide
();
$
(
"
#openTypeItem
"
).
hide
();
$
(
"
#powerCodeItem
"
).
show
();
$
(
"
#dataFilterType
"
).
show
();
$
(
"
#iconItem
"
).
hide
();
$
(
"
#powerUrl
"
).
val
(
""
);
$
(
"
#openType
"
).
val
(
""
);
}
...
...
web/admin/view/system/power/edit.html
浏览文件 @
7f62b751
...
...
@@ -19,14 +19,7 @@
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
名称
</label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"title"
lay-verify=
"title"
autocomplete=
"off"
placeholder=
"菜单名称"
class=
"layui-input"
>
</div>
</div>
<div
class=
"layui-form-item"
id=
"powerCodeItem"
>
<label
class=
"layui-form-label"
>
标识
</label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
id=
"powerCode"
name=
"powerCode"
autocomplete=
"off"
placeholder=
"权限标识"
<input
type=
"text"
name=
"title"
lay-verify=
"title"
autocomplete=
"off"
placeholder=
"名称"
class=
"layui-input"
>
</div>
</div>
...
...
@@ -35,9 +28,18 @@
<div
class=
"layui-input-block"
>
<input
type=
"radio"
lay-filter=
"powerType"
name=
"type"
value=
"0"
title=
"目录"
>
<input
type=
"radio"
lay-filter=
"powerType"
name=
"type"
value=
"1"
title=
"菜单"
checked
>
<input
type=
"radio"
lay-filter=
"powerType"
name=
"type"
value=
"2"
title=
"按钮"
>
<input
type=
"radio"
lay-filter=
"powerType"
name=
"type"
value=
"2"
title=
"接口"
>
<input
type=
"radio"
lay-filter=
"powerType"
name=
"type"
value=
"3"
title=
"数据"
>
</div>
</div>
<div
class=
"layui-form-item"
id=
"powerCodeItem"
>
<label
class=
"layui-form-label"
>
标识
</label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
id=
"powerCode"
name=
"powerCode"
autocomplete=
"off"
placeholder=
"权限标识"
class=
"layui-input"
>
</div>
</div>
<div
class=
"layui-form-item"
id=
"powerUrlItem"
>
<label
class=
"layui-form-label"
>
路径
</label>
<div
class=
"layui-input-block"
>
...
...
@@ -55,12 +57,26 @@
</select>
</div>
</div>
<div
class=
"layui-form-item"
>
<div
class=
"layui-form-item"
id=
"iconItem"
>
<label
class=
"layui-form-label"
>
图标
</label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
id=
"icon"
name=
"icon"
lay-filter=
"icon"
class=
"layui-input"
>
</div>
</div>
<div
class=
"layui-form-item"
id=
"dataFilterType"
>
<label
class=
"layui-form-label"
>
数据权限
</label>
<div
class=
"layui-input-block"
>
<select
name=
"dataFilterType"
lay-filter=
"dataTypeFilter"
>
<option
value=
"ALL"
selected
>
全部
</option>
<option
value=
"DEPT"
>
本人所在组织机构
</option>
<option
value=
"SELF"
>
本人
</option>
<!-- <option value="DEPT_SETS">自定义组织机构</option>-->
<!-- <option value="DIY">自定义sql过滤</option>-->
</select>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
排序
</label>
<div
class=
"layui-input-block"
>
...
...
@@ -161,18 +177,32 @@
$
(
"
#powerUrlItem
"
).
hide
();
$
(
"
#powerCodeItem
"
).
hide
();
$
(
"
#openTypeItem
"
).
hide
();
$
(
"
#iconItem
"
).
show
();
$
(
"
#dataFilterType
"
).
hide
();
$
(
"
#powerUrl
"
).
val
(
""
);
$
(
"
#powerCode
"
).
val
(
""
);
$
(
"
#openType
"
).
val
(
""
);
}
else
if
(
this
.
value
==
'
1
'
)
{
$
(
"
#powerUrlItem
"
).
show
();
$
(
"
#powerCodeItem
"
).
hide
();
$
(
"
#iconItem
"
).
hide
();
$
(
"
#dataFilterType
"
).
hide
();
$
(
"
#openTypeItem
"
).
show
();
$
(
"
#powerCode
"
).
val
(
""
);
}
else
if
(
this
.
value
==
'
2
'
)
{
$
(
"
#powerUrlItem
"
).
hide
();
$
(
"
#openTypeItem
"
).
hide
();
$
(
"
#iconItem
"
).
hide
();
$
(
"
#dataFilterType
"
).
hide
();
$
(
"
#powerCodeItem
"
).
show
();
$
(
"
#powerUrl
"
).
val
(
""
);
$
(
"
#openType
"
).
val
(
""
);
}
else
if
(
this
.
value
==
'
3
'
)
{
$
(
"
#powerUrlItem
"
).
hide
();
$
(
"
#iconItem
"
).
hide
();
$
(
"
#openTypeItem
"
).
hide
();
$
(
"
#powerCodeItem
"
).
show
();
$
(
"
#dataFilterType
"
).
show
();
$
(
"
#powerUrl
"
).
val
(
""
);
$
(
"
#openType
"
).
val
(
""
);
}
...
...
@@ -195,18 +225,32 @@
$
(
"
#powerUrlItem
"
).
hide
();
$
(
"
#powerCodeItem
"
).
hide
();
$
(
"
#openTypeItem
"
).
hide
();
$
(
"
#dataFilterType
"
).
hide
();
$
(
"
#iconItem
"
).
show
();
$
(
"
#powerUrl
"
).
val
(
""
);
$
(
"
#powerCode
"
).
val
(
""
);
$
(
"
#openType
"
).
val
(
""
);
}
else
if
(
type
==
'
1
'
)
{
$
(
"
#powerUrlItem
"
).
show
();
$
(
"
#powerCodeItem
"
).
hide
();
$
(
"
#iconItem
"
).
hide
();
$
(
"
#dataFilterType
"
).
hide
();
$
(
"
#openTypeItem
"
).
show
();
$
(
"
#powerCode
"
).
val
(
""
);
}
else
if
(
type
==
'
2
'
)
{
$
(
"
#powerUrlItem
"
).
hide
();
$
(
"
#openTypeItem
"
).
hide
();
$
(
"
#powerCodeItem
"
).
show
();
$
(
"
#dataFilterType
"
).
hide
();
$
(
"
#iconItem
"
).
hide
();
$
(
"
#powerUrl
"
).
val
(
""
);
$
(
"
#openType
"
).
val
(
""
);
}
else
if
(
type
==
'
3
'
)
{
$
(
"
#powerUrlItem
"
).
hide
();
$
(
"
#openTypeItem
"
).
hide
();
$
(
"
#powerCodeItem
"
).
show
();
$
(
"
#dataFilterType
"
).
show
();
$
(
"
#iconItem
"
).
hide
();
$
(
"
#powerUrl
"
).
val
(
""
);
$
(
"
#openType
"
).
val
(
""
);
}
...
...
web/admin/view/system/role.html
浏览文件 @
7f62b751
...
...
@@ -11,15 +11,11 @@
<div
class=
"layui-tab layui-tab-card"
lay-filter=
"test"
>
<ul
class=
"layui-tab-title"
>
<li
class=
"layui-this"
>
权限角色
</li>
<li>
数据角色
</li>
</ul>
<div
class=
"layui-tab-content"
>
<div
class=
"layui-tab-item layui-show"
>
<table
id=
"role-table"
lay-filter=
"role-table"
></table>
</div>
<div
class=
"layui-tab-item"
>
<table
id=
"data-role-table"
lay-filter=
"role-table"
></table>
</div>
</div>
</div>
</div>
...
...
@@ -45,13 +41,6 @@
<
/button
>
</script>
<script
type=
"text/html"
id=
"data-role-bar"
>
<
button
class
=
"
pear-btn pear-btn-primary pear-btn-sm
"
lay
-
event
=
"
edit
"
><
i
class
=
"
layui-icon layui-icon-edit
"
><
/i
>
<
/button
>
<
button
class
=
"
pear-btn pear-btn-danger pear-btn-sm
"
lay
-
event
=
"
remove
"
><
i
class
=
"
layui-icon layui-icon-delete
"
><
/i
>
<
/button
>
</script>
<script
type=
"text/html"
id=
"role-enable"
>
<
input
type
=
"
checkbox
"
name
=
"
enable
"
value
=
"
{{d.roleId}}
"
lay
-
skin
=
"
switch
"
lay
-
text
=
"
启用|禁用
"
lay
-
filter
=
"
role-enable
"
{{
d
.
enable
?
'
checked
'
:
''
}}
>
...
...
@@ -80,7 +69,7 @@
let
cols
=
[
[
{
type
:
'
checkbox
'
},
{
title
:
'
角色名
'
,
field
:
'
roleName
'
,
align
:
'
center
'
,
width
:
100
},
{
title
:
'
角色名
'
,
field
:
'
roleName
'
,
align
:
'
center
'
},
{
title
:
'
Key值
'
,
field
:
'
roleCode
'
,
align
:
'
center
'
},
{
title
:
'
角色类型
'
,
field
:
'
roleType
'
,
align
:
'
center
'
,
templet
:
'
#role-type
'
},
{
title
:
'
描述
'
,
field
:
'
details
'
,
align
:
'
center
'
},
...
...
@@ -91,7 +80,6 @@
easyAdmin
.
tableRender
({
elem
:
'
#role-table
'
,
url
:
'
/sys/role
'
,
where
:
{
roleType
:
1
},
page
:
true
,
cols
:
cols
,
skin
:
'
line
'
,
...
...
@@ -102,48 +90,6 @@
},
'
filter
'
,
'
print
'
,
'
exports
'
]
});
easyAdmin
.
tableRender
({
elem
:
'
#data-role-table
'
,
where
:
{
roleType
:
2
},
url
:
'
/sys/role
'
,
page
:
true
,
cols
:
[
[
{
type
:
'
checkbox
'
},
{
title
:
'
角色名
'
,
field
:
'
roleName
'
,
align
:
'
center
'
,
width
:
150
},
{
title
:
'
Key值
'
,
field
:
'
roleCode
'
,
align
:
'
center
'
},
{
title
:
'
角色类型
'
,
field
:
'
roleType
'
,
align
:
'
center
'
,
templet
:
'
#role-type
'
},
{
title
:
'
数据权限
'
,
field
:
'
dataType
'
,
align
:
'
center
'
,
templet
:
function
(
d
)
{
if
(
d
.
dataType
===
'
ALL
'
)
{
return
'
<span style="color: #9a6e3a;">全部</span>
'
}
if
(
d
.
dataType
===
'
DEPT
'
)
{
return
'
<span style="color: #9a6e3a;">本部门</span>
'
}
if
(
d
.
dataType
===
'
SELF
'
)
{
return
'
<span style="color: #9a6e3a;">本人</span>
'
}
return
'
<span style="color: #9a6e3a;">未知</span>
'
}
},
{
title
:
'
权限sql
'
,
field
:
'
dataSql
'
,
align
:
'
center
'
},
{
title
:
'
描述
'
,
field
:
'
details
'
,
align
:
'
center
'
},
{
title
:
'
操作
'
,
toolbar
:
'
#data-role-bar
'
,
align
:
'
center
'
,
width
:
195
}
]
],
skin
:
'
line
'
,
toolbar
:
'
#role-toolbar
'
,
defaultToolbar
:
[{
layEvent
:
'
refresh
'
,
icon
:
'
layui-icon-refresh
'
,
},
'
filter
'
,
'
print
'
,
'
exports
'
]
});
table
.
on
(
'
tool(role-table)
'
,
function
(
obj
)
{
if
(
obj
.
event
===
'
remove
'
)
{
window
.
remove
(
obj
);
...
...
web/admin/view/system/role/add.html
浏览文件 @
7f62b751
...
...
@@ -38,19 +38,6 @@
<input
type=
"radio"
name=
"roleType"
lay-filter=
"roleType"
value=
"2"
title=
"数据"
>
</div>
</div>
<div
class=
"layui-form-item"
id=
"dataType"
>
<label
class=
"layui-form-label"
>
数据权限
</label>
<div
class=
"layui-input-block"
>
<select
name=
"dataType"
lay-filter=
"dataTypeFilter"
>
<option
value=
"ALL"
selected
>
全部
</option>
<option
value=
"DEPT"
>
本人所在组织机构
</option>
<option
value=
"SELF"
>
本人
</option>
<!-- <option value="DEPT_SETS">自定义组织机构</option>-->
<!-- <option value="DIY">自定义sql过滤</option>-->
</select>
</div>
</div>
<div
class=
"layui-form-item layui-form-text"
>
<label
class=
"layui-form-label"
>
描述
</label>
<div
class=
"layui-input-block"
>
...
...
@@ -78,18 +65,7 @@
<script>
layui
.
use
([
'
form
'
,
'
jquery
'
,
'
easyAdmin
'
],
function
()
{
let
form
=
layui
.
form
;
let
$
=
layui
.
jquery
;
let
easyAdmin
=
layui
.
easyAdmin
;
$
(
"
#dataType
"
).
hide
();
$
(
"
#dataType
"
).
val
(
"
ALL
"
);
form
.
on
(
"
radio(roleType)
"
,
function
(
data
)
{
if
(
this
.
value
==
'
1
'
)
{
$
(
"
#dataType
"
).
hide
();
$
(
"
#dataType
"
).
val
(
""
);
}
else
if
(
this
.
value
==
'
2
'
)
{
$
(
"
#dataType
"
).
show
();
}
});
form
.
on
(
'
submit(role-save)
'
,
function
(
data
)
{
easyAdmin
.
http
({
...
...
web/admin/view/system/role/edit.html
浏览文件 @
7f62b751
...
...
@@ -46,19 +46,6 @@
</div>
</div>
<div
class=
"layui-form-item"
id=
"dataType"
>
<label
class=
"layui-form-label"
>
数据权限
</label>
<div
class=
"layui-input-block"
>
<select
name=
"dataType"
lay-filter=
"dataTypeFilter"
>
<option
value=
"ALL"
selected
>
全部
</option>
<option
value=
"DEPT"
>
本人所在组织机构
</option>
<option
value=
"SELF"
>
本人
</option>
<!-- <option value="DEPT_SETS">自定义组织机构</option>-->
<!-- <option value="DIY">自定义sql过滤</option>-->
</select>
</div>
</div>
<div
class=
"layui-form-item layui-form-text"
>
<label
class=
"layui-form-label"
>
描述
</label>
<div
class=
"layui-input-block"
>
...
...
@@ -122,25 +109,11 @@
if
(
result
.
success
)
{
// 表单数据回显
form
.
val
(
"
edit
"
,
result
.
data
);
if
(
result
.
data
.
roleType
==
'
1
'
)
{
$
(
"
#dataType
"
).
hide
();
$
(
"
#dataType
"
).
val
(
"
ALL
"
);
}
else
if
(
result
.
data
.
roleType
==
'
2
'
)
{
$
(
"
#dataType
"
).
show
();
}
}
else
{
layer
.
msg
(
result
.
msg
,
{
icon
:
2
,
time
:
1000
});
}
}
});
form
.
on
(
"
radio(roleType)
"
,
function
(
data
)
{
if
(
this
.
value
==
'
1
'
)
{
$
(
"
#dataType
"
).
hide
();
$
(
"
#dataType
"
).
val
(
"
ALL
"
);
}
else
if
(
this
.
value
==
'
2
'
)
{
$
(
"
#dataType
"
).
show
();
}
});
})
</script>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录