From 554beaf6e79707b214fddace4795a87afb1f2c50 Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期六, 08 二月 2020 18:30:09 +0800 Subject: [PATCH] 修改在角色管理页修改菜单权限偶尔未选中问题 --- ruoyi/src/main/resources/mybatis/system/SysMenuMapper.xml | 2 +- ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java | 16 ++++++++++++++-- ruoyi-ui/src/views/system/role/index.vue | 12 ++++++------ ruoyi/src/main/java/com/ruoyi/project/system/service/ISysMenuService.java | 8 ++++++++ ruoyi/src/main/java/com/ruoyi/project/system/controller/SysMenuController.java | 7 ++++++- ruoyi/src/main/java/com/ruoyi/project/system/controller/SysDeptController.java | 6 +++++- 6 files changed, 40 insertions(+), 11 deletions(-) diff --git a/ruoyi-ui/src/views/system/role/index.vue b/ruoyi-ui/src/views/system/role/index.vue index 497fed6..49152bb 100644 --- a/ruoyi-ui/src/views/system/role/index.vue +++ b/ruoyi-ui/src/views/system/role/index.vue @@ -369,15 +369,15 @@ /** 鏍规嵁瑙掕壊ID鏌ヨ鑿滃崟鏍戠粨鏋� */ getRoleMenuTreeselect(roleId) { roleMenuTreeselect(roleId).then(response => { - this.getMenuTreeselect(); - this.$refs.menu.setCheckedKeys(response.data); + this.menuOptions = response.menus; + this.$refs.menu.setCheckedKeys(response.checkedKeys); }); }, /** 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戠粨鏋� */ getRoleDeptTreeselect(roleId) { roleDeptTreeselect(roleId).then(response => { - this.getDeptTreeselect(); - this.$refs.dept.setCheckedKeys(response.data); + this.deptOptions = response.depts; + this.$refs.dept.setCheckedKeys(response.checkedKeys); }); }, // 瑙掕壊鐘舵�佷慨鏀� @@ -407,8 +407,8 @@ }, // 琛ㄥ崟閲嶇疆 reset() { - if (this.$refs.tree != undefined) { - this.$refs.tree.setCheckedKeys([]); + if (this.$refs.menu != undefined) { + this.$refs.menu.setCheckedKeys([]); } this.form = { roleId: undefined, diff --git a/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysDeptController.java b/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysDeptController.java index e344a39..314af5d 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysDeptController.java +++ b/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysDeptController.java @@ -70,7 +70,11 @@ @GetMapping(value = "/roleDeptTreeselect/{roleId}") public AjaxResult roleDeptTreeselect(@PathVariable("roleId") Long roleId) { - return AjaxResult.success(deptService.selectDeptListByRoleId(roleId)); + List<SysDept> depts = deptService.selectDeptList(new SysDept()); + AjaxResult ajax = AjaxResult.success(); + ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId)); + ajax.put("depts", deptService.buildDeptTreeSelect(depts)); + return ajax; } /** diff --git a/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysMenuController.java b/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysMenuController.java index 1e6ce5e..0cb277e 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysMenuController.java +++ b/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysMenuController.java @@ -80,7 +80,12 @@ @GetMapping(value = "/roleMenuTreeselect/{roleId}") public AjaxResult roleMenuTreeselect(@PathVariable("roleId") Long roleId) { - return AjaxResult.success(menuService.selectMenuListByRoleId(roleId)); + LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); + List<SysMenu> menus = menuService.selectMenuList(loginUser.getUser().getUserId()); + AjaxResult ajax = AjaxResult.success(); + ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId)); + ajax.put("menus", menuService.buildMenuTreeSelect(menus)); + return ajax; } /** diff --git a/ruoyi/src/main/java/com/ruoyi/project/system/service/ISysMenuService.java b/ruoyi/src/main/java/com/ruoyi/project/system/service/ISysMenuService.java index cb4d7b7..95f49ae 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/system/service/ISysMenuService.java +++ b/ruoyi/src/main/java/com/ruoyi/project/system/service/ISysMenuService.java @@ -16,6 +16,14 @@ /** * 鏍规嵁鐢ㄦ埛鏌ヨ绯荤粺鑿滃崟鍒楄〃 * + * @param userId 鐢ㄦ埛ID + * @return 鑿滃崟鍒楄〃 + */ + public List<SysMenu> selectMenuList(Long userId); + + /** + * 鏍规嵁鐢ㄦ埛鏌ヨ绯荤粺鑿滃崟鍒楄〃 + * * @param menu 鑿滃崟淇℃伅 * @param userId 鐢ㄦ埛ID * @return 鑿滃崟鍒楄〃 diff --git a/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java b/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java index b8d8603..cfb85d0 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java @@ -39,6 +39,18 @@ private SysRoleMenuMapper roleMenuMapper; /** + * 鏍规嵁鐢ㄦ埛鏌ヨ绯荤粺鑿滃崟鍒楄〃 + * + * @param userId 鐢ㄦ埛ID + * @return 鑿滃崟鍒楄〃 + */ + @Override + public List<SysMenu> selectMenuList(Long userId) + { + return selectMenuList(new SysMenu(), userId); + } + + /** * 鏌ヨ绯荤粺鑿滃崟鍒楄〃 * * @param menu 鑿滃崟淇℃伅 @@ -83,9 +95,9 @@ } /** - * 鏍规嵁鐢ㄦ埛鍚嶇О鏌ヨ鑿滃崟 + * 鏍规嵁鐢ㄦ埛ID鏌ヨ鑿滃崟 * - * @param username 鐢ㄦ埛鍚嶇О + * @param userId 鐢ㄦ埛鍚嶇О * @return 鑿滃崟鍒楄〃 */ @Override diff --git a/ruoyi/src/main/resources/mybatis/system/SysMenuMapper.xml b/ruoyi/src/main/resources/mybatis/system/SysMenuMapper.xml index 98aee20..2ed824f 100644 --- a/ruoyi/src/main/resources/mybatis/system/SysMenuMapper.xml +++ b/ruoyi/src/main/resources/mybatis/system/SysMenuMapper.xml @@ -117,7 +117,7 @@ update sys_menu <set> <if test="menuName != null and menuName != ''">menu_name = #{menuName},</if> - <if test="parentId != null and parentId != 0">parent_id = #{parentId},</if> + <if test="parentId != null">parent_id = #{parentId},</if> <if test="orderNum != null and orderNum != ''">order_num = #{orderNum},</if> <if test="path != null and path != ''">path = #{path},</if> <if test="component != null and component != ''">component = #{component},</if> -- Gitblit v1.9.3