From 87e6deab4d5f96146e6bfdd4a4b1704be321f813 Mon Sep 17 00:00:00 2001 From: Charles7c Date: Sun, 27 Jul 2025 12:44:23 +0800 Subject: [PATCH] =?UTF-8?q?feat(system/role):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=A7=92=E8=89=B2=E6=9D=83=E9=99=90=E6=A0=91?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3=EF=BC=88=E6=9B=BF=E6=8D=A2?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E5=88=86=E9=85=8D=E6=9D=83=E9=99=90=E7=9A=84?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=A0=91=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apis/system/role.ts | 5 ++ src/apis/system/type.ts | 9 +++ src/views/system/menu/index.vue | 4 +- .../system/role/components/Permission.vue | 74 ++++++++----------- 4 files changed, 48 insertions(+), 44 deletions(-) diff --git a/src/apis/system/role.ts b/src/apis/system/role.ts index aa62d88..3bef576 100644 --- a/src/apis/system/role.ts +++ b/src/apis/system/role.ts @@ -31,6 +31,11 @@ export function deleteRole(id: string) { return http.del(`${BASE_URL}`, { ids: [id] }) } +/** @desc 查询角色权限树 */ +export function listRolePermissionTree() { + return http.get(`${BASE_URL}/permission/tree`) +} + /** @desc 修改角色权限 */ export function updateRolePermission(id: string, data: any) { return http.put(`${BASE_URL}/${id}/permission`, data) diff --git a/src/apis/system/type.ts b/src/apis/system/type.ts index 3528a2b..8250ba7 100644 --- a/src/apis/system/type.ts +++ b/src/apis/system/type.ts @@ -63,6 +63,15 @@ export type RoleDetailResp = RoleResp & { menuCheckStrictly: boolean deptCheckStrictly: boolean } +export interface RolePermissionResp { + id: string + title: string + parentId: string + permission?: string + children?: RolePermissionResp[] + permissions?: RolePermissionResp[] + isChecked?: boolean +} export interface RoleUserResp { id: string username: string diff --git a/src/views/system/menu/index.vue b/src/views/system/menu/index.vue index 095a228..11c2079 100644 --- a/src/views/system/menu/index.vue +++ b/src/views/system/menu/index.vue @@ -96,7 +96,7 @@ import type { TableInstance } from '@arco-design/web-vue' import { Message, Modal } from '@arco-design/web-vue' import MenuAddModal from './MenuAddModal.vue' -import { type MenuQuery, type MenuResp, clearMenuCache, deleteMenu, listMenu } from '@/apis/system/menu' +import { type MenuQuery, type MenuResp, clearMenuCache, deleteMenu, listMenuDictTree } from '@/apis/system/menu' import type GiTable from '@/components/GiTable/index.vue' import { useTable } from '@/hooks' import { isMobile } from '@/utils' @@ -111,7 +111,7 @@ const { loading, search, handleDelete, -} = useTable(() => listMenu(queryForm), { immediate: true }) +} = useTable(() => listMenuDictTree({ description: queryForm.description || '' }), { immediate: true }) // 过滤树 const searchData = (title: string, path: string, permission: string) => { diff --git a/src/views/system/role/components/Permission.vue b/src/views/system/role/components/Permission.vue index df59667..b0be87a 100644 --- a/src/views/system/role/components/Permission.vue +++ b/src/views/system/role/components/Permission.vue @@ -56,12 +56,11 @@