Explorar o código

调整任务看板分组以任务审批状态

kely hai 5 meses
pai
achega
117772d813

+ 2 - 1
app/Http/Controllers/API/ProjectController.php

@@ -30,6 +30,7 @@ use App\Models\Enums\ActionObjectType;
 use App\Models\Enums\FileObjectType;
 use App\Models\Enums\ObjectAction;
 use App\Models\Enums\ProjectStatus;
+use App\Models\Enums\TaskApprovalStatus;
 use App\Models\Enums\TaskStatus;
 use App\Models\Plan;
 use App\Models\Project;
@@ -629,7 +630,7 @@ class ProjectController extends Controller
             'data' => [
                 'requirements' => ProjectKanbanRequirementResource::collection($project->requirements),
                 'tasks' => ProjectKanbanTaskResource::collection($project->tasks),
-                'task_status' => TaskStatus::cases(),
+                'task_status' => TaskApprovalStatus::cases(),
             ]
         ]);
     }

+ 1 - 0
app/Http/Resources/API/ProjectKanbanTaskResource.php

@@ -19,6 +19,7 @@ class ProjectKanbanTaskResource extends JsonResource
             "name" => $this->name,
             "requirement_id" => $this->requirement_id,
             "status" => $this->status,
+            "approval_status"=> $this->approval_status,
             "assign" => new UserProfileResource($this->assignTo),
         ];
     }

+ 18 - 0
app/Models/Enums/TaskApprovalStatus.php

@@ -0,0 +1,18 @@
+<?php
+
+namespace App\Models\Enums;
+
+enum TaskApprovalStatus:string
+{
+    case WAIT = 'wait'; //未提交审批 Not Submitted
+
+    case DOING = 'doing'; //等待审批 Pending for Approval
+
+    case RESUBMISSION = 'resubmission'; //重新提交 C-Resubmission Reg'd
+
+    case APPROVED = 'approved'; //审批通过 A-Approved & B-Approved w/comment
+
+    case CANCEL = 'cancel'; //取消 Cancelled
+
+    case REJECTED = 'rejected'; //拒绝 D-Rejected
+}

+ 3 - 2
app/Services/Project/ProjectKanbanService.php

@@ -4,6 +4,7 @@ namespace App\Services\Project;
 
 use App\Http\Resources\API\KanbanTaskResource;
 use App\Http\Resources\API\UserProfileResource;
+use App\Models\Enums\TaskApprovalStatus;
 use App\Models\Enums\TaskStatus;
 use App\Models\Project;
 use App\Models\Requirement;
@@ -22,7 +23,7 @@ class ProjectKanbanService
 
         $groupTasks = $project->tasks()->with(['assignTo'])->get()->groupBy($groupKey);
 
-        $statusItems = array_column(TaskStatus::cases(), 'value');
+        $statusItems = array_column(TaskApprovalStatus::cases(), 'value');
 
         $items = [];
         $groupIds = [];
@@ -34,7 +35,7 @@ class ProjectKanbanService
             }
 
             foreach ($tasks as $task) {
-                $groupItems[$task->status][] = new KanbanTaskResource($task);
+                $groupItems[$task->approval_status][] = new KanbanTaskResource($task);
             }
 
             $items[$groupId ?: "empty"] = $groupItems;