From 4fb16aa73442206245b062383c2a95f33b7f3cdb Mon Sep 17 00:00:00 2001 From: xlsea Date: Fri, 27 Dec 2024 22:14:35 +0800 Subject: [PATCH] =?UTF-8?q?feat(sj=5F1.3.0-beta1):=20Job=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=96=B0=E5=A2=9E=E6=89=A7=E8=A1=8C=E4=B8=80?= =?UTF-8?q?=E6=AC=A1=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/service/api/job.ts | 9 + src/typings/api.d.ts | 5 + src/views/job/task/index.vue | 29 +- .../task/modules/job-task-trigger-modal.vue | 402 ++++++++++++++++++ 4 files changed, 427 insertions(+), 18 deletions(-) create mode 100644 src/views/job/task/modules/job-task-trigger-modal.vue diff --git a/src/service/api/job.ts b/src/service/api/job.ts index 6c7be6a..905bf38 100644 --- a/src/service/api/job.ts +++ b/src/service/api/job.ts @@ -88,6 +88,15 @@ export function fetchTriggerJob(jobId: string) { }); } +/** trigger Job by id */ +export function fetchTriggerJobParams(data: Api.Job.TriggerJobParams) { + return request({ + url: '/job/trigger', + method: 'post', + data + }); +} + /** job name list */ export function fetchGetJobNameList(params?: Api.Job.JobNameListSearchParams) { return request({ diff --git a/src/typings/api.d.ts b/src/typings/api.d.ts index 104768d..068a700 100644 --- a/src/typings/api.d.ts +++ b/src/typings/api.d.ts @@ -1006,6 +1006,11 @@ declare namespace Api { notifyScene?: string; }>; + type TriggerJobParams = { + jobId?: string; + tmpArgsStr?: string; + }; + /** JobTask search params */ type JobSearchParams = CommonType.RecordNullable< Pick< diff --git a/src/views/job/task/index.vue b/src/views/job/task/index.vue index e6d5f64..53fbc5f 100644 --- a/src/views/job/task/index.vue +++ b/src/views/job/task/index.vue @@ -2,7 +2,7 @@ import { NButton, NDropdown, NPopconfirm, NTag } from 'naive-ui'; import { useBoolean } from '@sa/hooks'; import { ref } from 'vue'; -import { fetchBatchDeleteJob, fetchGetJobPage, fetchTriggerJob, fetchUpdateJobStatus } from '@/service/api'; +import { fetchBatchDeleteJob, fetchGetJobPage, fetchUpdateJobStatus } from '@/service/api'; import { $t } from '@/locales'; import { useAppStore } from '@/store/modules/app'; import { useTable, useTableOperate } from '@/hooks/common/table'; @@ -12,6 +12,7 @@ import { useRouterPush } from '@/hooks/common/router'; import { useAuth } from '@/hooks/business/auth'; import { downloadFetch } from '@/utils/download'; import JobTaskOperateDrawer from './modules/job-task-operate-drawer.vue'; +import JobTaskTriggerModal from './modules/job-task-trigger-modal.vue'; import JobTaskSearch from './modules/job-task-search.vue'; import JobTaskDetailDrawer from './modules/job-task-detail-drawer.vue'; @@ -24,6 +25,8 @@ const { routerPushByKey } = useRouterPush(); const detailData = ref(); /** 详情页可见状态 */ const { bool: detailVisible, setTrue: openDetail } = useBoolean(false); +const triggerData = ref(); +const { bool: triggerVisible, setTrue: openTriggerModal } = useBoolean(false); const { columnChecks, columns, data, getData, loading, mobilePagination, searchParams, resetSearchParams } = useTable({ apiFn: fetchGetJobPage, @@ -245,16 +248,9 @@ const { columnChecks, columns, data, getData, loading, mobilePagination, searchP - handleTriggerJob(row.id!)}> - {{ - default: () => $t('common.confirmExecute'), - trigger: () => ( - - {$t('common.execute')} - - ) - }} - + handleTriggerJob(row)}> + {$t('common.execute')} + @@ -312,13 +308,9 @@ function copy(id: string) { handleCopy(id); } -async function handleTriggerJob(id: string) { - const { error } = await fetchTriggerJob(id); - if (error) { - window.$message?.error($t('common.executeFailed')); - } else { - window.$message?.success($t('common.executeSuccess')); - } +async function handleTriggerJob(job: Api.Job.Job) { + triggerData.value = job; + openTriggerModal(); } function goToBatch(jobId: string) { @@ -404,6 +396,7 @@ function handleExport() { @submitted="getData" /> + diff --git a/src/views/job/task/modules/job-task-trigger-modal.vue b/src/views/job/task/modules/job-task-trigger-modal.vue new file mode 100644 index 0000000..f3ec20a --- /dev/null +++ b/src/views/job/task/modules/job-task-trigger-modal.vue @@ -0,0 +1,402 @@ + + + + +