From 2952cb2c4fd1c51e28c6a6d6728f505155d4ee47 Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: 星期日, 21 八月 2022 22:54:25 +0800
Subject: [PATCH] 优化多角色数据权限匹配规则

---
 src/views/system/role/index.vue |   11 ++---
 src/views/system/user/index.vue |   20 ++--------
 src/api/system/user.js          |    8 ++++
 src/api/system/role.js          |    8 ++++
 src/api/system/dept.js          |   16 --------
 5 files changed, 25 insertions(+), 38 deletions(-)

diff --git a/src/api/system/dept.js b/src/api/system/dept.js
index 0535e8a..9ca6966 100644
--- a/src/api/system/dept.js
+++ b/src/api/system/dept.js
@@ -25,22 +25,6 @@
   })
 }
 
-// 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋�
-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({
diff --git a/src/api/system/role.js b/src/api/system/role.js
index 7710cc2..528cd18 100644
--- a/src/api/system/role.js
+++ b/src/api/system/role.js
@@ -109,3 +109,11 @@
     params: data
   })
 }
+
+// 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戠粨鏋�
+export function deptTreeSelect(roleId) {
+  return request({
+    url: '/system/role/deptTree/' + roleId,
+    method: 'get'
+  })
+}
diff --git a/src/api/system/user.js b/src/api/system/user.js
index ad227f9..9b949e9 100644
--- a/src/api/system/user.js
+++ b/src/api/system/user.js
@@ -125,3 +125,11 @@
     params: data
   })
 }
+
+// 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋�
+export function deptTreeSelect() {
+  return request({
+    url: '/system/user/deptTree',
+    method: 'get'
+  })
+}
diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue
index cf71f5c..ee2e11d 100644
--- a/src/views/system/role/index.vue
+++ b/src/views/system/role/index.vue
@@ -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 @@
   });
 }
 /** 鏍规嵁瑙掕壊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 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);
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index da3a501..8326e6f 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -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 @@
   proxy.$refs["deptTreeRef"].filter(val);
 });
 /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */
-function getTreeselect() {
-  treeselect().then(response => {
+function getDeptTree() {
+  deptTreeSelect().then(response => {
     deptOptions.value = response.data;
   });
 };
@@ -550,15 +549,6 @@
 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 handleAdd() {
   reset();
-  initTreeData();
   getUser().then(response => {
     postOptions.value = response.posts;
     roleOptions.value = response.roles;
@@ -597,7 +586,6 @@
 /** 淇敼鎸夐挳鎿嶄綔 */
 function handleUpdate(row) {
   reset();
-  initTreeData();
   const userId = row.userId || ids.value;
   getUser(userId).then(response => {
     form.value = response.data;
@@ -631,6 +619,6 @@
   });
 };
 
-getTreeselect();
+getDeptTree();
 getList();
 </script>

--
Gitblit v1.9.3