From 96158f22b94d9af7e53ef3d229b0e11a19dfb26f Mon Sep 17 00:00:00 2001 From: YunaiV Date: Tue, 9 Sep 2025 12:20:48 +0800 Subject: [PATCH] =?UTF-8?q?reactor=EF=BC=9A=E3=80=90infra=20=E5=9F=BA?= =?UTF-8?q?=E7=A1=80=E8=AE=BE=E6=96=BD=E3=80=91config=20=E8=BF=9B=E4=B8=80?= =?UTF-8?q?=E6=AD=A5=E7=BB=9F=E4=B8=80=E4=BB=A3=E7=A0=81=E9=A3=8E=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/views/infra/config/data.ts | 9 ++ .../web-antd/src/views/infra/config/index.vue | 22 ++--- apps/web-ele/src/views/infra/config/data.ts | 34 +------ apps/web-ele/src/views/infra/config/index.vue | 89 +++++++++++-------- 4 files changed, 73 insertions(+), 81 deletions(-) diff --git a/apps/web-antd/src/views/infra/config/data.ts b/apps/web-antd/src/views/infra/config/data.ts index 4dba37442..a365fbd78 100644 --- a/apps/web-antd/src/views/infra/config/data.ts +++ b/apps/web-antd/src/views/infra/config/data.ts @@ -126,26 +126,32 @@ export function useGridColumns(): VxeTableGridOptions['columns'] { { field: 'id', title: '参数主键', + minWidth: 100, }, { field: 'category', title: '参数分类', + minWidth: 120, }, { field: 'name', title: '参数名称', + minWidth: 200, }, { field: 'key', title: '参数键名', + minWidth: 200, }, { field: 'value', title: '参数键值', + minWidth: 150, }, { field: 'visible', title: '是否可见', + minWidth: 100, cellRender: { name: 'CellDict', props: { type: DICT_TYPE.INFRA_BOOLEAN_STRING }, @@ -154,6 +160,7 @@ export function useGridColumns(): VxeTableGridOptions['columns'] { { field: 'type', title: '系统内置', + minWidth: 100, cellRender: { name: 'CellDict', props: { type: DICT_TYPE.INFRA_CONFIG_TYPE }, @@ -162,10 +169,12 @@ export function useGridColumns(): VxeTableGridOptions['columns'] { { field: 'remark', title: '备注', + minWidth: 150, }, { field: 'createTime', title: '创建时间', + minWidth: 180, formatter: 'formatDateTime', }, { diff --git a/apps/web-antd/src/views/infra/config/index.vue b/apps/web-antd/src/views/infra/config/index.vue index b45fa490d..4d6845934 100644 --- a/apps/web-antd/src/views/infra/config/index.vue +++ b/apps/web-antd/src/views/infra/config/index.vue @@ -4,7 +4,7 @@ import type { InfraConfigApi } from '#/api/infra/config'; import { ref } from 'vue'; -import { Page, useVbenModal } from '@vben/common-ui'; +import { confirm, Page, useVbenModal } from '@vben/common-ui'; import { downloadFileFromBlobPart, isEmpty } from '@vben/utils'; import { message } from 'ant-design-vue'; @@ -52,14 +52,10 @@ async function handleDelete(row: InfraConfigApi.Config) { const hideLoading = message.loading({ content: $t('ui.actionMessage.deleting', [row.name]), duration: 0, - key: 'action_key_msg', }); try { await deleteConfig(row.id as number); - message.success({ - content: $t('ui.actionMessage.deleteSuccess', [row.name]), - key: 'action_key_msg', - }); + message.success($t('ui.actionMessage.deleteSuccess', [row.name])); onRefresh(); } finally { hideLoading(); @@ -68,10 +64,10 @@ async function handleDelete(row: InfraConfigApi.Config) { /** 批量删除参数 */ async function handleDeleteBatch() { + await confirm($t('ui.actionMessage.deleteBatchConfirm')); const hideLoading = message.loading({ - content: $t('ui.actionMessage.deleting'), + content: $t('ui.actionMessage.deletingBatch'), duration: 0, - key: 'action_process_msg', }); try { await deleteConfigList(checkedIds.value); @@ -135,7 +131,7 @@ const [Grid, gridApi] = useVbenVxeGrid({ -import type { - OnActionClickParams, - VxeTableGridOptions, -} from '#/adapter/vxe-table'; +import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import type { InfraConfigApi } from '#/api/infra/config'; import { ref } from 'vue'; @@ -30,47 +27,54 @@ const [FormModal, formModalApi] = useVbenModal({ }); /** 刷新表格 */ -function onRefresh() { +function handleRefresh() { gridApi.query(); } /** 导出表格 */ -async function onExport() { +async function handleExport() { const data = await exportConfig(await gridApi.formApi.getValues()); downloadFileFromBlobPart({ fileName: '参数配置.xls', source: data }); } /** 创建参数 */ -function onCreate() { +function handleCreate() { formModalApi.setData(null).open(); } /** 编辑参数 */ -function onEdit(row: InfraConfigApi.Config) { +function handleEdit(row: InfraConfigApi.Config) { formModalApi.setData(row).open(); } /** 删除参数 */ -async function onDelete(row: InfraConfigApi.Config) { +async function handleDelete(row: InfraConfigApi.Config) { const loadingInstance = ElLoading.service({ text: $t('ui.actionMessage.deleting', [row.name]), }); try { await deleteConfig(row.id as number); ElMessage.success($t('ui.actionMessage.deleteSuccess', [row.name])); - onRefresh(); + handleRefresh(); } finally { loadingInstance.close(); } } /** 批量删除参数 */ -async function onDeleteBatch() { - await confirm('确定要批量删除该参数吗?'); - await deleteConfigList(checkedIds.value); - checkedIds.value = []; - ElMessage.success($t('ui.actionMessage.deleteSuccess')); - onRefresh(); +async function handleDeleteBatch() { + await confirm($t('ui.actionMessage.deleteBatchConfirm')); + const loadingInstance = ElLoading.service({ + text: $t('ui.actionMessage.deletingBatch'), + }); + try { + await deleteConfigList(checkedIds.value); + checkedIds.value = []; + ElMessage.success($t('ui.actionMessage.deleteSuccess')); + handleRefresh(); + } finally { + loadingInstance.close(); + } } const checkedIds = ref([]); @@ -82,29 +86,12 @@ function handleRowCheckboxChange({ checkedIds.value = records.map((item) => item.id!); } -/** 表格操作按钮的回调函数 */ -function onActionClick({ - code, - row, -}: OnActionClickParams) { - switch (code) { - case 'delete': { - onDelete(row); - break; - } - case 'edit': { - onEdit(row); - break; - } - } -} - const [Grid, gridApi] = useVbenVxeGrid({ formOptions: { schema: useGridFormSchema(), }, gridOptions: { - columns: useGridColumns(onActionClick), + columns: useGridColumns(), height: 'auto', keepSource: true, proxyConfig: { @@ -120,6 +107,7 @@ const [Grid, gridApi] = useVbenVxeGrid({ }, rowConfig: { keyField: 'id', + isHover: true, }, toolbarConfig: { refresh: true, @@ -135,7 +123,7 @@ const [Grid, gridApi] = useVbenVxeGrid({