From b1a2605ce1a52b5b099f79263f893b1148ed781e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9A=93=E6=9C=88=E5=BD=92=E5=B0=98?= Date: Sat, 22 Feb 2025 16:24:12 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=A7=92=E8=89=B2=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8C=89=E9=92=AE=E7=BA=A7=E6=9D=83=E9=99=90?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- locales/en.yaml | 5 ++ locales/zh-CN.yaml | 5 ++ src/api/system.ts | 9 +++ src/views/system/role/components/form.vue | 5 +- src/views/system/role/index.vue | 50 +++++++++++++- src/views/system/role/utils/hook.tsx | 84 +++++++++++++++++++---- 6 files changed, 141 insertions(+), 17 deletions(-) diff --git a/locales/en.yaml b/locales/en.yaml index 2309c7f..bc0d1ea 100644 --- a/locales/en.yaml +++ b/locales/en.yaml @@ -178,3 +178,8 @@ user:buttons:roleDataList: User Role Data List user:buttons:permisssionList: User Permisssion List user:buttons:uploadAvatar: Upload Avatar user:buttons:resetPassword: Reset Password +role:buttons:addPermission: Add Role Permission +role:buttons:deletePermission: Delete Role Permission +role:buttons:updatePermission: Update Role Permission +role:buttons:permissiomInfo: Role Permissiom Info +role:buttons:permissionDataList: Rolr Permission Data List diff --git a/locales/zh-CN.yaml b/locales/zh-CN.yaml index 380e09f..e10edf5 100644 --- a/locales/zh-CN.yaml +++ b/locales/zh-CN.yaml @@ -178,3 +178,8 @@ user:buttons:roleDataList: 用户角色列表 user:buttons:permisssionList: 用户权限列表 user:buttons:uploadAvatar: 上传头像 user:buttons:resetPassword: 重置密码 +role:buttons:addPermission: 添加角色权限 +role:buttons:deletePermission: 删除角色权限 +role:buttons:updatePermission: 更新角色权限 +role:buttons:permissiomInfo: 角色权限详情 +role:buttons:permissionDataList: 角色权限列表 diff --git a/src/api/system.ts b/src/api/system.ts index 3c8480f..7c3cc06 100644 --- a/src/api/system.ts +++ b/src/api/system.ts @@ -318,6 +318,15 @@ export const deleteRoleAPI = (id: string) => { return http.request("post", `/api/role/delete/${id}`); }; +/**批量删除角色 */ +export const deleteRoleListAPI = (ids: string[]) => { + return http.request("post", `/api/role/deleteList`, { + data: { + ids + } + }); +}; + // --------------------------用户相关-------------------------------------- /**添加用户参数 */ diff --git a/src/views/system/role/components/form.vue b/src/views/system/role/components/form.vue index ae863a7..4ec7d87 100644 --- a/src/views/system/role/components/form.vue +++ b/src/views/system/role/components/form.vue @@ -4,6 +4,7 @@ import type { FormRules } from "element-plus"; import { getDepartmentListAPI } from "@/api/system"; import type { DepartmentInfo } from "types/system"; import { usePublicHooks } from "../../hooks"; +import { handleTree } from "@pureadmin/utils"; defineOptions({ name: "SystemRoleForm" @@ -53,7 +54,9 @@ function getRef() { const getDepartments = async () => { const res = await getDepartmentListAPI({ page: 1, pageSize: 9999 }); if (res.success) { - departments.value = formatHigherOptions(res.data.result); + departments.value = formatHigherOptions( + handleTree(res.data.result, "id", "parent_id") + ); } else { departments.value = []; } diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue index 0ab6b96..68c5787 100644 --- a/src/views/system/role/index.vue +++ b/src/views/system/role/index.vue @@ -19,6 +19,7 @@ import Close from "@iconify-icons/ep/close"; import Check from "@iconify-icons/ep/check"; import { onBeforeRouteUpdate } from "vue-router"; const { t } = useI18n(); +import { hasAuth } from "@/utils/auth"; defineOptions({ name: "SystemRole" }); @@ -51,8 +52,8 @@ const { curRow, loading, columns, - rowStyle, dataList, + selectedNum, treeData, treeProps, isLinkage, @@ -61,8 +62,11 @@ const { isSelectAll, treeSearchValue, departments, + rowStyle, onSearch, resetForm, + onSelectionCancel, + onbatchDel, openDialog, handleMenu, handleSave, @@ -71,8 +75,9 @@ const { transformI18n, onQueryChanged, handleSizeChange, - handleCurrentChange -} = useRole(treeRef); + handleCurrentChange, + handleSelectionChange +} = useRole(treeRef, tableRef); onMounted(() => { useResizeObserver(contentRef, async () => { await nextTick(); @@ -180,6 +185,7 @@ onBeforeRouteUpdate((to, from, next) => { >