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.2