优化多角色数据权限匹配规则

master
RuoYi 2 years ago
parent 1d2f37bfe1
commit 2952cb2c4f
  1. 16
      src/api/system/dept.js
  2. 8
      src/api/system/role.js
  3. 8
      src/api/system/user.js
  4. 11
      src/views/system/role/index.vue
  5. 20
      src/views/system/user/index.vue

@ -25,22 +25,6 @@ export function getDept(deptId) {
})
}
// 查询部门下拉树结构
export function treeselect() {
return request({
url: '/system/dept/treeselect',
method: 'get'
})
}
// 根据角色ID查询部门树结构
export function roleDeptTreeselect(roleId) {
return request({
url: '/system/dept/roleDeptTreeselect/' + roleId,
method: 'get'
})
}
// 新增部门
export function addDept(data) {
return request({

@ -109,3 +109,11 @@ export function authUserSelectAll(data) {
params: data
})
}
// 根据角色ID查询部门树结构
export function deptTreeSelect(roleId) {
return request({
url: '/system/role/deptTree/' + roleId,
method: 'get'
})
}

@ -125,3 +125,11 @@ export function updateAuthRole(data) {
params: data
})
}
// 查询部门下拉树结构
export function deptTreeSelect() {
return request({
url: '/system/user/deptTree',
method: 'get'
})
}

@ -262,9 +262,8 @@
</template>
<script setup name="Role">
import { addRole, changeRoleStatus, dataScope, delRole, getRole, listRole, updateRole } from "@/api/system/role";
import { addRole, changeRoleStatus, dataScope, delRole, getRole, listRole, updateRole, deptTreeSelect } from "@/api/system/role";
import { roleMenuTreeselect, treeselect as menuTreeselect } from "@/api/system/menu";
import { treeselect as deptTreeselect, roleDeptTreeselect } from "@/api/system/dept";
const router = useRouter();
const { proxy } = getCurrentInstance();
@ -462,8 +461,8 @@ function getRoleMenuTreeselect(roleId) {
});
}
/** 根据角色ID查询部门树结构 */
function getRoleDeptTreeselect(roleId) {
return roleDeptTreeselect(roleId).then(response => {
function getDeptTree(roleId) {
return deptTreeSelect(roleId).then(response => {
deptOptions.value = response.depts;
return response;
});
@ -543,12 +542,12 @@ function dataScopeSelectChange(value) {
/** 分配数据权限操作 */
function handleDataScope(row) {
reset();
const roleDeptTreeselect = getRoleDeptTreeselect(row.roleId);
const deptTreeSelect = getDeptTree(row.roleId);
getRole(row.roleId).then(response => {
form.value = response.data;
openDataScope.value = true;
nextTick(() => {
roleDeptTreeselect.then(res => {
deptTreeSelect.then(res => {
nextTick(() => {
if (deptRef.value) {
deptRef.value.setCheckedKeys(res.checkedKeys);

@ -350,8 +350,7 @@
<script setup name="User">
import { getToken } from "@/utils/auth";
import { treeselect } from "@/api/system/dept";
import { changeUserStatus, listUser, resetUserPwd, delUser, getUser, updateUser, addUser } from "@/api/system/user";
import { changeUserStatus, listUser, resetUserPwd, delUser, getUser, updateUser, addUser, deptTreeSelect } from "@/api/system/user";
const router = useRouter();
const { proxy } = getCurrentInstance();
@ -429,8 +428,8 @@ watch(deptName, val => {
proxy.$refs["deptTreeRef"].filter(val);
});
/** 查询部门下拉树结构 */
function getTreeselect() {
treeselect().then(response => {
function getDeptTree() {
deptTreeSelect().then(response => {
deptOptions.value = response.data;
});
};
@ -550,15 +549,6 @@ const handleFileSuccess = (response, file, fileList) => {
function submitFileForm() {
proxy.$refs["uploadRef"].submit();
};
/** 初始化部门数据 */
function initTreeData() {
//
if (deptOptions.value === undefined) {
treeselect().then(response => {
deptOptions.value = response.data;
});
}
};
/** 重置操作表单 */
function reset() {
form.value = {
@ -585,7 +575,6 @@ function cancel() {
/** 新增按钮操作 */
function handleAdd() {
reset();
initTreeData();
getUser().then(response => {
postOptions.value = response.posts;
roleOptions.value = response.roles;
@ -597,7 +586,6 @@ function handleAdd() {
/** 修改按钮操作 */
function handleUpdate(row) {
reset();
initTreeData();
const userId = row.userId || ids.value;
getUser(userId).then(response => {
form.value = response.data;
@ -631,6 +619,6 @@ function submitForm() {
});
};
getTreeselect();
getDeptTree();
getList();
</script>

Loading…
Cancel
Save