perf: 添加任务时如果自己不是任务负责人可选择加入协助人员列表

This commit is contained in:
kuaifan 2022-01-26 01:12:00 +08:00
parent 22c06fee5e
commit 60e47e85a3
3 changed files with 45 additions and 2 deletions

View File

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

View File

@ -82,6 +82,12 @@
:multiple-max="10"
:placeholder="$L('选择任务负责人')"
:project-id="addData.project_id"/>
<div v-if="showAddAssist" class="task-add-assist">
<Checkbox v-model="addData.add_assist" :true-value="1" :false-value="0">{{$L('加入任务协助人员列表')}}</Checkbox>
<ETooltip :content="$L('你不是任务负责人时建议加入任务协助人员列表')">
<Icon type="ios-alert-outline" />
</ETooltip>
</div>
</FormItem>
<div class="subtasks">
<div v-if="addData.subtasks.length > 0" class="sublist">
@ -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: [],

View File

@ -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;
}