From 4a42ce87a219ec37e71e98dec65f20ff5ab79284 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Tue, 25 Jan 2022 23:46:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B7=A5=E4=BD=9C=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E8=B4=9F=E8=B4=A3=E4=BA=BA=E6=96=B0=E5=A2=9E=E5=89=94=E9=99=A4?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=EF=BC=88=E6=94=B9=E5=8F=98=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E8=B4=9F=E8=B4=A3=E4=BA=BA=E5=B9=B6=E4=BF=9D=E7=95=99=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E7=8A=B6=E6=80=81=E7=9A=84=E4=BA=BA=E5=91=98=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Api/ProjectController.php | 3 +++ app/Models/ProjectTask.php | 9 +++++++-- .../js/pages/manage/components/ProjectWorkflow.vue | 2 ++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Api/ProjectController.php b/app/Http/Controllers/Api/ProjectController.php index 15be098a4..1190a68f3 100755 --- a/app/Http/Controllers/Api/ProjectController.php +++ b/app/Http/Controllers/Api/ProjectController.php @@ -1677,6 +1677,9 @@ class ProjectController extends AbstractController if ($usertype == 'replace' && empty($userids)) { throw new ApiException("状态[{$item['name']}]设置错误,设置流转模式时必须填写状态负责人"); } + if ($usertype == 'merge' && empty($userids)) { + throw new ApiException("状态[{$item['name']}]设置错误,设置剔除模式时必须填写状态负责人"); + } if ($userlimit && empty($userids)) { throw new ApiException("状态[{$item['name']}]设置错误,设置限制负责人时必须填写状态负责人"); } diff --git a/app/Models/ProjectTask.php b/app/Models/ProjectTask.php index d5b0c4a3f..b785c508a 100644 --- a/app/Models/ProjectTask.php +++ b/app/Models/ProjectTask.php @@ -541,13 +541,18 @@ class ProjectTask extends AbstractModel if ($newFlowItem->userids) { // 判断自动添加负责人 $flowData['owner'] = $data['owner'] = $this->taskUser->where('owner', 1)->pluck('userid')->toArray(); - if ($newFlowItem->usertype == "replace") { - // 流转模式 + if (in_array($newFlowItem->usertype, ["replace", "merge"])) { + // 流转模式、剔除模式 if ($this->parent_id === 0) { $flowData['assist'] = $data['assist'] = $this->taskUser->where('owner', 0)->pluck('userid')->toArray(); $data['assist'] = array_merge($data['assist'], $data['owner']); } $data['owner'] = $newFlowItem->userids; + // 判断剔除模式:保留操作状态的人员 + if ($newFlowItem->usertype == "merge") { + $data['assist'] = array_diff($data['assist'], [User::userid()]); + $data['owner'] = array_merge($data['owner'], [User::userid()]); + } } else { // 添加模式 $data['owner'] = array_merge($data['owner'], $newFlowItem->userids); diff --git a/resources/assets/js/pages/manage/components/ProjectWorkflow.vue b/resources/assets/js/pages/manage/components/ProjectWorkflow.vue index d75fcc4b7..6aa4bc4f3 100644 --- a/resources/assets/js/pages/manage/components/ProjectWorkflow.vue +++ b/resources/assets/js/pages/manage/components/ProjectWorkflow.vue @@ -149,8 +149,10 @@ {{$L('添加模式')}} {{$L('流转模式')}} + {{$L('剔除模式')}}
{{$L('流转到此状态时改变任务负责人为状态负责人,原本的任务负责人移至协助人员。')}}
+
{{$L('流转到此状态时改变任务负责人为状态负责人(并保留操作状态的人员),原本的任务负责人移至协助人员。')}}
{{$L('流转到此状态时添加状态负责人至任务负责人。')}}