Commit be2ba5be283bd085ad65ba2a0029c4d8021e28e3
1 parent
2651f9bc
完成角色的授权的功能
Showing
7 changed files
with
25 additions
and
406 deletions
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java
| ... | ... | @@ -8,14 +8,14 @@ import com.ruoyi.system.domain.vo.RouterVo; |
| 8 | 8 | |
| 9 | 9 | /** |
| 10 | 10 | * 菜单 业务层 |
| 11 | - * | |
| 11 | + * | |
| 12 | 12 | * @author ruoyi |
| 13 | 13 | */ |
| 14 | 14 | public interface ISysMenuService |
| 15 | 15 | { |
| 16 | 16 | /** |
| 17 | 17 | * 根据用户查询系统菜单列表 |
| 18 | - * | |
| 18 | + * | |
| 19 | 19 | * @param userId 用户ID |
| 20 | 20 | * @return 菜单列表 |
| 21 | 21 | */ |
| ... | ... | @@ -23,7 +23,7 @@ public interface ISysMenuService |
| 23 | 23 | |
| 24 | 24 | /** |
| 25 | 25 | * 根据用户查询系统菜单列表 |
| 26 | - * | |
| 26 | + * | |
| 27 | 27 | * @param menu 菜单信息 |
| 28 | 28 | * @param userId 用户ID |
| 29 | 29 | * @return 菜单列表 |
| ... | ... | @@ -32,105 +32,18 @@ public interface ISysMenuService |
| 32 | 32 | |
| 33 | 33 | /** |
| 34 | 34 | * 根据用户ID查询权限 |
| 35 | - * | |
| 35 | + * | |
| 36 | 36 | * @param userId 用户ID |
| 37 | 37 | * @return 权限列表 |
| 38 | 38 | */ |
| 39 | 39 | public Set<String> selectMenuPermsByUserId(Long userId); |
| 40 | 40 | |
| 41 | 41 | /** |
| 42 | - * 根据用户ID查询菜单树信息 | |
| 43 | - * | |
| 44 | - * @param userId 用户ID | |
| 45 | - * @return 菜单列表 | |
| 46 | - */ | |
| 47 | - public List<SysMenu> selectMenuTreeByUserId(Long userId); | |
| 48 | - | |
| 49 | - /** | |
| 50 | - * 根据角色ID查询菜单树信息 | |
| 51 | - * | |
| 52 | - * @param roleId 角色ID | |
| 53 | - * @return 选中菜单列表 | |
| 54 | - */ | |
| 55 | - public List<Integer> selectMenuListByRoleId(Long roleId); | |
| 56 | - | |
| 57 | - /** | |
| 58 | - * 构建前端路由所需要的菜单 | |
| 59 | - * | |
| 60 | - * @param menus 菜单列表 | |
| 61 | - * @return 路由列表 | |
| 62 | - */ | |
| 63 | - public List<RouterVo> buildMenus(List<SysMenu> menus); | |
| 64 | - | |
| 65 | - /** | |
| 66 | - * 构建前端所需要树结构 | |
| 67 | - * | |
| 68 | - * @param menus 菜单列表 | |
| 69 | - * @return 树结构列表 | |
| 70 | - */ | |
| 71 | - public List<SysMenu> buildMenuTree(List<SysMenu> menus); | |
| 72 | - | |
| 73 | - /** | |
| 74 | - * 构建前端所需要下拉树结构 | |
| 75 | - * | |
| 76 | - * @param menus 菜单列表 | |
| 77 | - * @return 下拉树结构列表 | |
| 78 | - */ | |
| 79 | - public List<TreeSelect> buildMenuTreeSelect(List<SysMenu> menus); | |
| 80 | - | |
| 81 | - /** | |
| 82 | - * 根据菜单ID查询信息 | |
| 83 | - * | |
| 84 | - * @param menuId 菜单ID | |
| 85 | - * @return 菜单信息 | |
| 86 | - */ | |
| 87 | - public SysMenu selectMenuById(Long menuId); | |
| 88 | - | |
| 89 | - /** | |
| 90 | - * 是否存在菜单子节点 | |
| 91 | - * | |
| 92 | - * @param menuId 菜单ID | |
| 93 | - * @return 结果 true 存在 false 不存在 | |
| 94 | - */ | |
| 95 | - public boolean hasChildByMenuId(Long menuId); | |
| 96 | - | |
| 97 | - /** | |
| 98 | 42 | * 查询菜单是否存在角色 |
| 99 | - * | |
| 43 | + * | |
| 100 | 44 | * @param menuId 菜单ID |
| 101 | 45 | * @return 结果 true 存在 false 不存在 |
| 102 | 46 | */ |
| 103 | 47 | public boolean checkMenuExistRole(Long menuId); |
| 104 | 48 | |
| 105 | - /** | |
| 106 | - * 新增保存菜单信息 | |
| 107 | - * | |
| 108 | - * @param menu 菜单信息 | |
| 109 | - * @return 结果 | |
| 110 | - */ | |
| 111 | - public int insertMenu(SysMenu menu); | |
| 112 | - | |
| 113 | - /** | |
| 114 | - * 修改保存菜单信息 | |
| 115 | - * | |
| 116 | - * @param menu 菜单信息 | |
| 117 | - * @return 结果 | |
| 118 | - */ | |
| 119 | - public int updateMenu(SysMenu menu); | |
| 120 | - | |
| 121 | - /** | |
| 122 | - * 删除菜单管理信息 | |
| 123 | - * | |
| 124 | - * @param menuId 菜单ID | |
| 125 | - * @return 结果 | |
| 126 | - */ | |
| 127 | - public int deleteMenuById(Long menuId); | |
| 128 | - | |
| 129 | - /** | |
| 130 | - * 校验菜单名称是否唯一 | |
| 131 | - * | |
| 132 | - * @param menu 菜单信息 | |
| 133 | - * @return 结果 | |
| 134 | - */ | |
| 135 | - public String checkMenuNameUnique(SysMenu menu); | |
| 136 | 49 | } | ... | ... |
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java
| ... | ... | @@ -2,130 +2,30 @@ package com.ruoyi.system.service; |
| 2 | 2 | |
| 3 | 3 | import java.util.List; |
| 4 | 4 | import java.util.Set; |
| 5 | + | |
| 5 | 6 | import com.ruoyi.common.core.domain.entity.SysRole; |
| 6 | 7 | |
| 7 | 8 | /** |
| 8 | 9 | * 角色业务层 |
| 9 | - * | |
| 10 | + * | |
| 10 | 11 | * @author ruoyi |
| 11 | 12 | */ |
| 12 | -public interface ISysRoleService | |
| 13 | -{ | |
| 14 | - /** | |
| 15 | - * 根据条件分页查询角色数据 | |
| 16 | - * | |
| 17 | - * @param role 角色信息 | |
| 18 | - * @return 角色数据集合信息 | |
| 19 | - */ | |
| 20 | - public List<SysRole> selectRoleList(SysRole role); | |
| 13 | +public interface ISysRoleService { | |
| 21 | 14 | |
| 22 | 15 | /** |
| 23 | 16 | * 根据用户ID查询角色 |
| 24 | - * | |
| 17 | + * | |
| 25 | 18 | * @param userId 用户ID |
| 26 | 19 | * @return 权限列表 |
| 27 | 20 | */ |
| 28 | 21 | public Set<String> selectRolePermissionByUserId(Long userId); |
| 29 | 22 | |
| 30 | 23 | /** |
| 31 | - * 查询所有角色 | |
| 32 | - * | |
| 33 | - * @return 角色列表 | |
| 34 | - */ | |
| 35 | - public List<SysRole> selectRoleAll(); | |
| 36 | - | |
| 37 | - /** | |
| 38 | - * 根据用户ID获取角色选择框列表 | |
| 39 | - * | |
| 40 | - * @param userId 用户ID | |
| 41 | - * @return 选中角色ID列表 | |
| 42 | - */ | |
| 43 | - public List<Integer> selectRoleListByUserId(Long userId); | |
| 44 | - | |
| 45 | - /** | |
| 46 | - * 通过角色ID查询角色 | |
| 47 | - * | |
| 48 | - * @param roleId 角色ID | |
| 49 | - * @return 角色对象信息 | |
| 50 | - */ | |
| 51 | - public SysRole selectRoleById(Long roleId); | |
| 52 | - | |
| 53 | - /** | |
| 54 | - * 校验角色名称是否唯一 | |
| 55 | - * | |
| 56 | - * @param role 角色信息 | |
| 57 | - * @return 结果 | |
| 58 | - */ | |
| 59 | - public String checkRoleNameUnique(SysRole role); | |
| 60 | - | |
| 61 | - /** | |
| 62 | - * 校验角色权限是否唯一 | |
| 63 | - * | |
| 64 | - * @param role 角色信息 | |
| 65 | - * @return 结果 | |
| 66 | - */ | |
| 67 | - public String checkRoleKeyUnique(SysRole role); | |
| 68 | - | |
| 69 | - /** | |
| 70 | - * 校验角色是否允许操作 | |
| 71 | - * | |
| 72 | - * @param role 角色信息 | |
| 73 | - */ | |
| 74 | - public void checkRoleAllowed(SysRole role); | |
| 75 | - | |
| 76 | - /** | |
| 77 | - * 通过角色ID查询角色使用数量 | |
| 78 | - * | |
| 79 | - * @param roleId 角色ID | |
| 80 | - * @return 结果 | |
| 81 | - */ | |
| 82 | - public int countUserRoleByRoleId(Long roleId); | |
| 83 | - | |
| 84 | - /** | |
| 85 | - * 新增保存角色信息 | |
| 86 | - * | |
| 87 | - * @param role 角色信息 | |
| 88 | - * @return 结果 | |
| 89 | - */ | |
| 90 | - public int insertRole(SysRole role); | |
| 91 | - | |
| 92 | - /** | |
| 93 | - * 修改保存角色信息 | |
| 94 | - * | |
| 95 | - * @param role 角色信息 | |
| 96 | - * @return 结果 | |
| 97 | - */ | |
| 98 | - public int updateRole(SysRole role); | |
| 99 | - | |
| 100 | - /** | |
| 101 | - * 修改角色状态 | |
| 102 | - * | |
| 103 | - * @param role 角色信息 | |
| 104 | - * @return 结果 | |
| 105 | - */ | |
| 106 | - public int updateRoleStatus(SysRole role); | |
| 107 | - | |
| 108 | - /** | |
| 109 | 24 | * 修改数据权限信息 |
| 110 | - * | |
| 25 | + * | |
| 111 | 26 | * @param role 角色信息 |
| 112 | 27 | * @return 结果 |
| 113 | 28 | */ |
| 114 | 29 | public int authDataScope(SysRole role); |
| 115 | 30 | |
| 116 | - /** | |
| 117 | - * 通过角色ID删除角色 | |
| 118 | - * | |
| 119 | - * @param roleId 角色ID | |
| 120 | - * @return 结果 | |
| 121 | - */ | |
| 122 | - public int deleteRoleById(Long roleId); | |
| 123 | - | |
| 124 | - /** | |
| 125 | - * 批量删除角色信息 | |
| 126 | - * | |
| 127 | - * @param roleIds 需要删除的角色ID | |
| 128 | - * @return 结果 | |
| 129 | - */ | |
| 130 | - public int deleteRoleByIds(Long[] roleIds); | |
| 131 | 31 | } | ... | ... |
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
| ... | ... | @@ -32,7 +32,6 @@ import com.ruoyi.system.service.ISysMenuService; |
| 32 | 32 | */ |
| 33 | 33 | @Service |
| 34 | 34 | public class SysMenuServiceImpl implements ISysMenuService { |
| 35 | - public static final String PREMISSION_STRING = "perms[\"{0}\"]"; | |
| 36 | 35 | |
| 37 | 36 | /** |
| 38 | 37 | * 根据用户查询系统菜单列表 |
| ... | ... | @@ -99,29 +98,4 @@ public class SysMenuServiceImpl implements ISysMenuService { |
| 99 | 98 | return getChildPerms(menus, 0); |
| 100 | 99 | } |
| 101 | 100 | |
| 102 | - /** | |
| 103 | - * 根据角色ID查询菜单树信息 | |
| 104 | - * | |
| 105 | - * @param roleId 角色ID | |
| 106 | - * @return 选中菜单列表 | |
| 107 | - */ | |
| 108 | - @Override | |
| 109 | - public List<Integer> selectMenuListByRoleId(Long roleId) { | |
| 110 | - SysRole role = roleMapper.selectRoleById(roleId); | |
| 111 | - return menuMapper.selectMenuListByRoleId(roleId, role.isMenuCheckStrictly()); | |
| 112 | - } | |
| 113 | - | |
| 114 | - /** | |
| 115 | - * 查询菜单使用数量 | |
| 116 | - * | |
| 117 | - * @param menuId 菜单ID | |
| 118 | - * @return 结果 | |
| 119 | - */ | |
| 120 | - @Override | |
| 121 | - public boolean checkMenuExistRole(Long menuId) { | |
| 122 | - int result = roleMenuMapper.checkMenuExistRole(menuId); | |
| 123 | - return result > 0 ? true : false; | |
| 124 | - } | |
| 125 | - | |
| 126 | - | |
| 127 | 101 | } | ... | ... |
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
| ... | ... | @@ -5,6 +5,7 @@ import java.util.Arrays; |
| 5 | 5 | import java.util.HashSet; |
| 6 | 6 | import java.util.List; |
| 7 | 7 | import java.util.Set; |
| 8 | + | |
| 8 | 9 | import org.springframework.beans.factory.annotation.Autowired; |
| 9 | 10 | import org.springframework.stereotype.Service; |
| 10 | 11 | import org.springframework.transaction.annotation.Transactional; |
| ... | ... | @@ -28,19 +29,7 @@ import com.ruoyi.system.service.ISysRoleService; |
| 28 | 29 | * @author ruoyi |
| 29 | 30 | */ |
| 30 | 31 | @Service |
| 31 | -public class SysRoleServiceImpl implements ISysRoleService | |
| 32 | -{ | |
| 33 | - @Autowired | |
| 34 | - private SysRoleMapper roleMapper; | |
| 35 | - | |
| 36 | - @Autowired | |
| 37 | - private SysRoleMenuMapper roleMenuMapper; | |
| 38 | - | |
| 39 | - @Autowired | |
| 40 | - private SysUserRoleMapper userRoleMapper; | |
| 41 | - | |
| 42 | - @Autowired | |
| 43 | - private SysRoleDeptMapper roleDeptMapper; | |
| 32 | +public class SysRoleServiceImpl implements ISysRoleService { | |
| 44 | 33 | |
| 45 | 34 | /** |
| 46 | 35 | * 根据条件分页查询角色数据 |
| ... | ... | @@ -50,86 +39,11 @@ public class SysRoleServiceImpl implements ISysRoleService |
| 50 | 39 | */ |
| 51 | 40 | @Override |
| 52 | 41 | @DataScope(deptAlias = "d") |
| 53 | - public List<SysRole> selectRoleList(SysRole role) | |
| 54 | - { | |
| 42 | + public List<SysRole> selectRoleList(SysRole role) { | |
| 55 | 43 | return roleMapper.selectRoleList(role); |
| 56 | 44 | } |
| 57 | 45 | |
| 58 | 46 | /** |
| 59 | - * 根据用户ID查询权限 | |
| 60 | - * | |
| 61 | - * @param userId 用户ID | |
| 62 | - * @return 权限列表 | |
| 63 | - */ | |
| 64 | - @Override | |
| 65 | - public Set<String> selectRolePermissionByUserId(Long userId) | |
| 66 | - { | |
| 67 | - List<SysRole> perms = roleMapper.selectRolePermissionByUserId(userId); | |
| 68 | - Set<String> permsSet = new HashSet<>(); | |
| 69 | - for (SysRole perm : perms) | |
| 70 | - { | |
| 71 | - if (StringUtils.isNotNull(perm)) | |
| 72 | - { | |
| 73 | - permsSet.addAll(Arrays.asList(perm.getRoleKey().trim().split(","))); | |
| 74 | - } | |
| 75 | - } | |
| 76 | - return permsSet; | |
| 77 | - } | |
| 78 | - | |
| 79 | - /** | |
| 80 | - * 查询所有角色 | |
| 81 | - * | |
| 82 | - * @return 角色列表 | |
| 83 | - */ | |
| 84 | - @Override | |
| 85 | - public List<SysRole> selectRoleAll() | |
| 86 | - { | |
| 87 | - return SpringUtils.getAopProxy(this).selectRoleList(new SysRole()); | |
| 88 | - } | |
| 89 | - | |
| 90 | - /** | |
| 91 | - * 根据用户ID获取角色选择框列表 | |
| 92 | - * | |
| 93 | - * @param userId 用户ID | |
| 94 | - * @return 选中角色ID列表 | |
| 95 | - */ | |
| 96 | - @Override | |
| 97 | - public List<Integer> selectRoleListByUserId(Long userId) | |
| 98 | - { | |
| 99 | - return roleMapper.selectRoleListByUserId(userId); | |
| 100 | - } | |
| 101 | - | |
| 102 | - /** | |
| 103 | - * 通过角色ID查询角色 | |
| 104 | - * | |
| 105 | - * @param roleId 角色ID | |
| 106 | - * @return 角色对象信息 | |
| 107 | - */ | |
| 108 | - @Override | |
| 109 | - public SysRole selectRoleById(Long roleId) | |
| 110 | - { | |
| 111 | - return roleMapper.selectRoleById(roleId); | |
| 112 | - } | |
| 113 | - | |
| 114 | - /** | |
| 115 | - * 校验角色名称是否唯一 | |
| 116 | - * | |
| 117 | - * @param role 角色信息 | |
| 118 | - * @return 结果 | |
| 119 | - */ | |
| 120 | - @Override | |
| 121 | - public String checkRoleNameUnique(SysRole role) | |
| 122 | - { | |
| 123 | - Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId(); | |
| 124 | - SysRole info = roleMapper.checkRoleNameUnique(role.getRoleName()); | |
| 125 | - if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) | |
| 126 | - { | |
| 127 | - return UserConstants.NOT_UNIQUE; | |
| 128 | - } | |
| 129 | - return UserConstants.UNIQUE; | |
| 130 | - } | |
| 131 | - | |
| 132 | - /** | |
| 133 | 47 | * 修改数据权限信息 |
| 134 | 48 | * |
| 135 | 49 | * @param role 角色信息 |
| ... | ... | @@ -137,8 +51,7 @@ public class SysRoleServiceImpl implements ISysRoleService |
| 137 | 51 | */ |
| 138 | 52 | @Override |
| 139 | 53 | @Transactional |
| 140 | - public int authDataScope(SysRole role) | |
| 141 | - { | |
| 54 | + public int authDataScope(SysRole role) { | |
| 142 | 55 | // 修改角色信息 |
| 143 | 56 | roleMapper.updateRole(role); |
| 144 | 57 | // 删除角色与部门关联 |
| ... | ... | @@ -148,71 +61,6 @@ public class SysRoleServiceImpl implements ISysRoleService |
| 148 | 61 | } |
| 149 | 62 | |
| 150 | 63 | /** |
| 151 | - * 新增角色菜单信息 | |
| 152 | - * | |
| 153 | - * @param role 角色对象 | |
| 154 | - */ | |
| 155 | - public int insertRoleMenu(SysRole role) | |
| 156 | - { | |
| 157 | - int rows = 1; | |
| 158 | - // 新增用户与角色管理 | |
| 159 | - List<SysRoleMenu> list = new ArrayList<SysRoleMenu>(); | |
| 160 | - for (Long menuId : role.getMenuIds()) | |
| 161 | - { | |
| 162 | - SysRoleMenu rm = new SysRoleMenu(); | |
| 163 | - rm.setRoleId(role.getRoleId()); | |
| 164 | - rm.setMenuId(menuId); | |
| 165 | - list.add(rm); | |
| 166 | - } | |
| 167 | - if (list.size() > 0) | |
| 168 | - { | |
| 169 | - rows = roleMenuMapper.batchRoleMenu(list); | |
| 170 | - } | |
| 171 | - return rows; | |
| 172 | - } | |
| 173 | - | |
| 174 | - /** | |
| 175 | - * 新增角色部门信息(数据权限) | |
| 176 | - * | |
| 177 | - * @param role 角色对象 | |
| 178 | - */ | |
| 179 | - public int insertRoleDept(SysRole role) | |
| 180 | - { | |
| 181 | - int rows = 1; | |
| 182 | - // 新增角色与部门(数据权限)管理 | |
| 183 | - List<SysRoleDept> list = new ArrayList<SysRoleDept>(); | |
| 184 | - for (Long deptId : role.getDeptIds()) | |
| 185 | - { | |
| 186 | - SysRoleDept rd = new SysRoleDept(); | |
| 187 | - rd.setRoleId(role.getRoleId()); | |
| 188 | - rd.setDeptId(deptId); | |
| 189 | - list.add(rd); | |
| 190 | - } | |
| 191 | - if (list.size() > 0) | |
| 192 | - { | |
| 193 | - rows = roleDeptMapper.batchRoleDept(list); | |
| 194 | - } | |
| 195 | - return rows; | |
| 196 | - } | |
| 197 | - | |
| 198 | - /** | |
| 199 | - * 通过角色ID删除角色 | |
| 200 | - * | |
| 201 | - * @param roleId 角色ID | |
| 202 | - * @return 结果 | |
| 203 | - */ | |
| 204 | - @Override | |
| 205 | - @Transactional | |
| 206 | - public int deleteRoleById(Long roleId) | |
| 207 | - { | |
| 208 | - // 删除角色与菜单关联 | |
| 209 | - roleMenuMapper.deleteRoleMenuByRoleId(roleId); | |
| 210 | - // 删除角色与部门关联 | |
| 211 | - roleDeptMapper.deleteRoleDeptByRoleId(roleId); | |
| 212 | - return roleMapper.deleteRoleById(roleId); | |
| 213 | - } | |
| 214 | - | |
| 215 | - /** | |
| 216 | 64 | * 批量删除角色信息 |
| 217 | 65 | * |
| 218 | 66 | * @param roleIds 需要删除的角色ID |
| ... | ... | @@ -220,14 +68,11 @@ public class SysRoleServiceImpl implements ISysRoleService |
| 220 | 68 | */ |
| 221 | 69 | @Override |
| 222 | 70 | @Transactional |
| 223 | - public int deleteRoleByIds(Long[] roleIds) | |
| 224 | - { | |
| 225 | - for (Long roleId : roleIds) | |
| 226 | - { | |
| 71 | + public int deleteRoleByIds(Long[] roleIds) { | |
| 72 | + for (Long roleId : roleIds) { | |
| 227 | 73 | checkRoleAllowed(new SysRole(roleId)); |
| 228 | 74 | SysRole role = selectRoleById(roleId); |
| 229 | - if (countUserRoleByRoleId(roleId) > 0) | |
| 230 | - { | |
| 75 | + if (countUserRoleByRoleId(roleId) > 0) { | |
| 231 | 76 | throw new CustomException(String.format("%1$s已分配,不能删除", role.getRoleName())); |
| 232 | 77 | } |
| 233 | 78 | } | ... | ... |
ruoyi-ui/src/views/system/menu/index.vue
| ... | ... | @@ -45,7 +45,7 @@ |
| 45 | 45 | row-key="id" |
| 46 | 46 | :tree-props="{children: 'children', hasChildren: 'hasChildren'}" |
| 47 | 47 | > |
| 48 | - <el-table-column prop="name" label="菜单名称" :show-overflow-tooltip="true" width="160"></el-table-column> | |
| 48 | + <el-table-column prop="name" label="菜单名称" :show-overflow-tooltip="true" width="200"></el-table-column> | |
| 49 | 49 | <el-table-column prop="icon" label="图标" align="center" width="100"> |
| 50 | 50 | <template slot-scope="scope"> |
| 51 | 51 | <svg-icon :icon-class="scope.row.icon" /> |
| ... | ... | @@ -156,7 +156,7 @@ |
| 156 | 156 | </el-col> |
| 157 | 157 | <el-col :span="12"> |
| 158 | 158 | <el-form-item v-if="form.type != '1'" label="权限标识"> |
| 159 | - <el-input v-model="form.perms" placeholder="请权限标识" maxlength="50" /> | |
| 159 | + <el-input v-model="form.permission" placeholder="请权限标识" maxlength="50" /> | |
| 160 | 160 | </el-form-item> |
| 161 | 161 | </el-col> |
| 162 | 162 | <el-col :span="12"> | ... | ... |
ruoyi-ui/src/views/system/role/index.vue
| ... | ... | @@ -112,14 +112,14 @@ |
| 112 | 112 | type="text" |
| 113 | 113 | icon="el-icon-circle-check" |
| 114 | 114 | @click="handleMenu(scope.row)" |
| 115 | - v-hasPermi="['system:role:edit']" | |
| 115 | + v-hasPermi="['system:permission:assign-role-menu']" | |
| 116 | 116 | >菜单权限</el-button> |
| 117 | 117 | <el-button |
| 118 | 118 | size="mini" |
| 119 | 119 | type="text" |
| 120 | 120 | icon="el-icon-circle-check" |
| 121 | 121 | @click="handleDataScope(scope.row)" |
| 122 | - v-hasPermi="['system:role:edit']" | |
| 122 | + v-hasPermi="['system:permission:assign-role-data-scope']" | |
| 123 | 123 | >数据权限</el-button> |
| 124 | 124 | <el-button |
| 125 | 125 | size="mini" |
| ... | ... | @@ -214,7 +214,6 @@ |
| 214 | 214 | <el-input v-model="form.code" :disabled="true" /> |
| 215 | 215 | </el-form-item> |
| 216 | 216 | <el-form-item label="菜单权限"> |
| 217 | - <el-checkbox v-model="!form.menuCheckStrictly" @change="handleCheckedTreeConnect($event, 'menu')">父子联动(选中父节点,自动选择子节点)</el-checkbox> | |
| 218 | 217 | <el-checkbox v-model="menuExpand" @change="handleCheckedTreeExpand($event, 'menu')">展开/折叠</el-checkbox> |
| 219 | 218 | <el-checkbox v-model="menuNodeAll" @change="handleCheckedTreeNodeAll($event, 'menu')">全选/全不选</el-checkbox> |
| 220 | 219 | <el-tree |
| ... | ... | @@ -356,15 +355,6 @@ export default { |
| 356 | 355 | this.deptOptions = response.data; |
| 357 | 356 | }); |
| 358 | 357 | }, |
| 359 | - // 所有菜单节点数据 | |
| 360 | - getMenuAllCheckedKeys() { | |
| 361 | - // 目前被选中的菜单节点 | |
| 362 | - let checkedKeys = this.$refs.menu.getCheckedKeys(); | |
| 363 | - // 半选中的菜单节点 | |
| 364 | - let halfCheckedKeys = this.$refs.menu.getHalfCheckedKeys(); | |
| 365 | - checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys); | |
| 366 | - return checkedKeys; | |
| 367 | - }, | |
| 368 | 358 | // 所有部门节点数据 |
| 369 | 359 | getDeptAllCheckedKeys() { |
| 370 | 360 | // 目前被选中的部门节点 |
| ... | ... | @@ -434,7 +424,6 @@ export default { |
| 434 | 424 | sort: 0, |
| 435 | 425 | deptIds: [], |
| 436 | 426 | menuIds: [], |
| 437 | - menuCheckStrictly: false, // 非严格,菜单弹窗的父子级联动 | |
| 438 | 427 | deptCheckStrictly: false, |
| 439 | 428 | remark: undefined |
| 440 | 429 | }; |
| ... | ... | @@ -515,12 +504,8 @@ export default { |
| 515 | 504 | }); |
| 516 | 505 | // 获得角色拥有的菜单集合 |
| 517 | 506 | listRoleMenus(id).then(response => { |
| 518 | - // 设置为严格,避免设置父节点自动选中子节点,解决半选中问题 | |
| 519 | - // this.form.menuCheckStrictly = true | |
| 520 | 507 | // 设置选中 |
| 521 | - this.$refs.menu.setCheckedKeys(response.data, false); | |
| 522 | - // 设置为非严格,继续使用半选中 | |
| 523 | - // this.form.menuCheckStrictly = false | |
| 508 | + this.$refs.menu.setCheckedKeys(response.data, true, false); | |
| 524 | 509 | }) |
| 525 | 510 | }, |
| 526 | 511 | /** 分配数据权限操作 */ |
| ... | ... | @@ -575,7 +560,7 @@ export default { |
| 575 | 560 | if (this.form.id !== undefined) { |
| 576 | 561 | assignRoleMenu({ |
| 577 | 562 | roleId: this.form.id, |
| 578 | - menuIds: this.getMenuAllCheckedKeys() | |
| 563 | + menuIds: this.$refs.menu.getCheckedKeys(true) | |
| 579 | 564 | }).then(response => { |
| 580 | 565 | this.msgSuccess("修改成功"); |
| 581 | 566 | this.openMenu = false; | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/SysPermissionController.java