From 9509bd1510a9bd0d21662ef9609a8d16d6874542 Mon Sep 17 00:00:00 2001 From: weifashi <> Date: Wed, 28 May 2025 22:11:56 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E5=91=A8=E6=9C=9F=20=E5=AD=90=E4=BB=BB=E5=8A=A1=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E5=A4=8D=E5=88=B6=E8=BF=87=E5=8E=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Models/ProjectTask.php | 3 --- app/Tasks/LoopTask.php | 12 ++++++++++++ language/original-web.txt | 2 ++ .../assets/js/pages/manage/components/TaskDetail.vue | 12 +++++++++++- 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/app/Models/ProjectTask.php b/app/Models/ProjectTask.php index c985629f6..bd22dd6e3 100644 --- a/app/Models/ProjectTask.php +++ b/app/Models/ProjectTask.php @@ -1144,9 +1144,6 @@ class ProjectTask extends AbstractModel */ public function copyTask() { - if ($this->parent_id > 0) { - throw new ApiException('子任务禁止复制'); - } return AbstractModel::transaction(function() { // 复制任务 $task = $this->replicate(); diff --git a/app/Tasks/LoopTask.php b/app/Tasks/LoopTask.php index 301596e45..31071e023 100644 --- a/app/Tasks/LoopTask.php +++ b/app/Tasks/LoopTask.php @@ -60,6 +60,18 @@ class LoopTask extends AbstractTask $task->start_at = Carbon::parse($task->loop_at); $task->end_at = $task->start_at->clone()->addSeconds($diffSecond); } + // 处理子任务 + $subTasks = ProjectTask::whereParentId($item->id)->get(); + if (!$subTasks->isEmpty()) { + foreach ($subTasks as $subTask) { + $newSubTask = $subTask->copyTask(); + $newSubTask->parent_id = $task->id; + $newSubTask->start_at = $task->start_at; + $newSubTask->end_at = $task->end_at; + $newSubTask->save(); + } + } + // $task->refreshLoop(true); $task->addLog("创建任务来自周期任务ID:{$item->id}", [], $task->userid); // 清空旧周期 diff --git a/language/original-web.txt b/language/original-web.txt index 22d070a05..e0b608280 100644 --- a/language/original-web.txt +++ b/language/original-web.txt @@ -2072,3 +2072,5 @@ AI开启新会话失败 应用商店 打开OKR OKR群组 + +重复周期生成的子任务时间将会被清除,是否确认继续? \ No newline at end of file diff --git a/resources/assets/js/pages/manage/components/TaskDetail.vue b/resources/assets/js/pages/manage/components/TaskDetail.vue index d524f1c85..ec5df1f16 100755 --- a/resources/assets/js/pages/manage/components/TaskDetail.vue +++ b/resources/assets/js/pages/manage/components/TaskDetail.vue @@ -1537,7 +1537,17 @@ export default { list, size: 'large', onUpdate: (value) => { - this.updateData('loop', value) + if (this.subList.length > 0) { + $A.modalConfirm({ + language: false, + content: this.$L('重复周期生成的子任务时间将会被清除,是否确认继续?'), + onOk: () => { + this.updateData('loop', value) + } + }); + } else { + this.updateData('loop', value) + } } }) },