diff --git a/apps/vue/src/views/task-management/background-jobs/components/BackgroundJobInfoModal.vue b/apps/vue/src/views/task-management/background-jobs/components/BackgroundJobInfoModal.vue index 00c22921a..6bed9c36c 100644 --- a/apps/vue/src/views/task-management/background-jobs/components/BackgroundJobInfoModal.vue +++ b/apps/vue/src/views/task-management/background-jobs/components/BackgroundJobInfoModal.vue @@ -121,7 +121,7 @@ import { BasicModal, useModal, useModalInner } from '/@/components/Modal'; import { BasicTable, BasicColumn, TableAction, useTable } from '/@/components/Table'; import { getById, create, update } from '/@/api/task-management/backgroundJobInfo'; - import { JobType, JobPriority, BackgroundJobInfo } from '/@/api/task-management/model/backgroundJobInfoModel'; + import { JobType, JobPriority, JobSource, BackgroundJobInfo } from '/@/api/task-management/model/backgroundJobInfoModel'; import { JobTypeMap, JobPriorityMap } from '../datas/typing'; const FormItem = Form.Item; @@ -132,6 +132,7 @@ const { L } = useLocalization('TaskManagement'); const { ruleCreator } = useValidation(); const { createMessage } = useMessage(); + const copyJob = ref(false); const formElRef = ref(); const activeKey = ref('basic'); const modelRef = ref({ @@ -139,12 +140,14 @@ isEnabled: true, priority: JobPriority.Normal, jobType: JobType.Once, + source: JobSource.User, maxCount: 0, maxTryCount: 0, args: {}, } as BackgroundJobInfo); const [registerModal, { closeModal, changeOkLoading }] = useModalInner((model) => { activeKey.value = 'basic'; + copyJob.value = model.copy ?? false; fetchModel(model.id); }); const [registerParamModal, { openModal: openParamModal, closeModal: closeParamModal }] = useModal(); @@ -280,6 +283,11 @@ return; } getById(id).then((res) => { + if (copyJob.value) { + res.id = ''; + res.name = ''; + res.source = JobSource.User; + } modelRef.value = res; }); } @@ -291,6 +299,7 @@ isEnabled: true, priority: JobPriority.Normal, jobType: JobType.Once, + source: JobSource.User, maxCount: 0, maxTryCount: 0, args: {}, diff --git a/apps/vue/src/views/task-management/background-jobs/components/BackgroundJobInfoTable.vue b/apps/vue/src/views/task-management/background-jobs/components/BackgroundJobInfoTable.vue index bb54fdc5c..7cb20f0d2 100644 --- a/apps/vue/src/views/task-management/background-jobs/components/BackgroundJobInfoTable.vue +++ b/apps/vue/src/views/task-management/background-jobs/components/BackgroundJobInfoTable.vue @@ -78,6 +78,11 @@ ifShow: [JobStatus.Running, JobStatus.Completed, JobStatus.FailedRetry].includes(record.status), onClick: handleTrigger.bind(null, record), }, + { + auth: 'TaskManagement.BackgroundJobs.Create', + label: L('BackgroundJobs:Copy'), + onClick: handleCopy.bind(null, record), + }, ]" /> @@ -207,4 +212,8 @@ }, }); } + + function handleCopy(record) { + openModal(true, { id: record.id, copy: true }); + } diff --git a/aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Domain.Shared/LINGYUN/Abp/TaskManagement/Localization/Resources/en.json b/aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Domain.Shared/LINGYUN/Abp/TaskManagement/Localization/Resources/en.json index 9be0d851e..0360c6b6b 100644 --- a/aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Domain.Shared/LINGYUN/Abp/TaskManagement/Localization/Resources/en.json +++ b/aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Domain.Shared/LINGYUN/Abp/TaskManagement/Localization/Resources/en.json @@ -83,6 +83,7 @@ "BackgroundJobs:Start": "Start Jobs", "BackgroundJobs:Stop": "Stop Jobs", "BackgroundJobs:Delete": "Delete", + "BackgroundJobs:Copy": "Copy Jobs", "BasicInfo": "Basic", "Paramters": "Paramters", "MultipleSelectJobsWillBeDeletedMessage": "Multiple jobs selected will be deleted!" diff --git a/aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Domain.Shared/LINGYUN/Abp/TaskManagement/Localization/Resources/zh-Hans.json b/aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Domain.Shared/LINGYUN/Abp/TaskManagement/Localization/Resources/zh-Hans.json index 6071a2531..a29f2c6e3 100644 --- a/aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Domain.Shared/LINGYUN/Abp/TaskManagement/Localization/Resources/zh-Hans.json +++ b/aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Domain.Shared/LINGYUN/Abp/TaskManagement/Localization/Resources/zh-Hans.json @@ -83,6 +83,7 @@ "BackgroundJobs:Start": "启动作业", "BackgroundJobs:Stop": "停止作业", "BackgroundJobs:Delete": "删除", + "BackgroundJobs:Copy": "复制作业", "BasicInfo": "基本信息", "Paramters": "参数列表", "MultipleSelectJobsWillBeDeletedMessage": "选择的多个作业将被删除!"