Commit 554beaf6e79707b214fddace4795a87afb1f2c50
1 parent
a5c170fa
修改在角色管理页修改菜单权限偶尔未选中问题
Showing
6 changed files
with
40 additions
and
11 deletions
ruoyi-ui/src/views/system/role/index.vue
| ... | ... | @@ -369,15 +369,15 @@ export default { |
| 369 | 369 | /** 根据角色ID查询菜单树结构 */ |
| 370 | 370 | getRoleMenuTreeselect(roleId) { |
| 371 | 371 | roleMenuTreeselect(roleId).then(response => { |
| 372 | - this.getMenuTreeselect(); | |
| 373 | - this.$refs.menu.setCheckedKeys(response.data); | |
| 372 | + this.menuOptions = response.menus; | |
| 373 | + this.$refs.menu.setCheckedKeys(response.checkedKeys); | |
| 374 | 374 | }); |
| 375 | 375 | }, |
| 376 | 376 | /** 根据角色ID查询部门树结构 */ |
| 377 | 377 | getRoleDeptTreeselect(roleId) { |
| 378 | 378 | roleDeptTreeselect(roleId).then(response => { |
| 379 | - this.getDeptTreeselect(); | |
| 380 | - this.$refs.dept.setCheckedKeys(response.data); | |
| 379 | + this.deptOptions = response.depts; | |
| 380 | + this.$refs.dept.setCheckedKeys(response.checkedKeys); | |
| 381 | 381 | }); |
| 382 | 382 | }, |
| 383 | 383 | // 角色状态修改 |
| ... | ... | @@ -407,8 +407,8 @@ export default { |
| 407 | 407 | }, |
| 408 | 408 | // 表单重置 |
| 409 | 409 | reset() { |
| 410 | - if (this.$refs.tree != undefined) { | |
| 411 | - this.$refs.tree.setCheckedKeys([]); | |
| 410 | + if (this.$refs.menu != undefined) { | |
| 411 | + this.$refs.menu.setCheckedKeys([]); | |
| 412 | 412 | } |
| 413 | 413 | this.form = { |
| 414 | 414 | roleId: undefined, | ... | ... |
ruoyi/src/main/java/com/ruoyi/project/system/controller/SysDeptController.java
| ... | ... | @@ -70,7 +70,11 @@ public class SysDeptController extends BaseController |
| 70 | 70 | @GetMapping(value = "/roleDeptTreeselect/{roleId}") |
| 71 | 71 | public AjaxResult roleDeptTreeselect(@PathVariable("roleId") Long roleId) |
| 72 | 72 | { |
| 73 | - return AjaxResult.success(deptService.selectDeptListByRoleId(roleId)); | |
| 73 | + List<SysDept> depts = deptService.selectDeptList(new SysDept()); | |
| 74 | + AjaxResult ajax = AjaxResult.success(); | |
| 75 | + ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId)); | |
| 76 | + ajax.put("depts", deptService.buildDeptTreeSelect(depts)); | |
| 77 | + return ajax; | |
| 74 | 78 | } |
| 75 | 79 | |
| 76 | 80 | /** | ... | ... |
ruoyi/src/main/java/com/ruoyi/project/system/controller/SysMenuController.java
| ... | ... | @@ -80,7 +80,12 @@ public class SysMenuController extends BaseController |
| 80 | 80 | @GetMapping(value = "/roleMenuTreeselect/{roleId}") |
| 81 | 81 | public AjaxResult roleMenuTreeselect(@PathVariable("roleId") Long roleId) |
| 82 | 82 | { |
| 83 | - return AjaxResult.success(menuService.selectMenuListByRoleId(roleId)); | |
| 83 | + LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); | |
| 84 | + List<SysMenu> menus = menuService.selectMenuList(loginUser.getUser().getUserId()); | |
| 85 | + AjaxResult ajax = AjaxResult.success(); | |
| 86 | + ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId)); | |
| 87 | + ajax.put("menus", menuService.buildMenuTreeSelect(menus)); | |
| 88 | + return ajax; | |
| 84 | 89 | } |
| 85 | 90 | |
| 86 | 91 | /** | ... | ... |
ruoyi/src/main/java/com/ruoyi/project/system/service/ISysMenuService.java
| ... | ... | @@ -16,6 +16,14 @@ public interface ISysMenuService |
| 16 | 16 | /** |
| 17 | 17 | * 根据用户查询系统菜单列表 |
| 18 | 18 | * |
| 19 | + * @param userId 用户ID | |
| 20 | + * @return 菜单列表 | |
| 21 | + */ | |
| 22 | + public List<SysMenu> selectMenuList(Long userId); | |
| 23 | + | |
| 24 | + /** | |
| 25 | + * 根据用户查询系统菜单列表 | |
| 26 | + * | |
| 19 | 27 | * @param menu 菜单信息 |
| 20 | 28 | * @param userId 用户ID |
| 21 | 29 | * @return 菜单列表 | ... | ... |
ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java
| ... | ... | @@ -39,6 +39,18 @@ public class SysMenuServiceImpl implements ISysMenuService |
| 39 | 39 | private SysRoleMenuMapper roleMenuMapper; |
| 40 | 40 | |
| 41 | 41 | /** |
| 42 | + * 根据用户查询系统菜单列表 | |
| 43 | + * | |
| 44 | + * @param userId 用户ID | |
| 45 | + * @return 菜单列表 | |
| 46 | + */ | |
| 47 | + @Override | |
| 48 | + public List<SysMenu> selectMenuList(Long userId) | |
| 49 | + { | |
| 50 | + return selectMenuList(new SysMenu(), userId); | |
| 51 | + } | |
| 52 | + | |
| 53 | + /** | |
| 42 | 54 | * 查询系统菜单列表 |
| 43 | 55 | * |
| 44 | 56 | * @param menu 菜单信息 |
| ... | ... | @@ -83,9 +95,9 @@ public class SysMenuServiceImpl implements ISysMenuService |
| 83 | 95 | } |
| 84 | 96 | |
| 85 | 97 | /** |
| 86 | - * 根据用户名称查询菜单 | |
| 98 | + * 根据用户ID查询菜单 | |
| 87 | 99 | * |
| 88 | - * @param username 用户名称 | |
| 100 | + * @param userId 用户名称 | |
| 89 | 101 | * @return 菜单列表 |
| 90 | 102 | */ |
| 91 | 103 | @Override | ... | ... |
ruoyi/src/main/resources/mybatis/system/SysMenuMapper.xml
| ... | ... | @@ -117,7 +117,7 @@ |
| 117 | 117 | update sys_menu |
| 118 | 118 | <set> |
| 119 | 119 | <if test="menuName != null and menuName != ''">menu_name = #{menuName},</if> |
| 120 | - <if test="parentId != null and parentId != 0">parent_id = #{parentId},</if> | |
| 120 | + <if test="parentId != null">parent_id = #{parentId},</if> | |
| 121 | 121 | <if test="orderNum != null and orderNum != ''">order_num = #{orderNum},</if> |
| 122 | 122 | <if test="path != null and path != ''">path = #{path},</if> |
| 123 | 123 | <if test="component != null and component != ''">component = #{component},</if> | ... | ... |