fix: 修复重复周期 子任务没有复制过去

This commit is contained in:
weifashi 2025-05-28 22:11:56 +08:00
parent 3f11770baa
commit 9509bd1510
4 changed files with 25 additions and 4 deletions

View File

@ -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();

View File

@ -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);
// 清空旧周期

View File

@ -2072,3 +2072,5 @@ AI开启新会话失败
应用商店
打开OKR
OKR群组
重复周期生成的子任务时间将会被清除,是否确认继续?

View File

@ -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)
}
}
})
},