diff --git a/app/Http/Controllers/Api/ProjectController.php b/app/Http/Controllers/Api/ProjectController.php index 286982ff4..d7676e82d 100755 --- a/app/Http/Controllers/Api/ProjectController.php +++ b/app/Http/Controllers/Api/ProjectController.php @@ -164,7 +164,7 @@ class ProjectController extends AbstractController // $data = Project::find($project->id); $data->addLog("创建项目"); - $data->pushMsg('add', $data->toArray()); + $data->pushMsg('add', $data); return Base::retSuccess('添加成功', $data); } @@ -205,7 +205,7 @@ class ProjectController extends AbstractController $project->addLog("修改项目介绍"); } $project->save(); - $project->pushMsg('update', $project->toArray()); + $project->pushMsg('update', $project); // return Base::retSuccess('修改成功', $project); } @@ -469,7 +469,7 @@ class ProjectController extends AbstractController // $data = ProjectColumn::find($column->id); $data->project_task = []; - $data->pushMsg("add", $data->toArray()); + $data->pushMsg("add", $data); return Base::retSuccess('添加成功', $data); } @@ -509,7 +509,7 @@ class ProjectController extends AbstractController $column->color = $data['color']; } $column->save(); - $column->pushMsg("update", $column->toArray()); + $column->pushMsg("update", $column); return Base::retSuccess('修改成功', $column); } @@ -724,7 +724,7 @@ class ProjectController extends AbstractController ])); $data = [ 'new_column' => $newColumn, - 'task' => ProjectTask::with(['taskUser', 'taskTag'])->find($task->id)->toArray(), + 'task' => ProjectTask::with(['taskUser', 'taskTag'])->find($task->id), ]; $task->pushMsg('add', $data); return Base::retSuccess('添加成功', $data); @@ -753,7 +753,7 @@ class ProjectController extends AbstractController ]); $data = [ 'new_column' => null, - 'task' => ProjectTask::with(['taskUser', 'taskTag'])->find($task->id)->toArray(), + 'task' => ProjectTask::with(['taskUser', 'taskTag'])->find($task->id), ]; $task->pushMsg('add', $data); return Base::retSuccess('添加成功', $data); @@ -805,10 +805,9 @@ class ProjectController extends AbstractController // 更新任务 $task->updateTask($data, $updateContent); } - $data = $task->toArray(); - $data['is_subtask'] = $task->parent_id > 0; - $data['is_update_complete'] = $task->parent_id == 0 && $updateComplete; - $data['is_update_content'] = $updateContent; + $data = ProjectTask::with(['taskUser', 'taskTag'])->find($task->id); + $data->is_update_complete = $task->parent_id == 0 && $updateComplete; + $data->is_update_content = $updateContent; $task->pushMsg('update', $data); return Base::retSuccess('修改成功', $data); } @@ -865,7 +864,7 @@ class ProjectController extends AbstractController // $file = ProjectTaskFile::find($file->id); $task->addLog("上传文件:" . $file->name); - $task->pushMsg('upload', $file->toArray()); + $task->pushMsg('upload', $file); return Base::retSuccess("上传成功", $file); } } diff --git a/app/Models/Project.php b/app/Models/Project.php index b08294994..4b99213b2 100644 --- a/app/Models/Project.php +++ b/app/Models/Project.php @@ -298,7 +298,7 @@ class Project extends AbstractModel // 取消归档 $this->archived_at = null; $this->addLog("项目取消归档"); - $this->pushMsg('add', $this->toArray()); + $this->pushMsg('add', $this); } else { // 归档任务 $this->archived_at = $archived_at; diff --git a/app/Models/ProjectTask.php b/app/Models/ProjectTask.php index 2580c82bc..2034ef250 100644 --- a/app/Models/ProjectTask.php +++ b/app/Models/ProjectTask.php @@ -398,7 +398,7 @@ class ProjectTask extends AbstractModel } // 负责人 if (Arr::exists($data, 'owner')) { - $count = $this->task_user_count; + $count = $this->taskUser->count(); $array = []; $owner = is_array($data['owner']) ? $data['owner'] : [$data['owner']]; foreach ($owner as $uid) { @@ -418,17 +418,21 @@ class ProjectTask extends AbstractModel break; // 子任务只能是一个负责人 } } - ProjectTaskUser::whereTaskId($this->id)->whereOwner(1)->whereNotIn('userid', $array)->delete(); - $this->syncDialogUser(); - if (count($array) == 0) { - $this->addLog("删除{任务}负责人"); - } else { - if ($count == 0) { + if ($array) { + if ($count == 0 && count($array) == 1 && $array[0] == User::userid()) { $this->addLog("认领{任务}"); } else { - $this->addLog("修改{任务}负责人"); + $this->addLog("修改{任务}负责人:" . implode(",", $array)); } } + $rows = ProjectTaskUser::whereTaskId($this->id)->whereOwner(1)->whereNotIn('userid', $array)->get(); + if ($rows->isNotEmpty()) { + $this->addLog("删除{任务}负责人:" . $rows->implode('userid', ',')); + foreach ($rows as $row) { + $row->delete(); + } + } + $this->syncDialogUser(); } // 计划时间 if (Arr::exists($data, 'times')) { @@ -464,13 +468,17 @@ class ProjectTask extends AbstractModel ]); $array[] = $uid; } - ProjectTaskUser::whereTaskId($this->id)->whereOwner(0)->whereNotIn('userid', $array)->delete(); - $this->syncDialogUser(); - if (count($array) == 0) { - $this->addLog("删除{任务}协助人员"); - } else { - $this->addLog("修改{任务}协助人员"); + if ($array) { + $this->addLog("修改{任务}协助人员:" . implode(",", $array)); } + $rows = ProjectTaskUser::whereTaskId($this->id)->whereOwner(0)->whereNotIn('userid', $array)->get(); + if ($rows->isNotEmpty()) { + $this->addLog("删除{任务}协助人员:" . $rows->implode('userid', ',')); + foreach ($rows as $row) { + $row->delete(); + } + } + $this->syncDialogUser(); } // 背景色 if (Arr::exists($data, 'color') && $this->color != $data['color']) { @@ -624,7 +632,7 @@ class ProjectTask extends AbstractModel $this->addLog("任务取消归档:" . $this->name); $this->pushMsg('add', [ 'new_column' => null, - 'task' => ProjectTask::with(['taskUser', 'taskTag'])->find($this->id)->toArray(), + 'task' => ProjectTask::with(['taskUser', 'taskTag'])->find($this->id), ]); } else { // 归档任务 diff --git a/app/Models/ProjectUser.php b/app/Models/ProjectUser.php index aabe5920f..e7883e887 100644 --- a/app/Models/ProjectUser.php +++ b/app/Models/ProjectUser.php @@ -45,7 +45,6 @@ class ProjectUser extends AbstractModel $tasks = ProjectTask::whereProjectId($this->project_id)->authData($this->userid)->get(); foreach ($tasks as $task) { if (ProjectTaskUser::whereTaskId($task->id)->whereUserid($this->userid)->delete()) { - $task->pushMsg('update'); $task->syncDialogUser(); } } diff --git a/resources/assets/js/pages/manage/components/ProjectList.vue b/resources/assets/js/pages/manage/components/ProjectList.vue index c547c8c56..daf517efc 100644 --- a/resources/assets/js/pages/manage/components/ProjectList.vue +++ b/resources/assets/js/pages/manage/components/ProjectList.vue @@ -328,7 +328,17 @@
{{$L('移除成员负责的任务将变成无负责人,')}}
+{{$L('注意此操作不可逆!')}}
+