Ver Fonte

添加项目已关联需求公共查询列表

kely há 6 meses atrás
pai
commit
1fc3fb317f

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

@@ -17,6 +17,7 @@ use App\Http\Resources\API\ProjectDetailResource;
 use App\Http\Resources\API\ProjectGroupViewTaskResource;
 use App\Http\Resources\API\ProjectKanbanRequirementResource;
 use App\Http\Resources\API\ProjectKanbanTaskResource;
+use App\Http\Resources\API\ProjectRequirementSimpleResource;
 use App\Http\Resources\API\ProjectSimpleResource;
 use App\Http\Resources\API\RequirementGroupParentResource;
 use App\Http\Resources\API\RequirementGroupResource;
@@ -484,7 +485,21 @@ class ProjectController extends Controller
         return SimplePlanResource::collection($project->plans);
     }
 
+    //用于新建任务时的公共列表
+    public function publicSearchRequirement(Request $request,string $id)
+    {
+        $requirements=$this->getRequirement($request,$id);
+        return ProjectRequirementSimpleResource::collection($requirements);
+    }
+
+    //菜单页面管理的需求列表
     public function requirement(Request $request,string $id)
+    {
+        $requirements=$this->getRequirement($request,$id);
+        return ProjectRequirementResource::collection($requirements);
+    }
+
+    protected function getRequirement(Request $request,string $id)
     {
         $pageSize=$request->get('page_size') ?? 10;
         $project = Project::allowed($id)->findOrFail($id);
@@ -512,7 +527,7 @@ class ProjectController extends Controller
             ->with(['createdBy']) // 预加载 createdBy 关联
             ->paginate($pageSize);
 
-        return ProjectRequirementResource::collection($requirements);
+        return $requirements;
     }
 
     public function notLinkAssetRequirement(Request $request,string $id)

+ 17 - 0
app/Http/Resources/API/ProjectRequirementSimpleResource.php

@@ -0,0 +1,17 @@
+<?php
+
+namespace App\Http\Resources\API;
+
+use Illuminate\Http\Request;
+use Illuminate\Http\Resources\Json\JsonResource;
+
+class ProjectRequirementSimpleResource extends JsonResource
+{
+    public function toArray(Request $request): array
+    {
+        return [
+            'id' => $this->id,
+            'title' => $this->title,
+        ];
+    }
+}

+ 1 - 0
routes/api.php

@@ -41,6 +41,7 @@ Route::middleware(['auth:sanctum','account.limit'])->group(function () {
     Route::get("role-items",[API\RoleController::class, "publicSearch"]);
     Route::get("project-by-asset",[API\ProjectController::class, "byAsset"]);
     Route::get("project-items",[API\ProjectController::class, "publicSearch"]);
+    Route::get("project-requirement-items",[API\ProjectController::class, "publicSearchRequirement"]);
     Route::get("task-items",[API\TaskController::class, "publicSearch"]);
     Route::get("project-tree",[API\ProjectController::class, 'tree']);
     Route::get("plan-by-assets", [API\PlanController::class, "byAssets"]);