diff --git a/app/Models/ProjectTask.php b/app/Models/ProjectTask.php index f301c5cc..abc3ef76 100644 --- a/app/Models/ProjectTask.php +++ b/app/Models/ProjectTask.php @@ -342,11 +342,13 @@ class ProjectTask extends AbstractModel $content = $data['content']; $times = $data['times']; $owner = $data['owner']; + $add_assist = intval($data['add_assist']); $subtasks = $data['subtasks']; $p_level = intval($data['p_level']); $p_name = $data['p_name']; $p_color = $data['p_color']; $top = intval($data['top']); + $userid = User::userid(); // if (ProjectTask::whereProjectId($project_id) ->whereNull('project_tasks.complete_at') @@ -411,8 +413,13 @@ class ProjectTask extends AbstractModel $tmpArray[] = $uid; } $owner = $tmpArray; + // 协助人员 + $assist = []; + if (!in_array($userid, $owner) && $add_assist) { + $assist = [$userid]; + } // 创建人 - $task->userid = User::userid(); + $task->userid = $userid; // 排序位置 if ($top) { $task->sort = intval(self::whereColumnId($task->column_id)->orderBy('sort')->value('sort')) - 1; @@ -434,7 +441,7 @@ class ProjectTask extends AbstractModel } } // - return AbstractModel::transaction(function() use ($times, $subtasks, $content, $owner, $task) { + return AbstractModel::transaction(function() use ($assist, $times, $subtasks, $content, $owner, $task) { $task->save(); $owner = array_values(array_unique($owner)); foreach ($owner as $uid) { @@ -446,6 +453,16 @@ class ProjectTask extends AbstractModel 'owner' => 1, ])->save(); } + $assist = array_values(array_unique(array_diff($assist, $owner))); + foreach ($assist as $uid) { + ProjectTaskUser::createInstance([ + 'project_id' => $task->project_id, + 'task_id' => $task->id, + 'task_pid' => $task->parent_id ?: $task->id, + 'userid' => $uid, + 'owner' => 0, + ])->save(); + } if ($content) { ProjectTaskContent::createInstance([ 'project_id' => $task->project_id, diff --git a/resources/assets/js/pages/manage/components/TaskAdd.vue b/resources/assets/js/pages/manage/components/TaskAdd.vue index eb7e7571..4fdaf0ec 100644 --- a/resources/assets/js/pages/manage/components/TaskAdd.vue +++ b/resources/assets/js/pages/manage/components/TaskAdd.vue @@ -82,6 +82,12 @@ :multiple-max="10" :placeholder="$L('选择任务负责人')" :project-id="addData.project_id"/> +
+ {{$L('加入任务协助人员列表')}} + + + +
@@ -168,6 +174,7 @@ export default { name: "", content: "", owner: 0, + add_assist: 1, project_id: 0, column_id: 0, times: [], @@ -234,6 +241,14 @@ export default { } } return 0; + }, + + showAddAssist() { + const {owner} = this.addData; + if ($A.isArray(owner) && owner.includes(this.userId)) { + return false; + } + return owner != this.userId; } }, watch: { @@ -464,6 +479,7 @@ export default { name: "", content: "", owner: 0, + add_assist: 1, column_id: 0, times: [], subtasks: [], diff --git a/resources/assets/sass/pages/components/task-add.scss b/resources/assets/sass/pages/components/task-add.scss index c0ac68a0..3f9a832d 100644 --- a/resources/assets/sass/pages/components/task-add.scss +++ b/resources/assets/sass/pages/components/task-add.scss @@ -179,6 +179,16 @@ width: 100%; } } + .task-add-assist { + margin-top: 6px; + display: flex; + align-items: center; + justify-content: flex-end; + .ivu-icon { + font-size: 16px; + color: #999999; + } + } .ivu-modal-footer { padding: 26px 0 22px !important; }