perf: 添加任务时如果自己不是任务负责人可选择加入协助人员列表
This commit is contained in:
parent
22c06fee5e
commit
60e47e85a3
@ -342,11 +342,13 @@ class ProjectTask extends AbstractModel
|
|||||||
$content = $data['content'];
|
$content = $data['content'];
|
||||||
$times = $data['times'];
|
$times = $data['times'];
|
||||||
$owner = $data['owner'];
|
$owner = $data['owner'];
|
||||||
|
$add_assist = intval($data['add_assist']);
|
||||||
$subtasks = $data['subtasks'];
|
$subtasks = $data['subtasks'];
|
||||||
$p_level = intval($data['p_level']);
|
$p_level = intval($data['p_level']);
|
||||||
$p_name = $data['p_name'];
|
$p_name = $data['p_name'];
|
||||||
$p_color = $data['p_color'];
|
$p_color = $data['p_color'];
|
||||||
$top = intval($data['top']);
|
$top = intval($data['top']);
|
||||||
|
$userid = User::userid();
|
||||||
//
|
//
|
||||||
if (ProjectTask::whereProjectId($project_id)
|
if (ProjectTask::whereProjectId($project_id)
|
||||||
->whereNull('project_tasks.complete_at')
|
->whereNull('project_tasks.complete_at')
|
||||||
@ -411,8 +413,13 @@ class ProjectTask extends AbstractModel
|
|||||||
$tmpArray[] = $uid;
|
$tmpArray[] = $uid;
|
||||||
}
|
}
|
||||||
$owner = $tmpArray;
|
$owner = $tmpArray;
|
||||||
|
// 协助人员
|
||||||
|
$assist = [];
|
||||||
|
if (!in_array($userid, $owner) && $add_assist) {
|
||||||
|
$assist = [$userid];
|
||||||
|
}
|
||||||
// 创建人
|
// 创建人
|
||||||
$task->userid = User::userid();
|
$task->userid = $userid;
|
||||||
// 排序位置
|
// 排序位置
|
||||||
if ($top) {
|
if ($top) {
|
||||||
$task->sort = intval(self::whereColumnId($task->column_id)->orderBy('sort')->value('sort')) - 1;
|
$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();
|
$task->save();
|
||||||
$owner = array_values(array_unique($owner));
|
$owner = array_values(array_unique($owner));
|
||||||
foreach ($owner as $uid) {
|
foreach ($owner as $uid) {
|
||||||
@ -446,6 +453,16 @@ class ProjectTask extends AbstractModel
|
|||||||
'owner' => 1,
|
'owner' => 1,
|
||||||
])->save();
|
])->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) {
|
if ($content) {
|
||||||
ProjectTaskContent::createInstance([
|
ProjectTaskContent::createInstance([
|
||||||
'project_id' => $task->project_id,
|
'project_id' => $task->project_id,
|
||||||
|
@ -82,6 +82,12 @@
|
|||||||
:multiple-max="10"
|
:multiple-max="10"
|
||||||
:placeholder="$L('选择任务负责人')"
|
:placeholder="$L('选择任务负责人')"
|
||||||
:project-id="addData.project_id"/>
|
: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>
|
</FormItem>
|
||||||
<div class="subtasks">
|
<div class="subtasks">
|
||||||
<div v-if="addData.subtasks.length > 0" class="sublist">
|
<div v-if="addData.subtasks.length > 0" class="sublist">
|
||||||
@ -168,6 +174,7 @@ export default {
|
|||||||
name: "",
|
name: "",
|
||||||
content: "",
|
content: "",
|
||||||
owner: 0,
|
owner: 0,
|
||||||
|
add_assist: 1,
|
||||||
project_id: 0,
|
project_id: 0,
|
||||||
column_id: 0,
|
column_id: 0,
|
||||||
times: [],
|
times: [],
|
||||||
@ -234,6 +241,14 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
},
|
||||||
|
|
||||||
|
showAddAssist() {
|
||||||
|
const {owner} = this.addData;
|
||||||
|
if ($A.isArray(owner) && owner.includes(this.userId)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return owner != this.userId;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
@ -464,6 +479,7 @@ export default {
|
|||||||
name: "",
|
name: "",
|
||||||
content: "",
|
content: "",
|
||||||
owner: 0,
|
owner: 0,
|
||||||
|
add_assist: 1,
|
||||||
column_id: 0,
|
column_id: 0,
|
||||||
times: [],
|
times: [],
|
||||||
subtasks: [],
|
subtasks: [],
|
||||||
|
@ -179,6 +179,16 @@
|
|||||||
width: 100%;
|
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 {
|
.ivu-modal-footer {
|
||||||
padding: 26px 0 22px !important;
|
padding: 26px 0 22px !important;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user