From 0d411310fe24d2d9b65bc215a06acacd9885de94 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Sun, 15 Jun 2025 21:09:40 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E3=80=90antd=E3=80=91=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4=E6=97=B6?= =?UTF-8?q?=E4=BA=A7=E7=94=9F=E7=9A=84=E5=89=AF=E4=BD=9C=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/views/system/dept/index.vue | 8 +- .../views/system/dict/modules/data-grid.vue | 8 +- .../views/system/dict/modules/type-grid.vue | 8 +- .../src/views/system/mail/account/index.vue | 8 +- .../src/views/system/mail/template/index.vue | 15 +- apps/web-antd/src/views/system/menu/data.ts | 1 - apps/web-antd/src/views/system/menu/index.vue | 102 +++---- .../src/views/system/notice/index.vue | 13 +- .../views/system/notify/template/index.vue | 8 +- .../src/views/system/oauth2/token/index.vue | 64 ----- apps/web-antd/src/views/system/post/index.vue | 8 +- apps/web-antd/src/views/system/role/index.vue | 64 +++-- .../src/views/system/sms/template/index.vue | 8 +- .../src/views/system/tenant/index.vue | 8 +- .../src/views/system/tenantPackage/index.vue | 8 +- apps/web-antd/src/views/system/user/index.vue | 265 ++++++++++-------- 16 files changed, 281 insertions(+), 315 deletions(-) diff --git a/apps/web-antd/src/views/system/dept/index.vue b/apps/web-antd/src/views/system/dept/index.vue index f8d875af9..638865004 100644 --- a/apps/web-antd/src/views/system/dept/index.vue +++ b/apps/web-antd/src/views/system/dept/index.vue @@ -61,12 +61,14 @@ function handleEdit(row: SystemDeptApi.Dept) { async function handleDelete(row: SystemDeptApi.Dept) { const hideLoading = message.loading({ content: $t('ui.actionMessage.deleting', [row.name]), - duration: 0, - key: 'action_process_msg', + key: 'action_key_msg', }); try { await deleteDept(row.id as number); - message.success($t('ui.actionMessage.deleteSuccess', [row.name])); + message.success({ + content: $t('ui.actionMessage.deleteSuccess', [row.name]), + key: 'action_key_msg', + }); onRefresh(); } finally { hideLoading(); diff --git a/apps/web-antd/src/views/system/dict/modules/data-grid.vue b/apps/web-antd/src/views/system/dict/modules/data-grid.vue index d94351ff4..7079c8adb 100644 --- a/apps/web-antd/src/views/system/dict/modules/data-grid.vue +++ b/apps/web-antd/src/views/system/dict/modules/data-grid.vue @@ -58,12 +58,14 @@ function handleEdit(row: SystemDictDataApi.DictData) { async function handleDelete(row: SystemDictDataApi.DictData) { const hideLoading = message.loading({ content: $t('ui.actionMessage.deleting', [row.label]), - duration: 0, - key: 'action_process_msg', + key: 'action_key_msg', }); try { await deleteDictData(row.id as number); - message.success($t('ui.actionMessage.deleteSuccess', [row.label])); + message.success({ + content: $t('ui.actionMessage.deleteSuccess', [row.label]), + key: 'action_key_msg', + }); onRefresh(); } finally { hideLoading(); diff --git a/apps/web-antd/src/views/system/dict/modules/type-grid.vue b/apps/web-antd/src/views/system/dict/modules/type-grid.vue index 2c6fce228..98600900c 100644 --- a/apps/web-antd/src/views/system/dict/modules/type-grid.vue +++ b/apps/web-antd/src/views/system/dict/modules/type-grid.vue @@ -56,12 +56,14 @@ function handleEdit(row: any) { async function handleDelete(row: SystemDictTypeApi.DictType) { const hideLoading = message.loading({ content: $t('ui.actionMessage.deleting', [row.name]), - duration: 0, - key: 'action_process_msg', + key: 'action_key_msg', }); try { await deleteDictType(row.id as number); - message.success($t('ui.actionMessage.deleteSuccess', [row.name])); + message.success({ + content: $t('ui.actionMessage.deleteSuccess', [row.name]), + key: 'action_key_msg', + }); onRefresh(); } finally { hideLoading(); diff --git a/apps/web-antd/src/views/system/mail/account/index.vue b/apps/web-antd/src/views/system/mail/account/index.vue index 3da0308b9..e7344f424 100644 --- a/apps/web-antd/src/views/system/mail/account/index.vue +++ b/apps/web-antd/src/views/system/mail/account/index.vue @@ -44,12 +44,14 @@ function handleEdit(row: SystemMailAccountApi.MailAccount) { async function handleDelete(row: SystemMailAccountApi.MailAccount) { const hideLoading = message.loading({ content: $t('ui.actionMessage.deleting', [row.mail]), - duration: 0, - key: 'action_process_msg', + key: 'action_key_msg', }); try { await deleteMailAccount(row.id as number); - message.success($t('ui.actionMessage.deleteSuccess', [row.mail])); + message.success({ + content: $t('ui.actionMessage.deleteSuccess', [row.mail]), + key: 'action_key_msg', + }); onRefresh(); } finally { hideLoading(); diff --git a/apps/web-antd/src/views/system/mail/template/index.vue b/apps/web-antd/src/views/system/mail/template/index.vue index b0bf5fcce..c45b3e714 100644 --- a/apps/web-antd/src/views/system/mail/template/index.vue +++ b/apps/web-antd/src/views/system/mail/template/index.vue @@ -57,18 +57,17 @@ function handleSend(row: SystemMailTemplateApi.MailTemplate) { /** 删除邮件模板 */ async function handleDelete(row: SystemMailTemplateApi.MailTemplate) { - const hideLoading = message.loading({ + message.loading({ content: $t('ui.actionMessage.deleting', [row.name]), duration: 0, key: 'action_process_msg', }); - try { - await deleteMailTemplate(row.id as number); - message.success($t('ui.actionMessage.deleteSuccess', [row.name])); - onRefresh(); - } finally { - hideLoading(); - } + await deleteMailTemplate(row.id as number); + message.success({ + content: $t('ui.actionMessage.deleteSuccess', [row.name]), + key: 'action_key_msg', + }); + onRefresh(); } const checkedIds = ref([]); diff --git a/apps/web-antd/src/views/system/menu/data.ts b/apps/web-antd/src/views/system/menu/data.ts index 0c9c49f2e..0cc5a6a86 100644 --- a/apps/web-antd/src/views/system/menu/data.ts +++ b/apps/web-antd/src/views/system/menu/data.ts @@ -268,7 +268,6 @@ export function useFormSchema(): VbenFormSchema[] { /** 列表的字段 */ export function useGridColumns(): VxeTableGridOptions['columns'] { return [ - { type: 'checkbox', width: 40 }, { field: 'name', title: '菜单名称', diff --git a/apps/web-antd/src/views/system/menu/index.vue b/apps/web-antd/src/views/system/menu/index.vue index cbf432907..9519bb277 100644 --- a/apps/web-antd/src/views/system/menu/index.vue +++ b/apps/web-antd/src/views/system/menu/index.vue @@ -6,12 +6,11 @@ import { ref } from 'vue'; import { DocAlert, Page, useVbenModal } from '@vben/common-ui'; import { IconifyIcon } from '@vben/icons'; -import { isEmpty } from '@vben/utils'; import { message } from 'ant-design-vue'; import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table'; -import { deleteMenu, deleteMenuList, getMenuList } from '#/api/system/menu'; +import { deleteMenu, getMenuList } from '#/api/system/menu'; import { $t } from '#/locales'; import { SystemMenuTypeEnum } from '#/utils'; @@ -29,8 +28,13 @@ function onRefresh() { } /** 创建菜单 */ -function handleCreate(parentId?: number) { - formModalApi.setData({ parentId: parentId || 0 }).open(); +function handleCreate() { + formModalApi.setData({}).open(); +} + +/** 添加下级菜单 */ +function handleAppend(row: SystemMenuApi.Menu) { + formModalApi.setData({ pid: row.id }).open(); } /** 编辑菜单 */ @@ -42,74 +46,55 @@ function handleEdit(row: SystemMenuApi.Menu) { async function handleDelete(row: SystemMenuApi.Menu) { const hideLoading = message.loading({ content: $t('ui.actionMessage.deleting', [row.name]), - duration: 0, - key: 'action_process_msg', + key: 'action_key_msg', }); try { - await deleteMenu(row.id); - message.success($t('ui.actionMessage.deleteSuccess', [row.name])); + await deleteMenu(row.id as number); + message.success({ + content: $t('ui.actionMessage.deleteSuccess', [row.name]), + key: 'action_key_msg', + }); onRefresh(); } finally { hideLoading(); } } -const checkedIds = ref([]); -function handleRowCheckboxChange({ - records, -}: { - records: SystemMenuApi.Menu[]; -}) { - checkedIds.value = records.map((item) => item.id); -} - -/** 批量删除菜单 */ -async function handleDeleteBatch() { - const hideLoading = message.loading({ - content: $t('ui.actionMessage.deleting'), - duration: 0, - key: 'action_process_msg', - }); - try { - await deleteMenuList(checkedIds.value); - message.success($t('ui.actionMessage.deleteSuccess')); - onRefresh(); - } finally { - hideLoading(); - } +/** 切换树形展开/收缩状态 */ +const isExpanded = ref(false); +function toggleExpand() { + isExpanded.value = !isExpanded.value; + gridApi.grid.setAllTreeExpand(isExpanded.value); } const [Grid, gridApi] = useVbenVxeGrid({ gridOptions: { columns: useGridColumns(), height: 'auto', + keepSource: true, + pagerConfig: { + enabled: false, + }, proxyConfig: { ajax: { - query: async () => { + query: async (_params) => { return await getMenuList(); }, }, }, - treeConfig: { - transform: true, - rowField: 'id', - parentField: 'parentId', - expandAll: true, - accordion: false, - }, rowConfig: { keyField: 'id', - isHover: true, }, toolbarConfig: { refresh: { code: 'query' }, - search: true, }, - } as VxeTableGridOptions, - gridEvents: { - checkboxAll: handleRowCheckboxChange, - checkboxChange: handleRowCheckboxChange, - }, + treeConfig: { + parentField: 'parentId', + rowField: 'id', + transform: true, + reserve: true, + }, + } as VxeTableGridOptions, }); @@ -124,7 +109,7 @@ const [Grid, gridApi] = useVbenVxeGrid({ - + -