From b3a65f249220d5c6caba3d4ae6a6a62cf0fca093 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Tue, 9 Sep 2025 13:18:27 +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=91job=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/job/data.ts | 6 + apps/web-antd/src/views/infra/job/index.vue | 84 +++++---- apps/web-ele/src/views/infra/job/data.ts | 71 +------- apps/web-ele/src/views/infra/job/index.vue | 188 ++++++++++++-------- 4 files changed, 179 insertions(+), 170 deletions(-) diff --git a/apps/web-antd/src/views/infra/job/data.ts b/apps/web-antd/src/views/infra/job/data.ts index 83a7dfe6b..ef38a68b4 100644 --- a/apps/web-antd/src/views/infra/job/data.ts +++ b/apps/web-antd/src/views/infra/job/data.ts @@ -133,14 +133,17 @@ export function useGridColumns(): VxeTableGridOptions['columns'] { { field: 'id', title: '任务编号', + minWidth: 80, }, { field: 'name', title: '任务名称', + minWidth: 120, }, { field: 'status', title: '任务状态', + minWidth: 100, cellRender: { name: 'CellDict', props: { type: DICT_TYPE.INFRA_JOB_STATUS }, @@ -149,14 +152,17 @@ export function useGridColumns(): VxeTableGridOptions['columns'] { { field: 'handlerName', title: '处理器的名字', + minWidth: 180, }, { field: 'handlerParam', title: '处理器的参数', + minWidth: 140, }, { field: 'cronExpression', title: 'CRON 表达式', + minWidth: 120, }, { title: '操作', diff --git a/apps/web-antd/src/views/infra/job/index.vue b/apps/web-antd/src/views/infra/job/index.vue index 05ed776da..f7514202f 100644 --- a/apps/web-antd/src/views/infra/job/index.vue +++ b/apps/web-antd/src/views/infra/job/index.vue @@ -39,7 +39,7 @@ const [DetailModal, detailModalApi] = useVbenModal({ }); /** 刷新表格 */ -function onRefresh() { +function handleRefresh() { gridApi.query(); } @@ -72,24 +72,33 @@ async function handleUpdateStatus(row: InfraJobApi.Job) { : InfraJobStatusEnum.STOP; const statusText = status === InfraJobStatusEnum.NORMAL ? '启用' : '停用'; - confirm({ - content: `确定${statusText} ${row.name} 吗?`, - }).then(async () => { - await updateJobStatus(row.id as number, status); - // 提示成功 - message.success($t('ui.actionMessage.operationSuccess')); - onRefresh(); + await confirm(`确定${statusText} ${row.name} 吗?`); + const hideLoading = message.loading({ + content: `正在${statusText}中...`, + duration: 0, }); + try { + await updateJobStatus(row.id!, status); + message.success($t('ui.actionMessage.operationSuccess')); + handleRefresh(); + } finally { + hideLoading(); + } } /** 执行一次任务 */ async function handleTrigger(row: InfraJobApi.Job) { - confirm({ - content: `确定执行一次 ${row.name} 吗?`, - }).then(async () => { - await runJob(row.id as number); - message.success($t('ui.actionMessage.operationSuccess')); + await confirm(`确定执行一次 ${row.name} 吗?`); + const hideLoading = message.loading({ + content: '正在执行中...', + duration: 0, }); + try { + await runJob(row.id!); + message.success($t('ui.actionMessage.operationSuccess')); + } finally { + hideLoading(); + } } /** 跳转到任务日志 */ @@ -105,12 +114,28 @@ async function handleDelete(row: InfraJobApi.Job) { const hideLoading = message.loading({ content: $t('ui.actionMessage.deleting', [row.name]), duration: 0, - key: 'action_process_msg', }); try { - await deleteJob(row.id as number); + await deleteJob(row.id!); message.success($t('ui.actionMessage.deleteSuccess', [row.name])); - onRefresh(); + handleRefresh(); + } finally { + hideLoading(); + } +} + +/** 批量删除任务 */ +async function handleDeleteBatch() { + await confirm($t('ui.actionMessage.deleteBatchConfirm')); + const hideLoading = message.loading({ + content: $t('ui.actionMessage.deletingBatch'), + duration: 0, + }); + try { + await deleteJobList(checkedIds.value); + checkedIds.value = []; + message.success($t('ui.actionMessage.deleteSuccess')); + handleRefresh(); } finally { hideLoading(); } @@ -121,23 +146,6 @@ function handleRowCheckboxChange({ records }: { records: InfraJobApi.Job[] }) { 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 deleteJobList(checkedIds.value); - checkedIds.value = []; - message.success($t('ui.actionMessage.deleteSuccess')); - onRefresh(); - } finally { - hideLoading(); - } -} - const [Grid, gridApi] = useVbenVxeGrid({ formOptions: { schema: useGridFormSchema(), @@ -181,7 +189,7 @@ const [Grid, gridApi] = useVbenVxeGrid({ - +