Przeglądaj źródła

创建的临时项目序号,从1~n依次排列

kely 5 miesięcy temu
rodzic
commit
2a9d898282
42 zmienionych plików z 165 dodań i 35 usunięć
  1. 2 1
      app/Http/Controllers/API/ApprovalController.php
  2. 1 1
      app/Http/Controllers/API/ApprovalFlowController.php
  3. 6 2
      app/Http/Controllers/API/AssetController.php
  4. 2 0
      app/Http/Controllers/API/AssetGroupController.php
  5. 2 0
      app/Http/Controllers/API/CompanyController.php
  6. 22 16
      app/Http/Controllers/API/ContainerController.php
  7. 3 0
      app/Http/Controllers/API/DepartmentController.php
  8. 21 2
      app/Http/Controllers/API/FolderController.php
  9. 3 1
      app/Http/Controllers/API/LibraryController.php
  10. 1 1
      app/Http/Controllers/API/NameRuleController.php
  11. 1 1
      app/Http/Controllers/API/NotificationController.php
  12. 6 2
      app/Http/Controllers/API/PlanController.php
  13. 6 1
      app/Http/Controllers/API/ProjectController.php
  14. 2 1
      app/Http/Controllers/API/RequirementController.php
  15. 1 0
      app/Http/Controllers/API/RequirementGroupController.php
  16. 1 1
      app/Http/Controllers/API/SystemOperationLogController.php
  17. 1 0
      app/Http/Controllers/API/TaskController.php
  18. 10 2
      app/Http/Controllers/API/TeamMemberController.php
  19. 3 0
      app/Http/Controllers/API/UserController.php
  20. 1 0
      app/Http/Resources/API/ApprovalCollection.php
  21. 1 0
      app/Http/Resources/API/ApprovalFlowResource.php
  22. 1 0
      app/Http/Resources/API/AssetGroupResource.php
  23. 1 0
      app/Http/Resources/API/AssetRequirementResource.php
  24. 1 0
      app/Http/Resources/API/CompanyResource.php
  25. 3 0
      app/Http/Resources/API/ContainerReportResource.php
  26. 2 1
      app/Http/Resources/API/FileAttachmentResource.php
  27. 1 0
      app/Http/Resources/API/FileByObjectResource.php
  28. 3 0
      app/Http/Resources/API/LibraryReportResource.php
  29. 1 0
      app/Http/Resources/API/NamingRuleResource.php
  30. 1 0
      app/Http/Resources/API/NotificationCollection.php
  31. 1 0
      app/Http/Resources/API/PlanByAssetResource.php
  32. 1 0
      app/Http/Resources/API/ProjectRequirementResource.php
  33. 1 0
      app/Http/Resources/API/ProjectRequirementSimpleResource.php
  34. 1 0
      app/Http/Resources/API/ProjectResource.php
  35. 1 0
      app/Http/Resources/API/ProjectSimpleResource.php
  36. 7 1
      app/Http/Resources/API/RequirementGroupResource.php
  37. 1 0
      app/Http/Resources/API/RequirementSimpleResource.php
  38. 1 0
      app/Http/Resources/API/SystemOperationLogResource.php
  39. 6 1
      app/Http/Resources/API/TaskResource.php
  40. 1 0
      app/Http/Resources/API/TeamMemberResource.php
  41. 1 0
      app/Http/Resources/API/UserSimpleResource.php
  42. 33 0
      app/helpers.php

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

@@ -41,13 +41,14 @@ class ApprovalController extends Controller
         };
 
         $approvals = $query->filter($request->all())->orderByDesc("created_at")->paginate($pageSize);
-
+        make_display_id($approvals,$pageSize);
         return new ApprovalCollection($approvals);
     }
 
     public function publicSearch(Request $request){
         $pageSize=$request->get('page_size') ?? 10;
         $approvals= Approval::filter($request->all())->allowed(true)->orderByDesc("created_at")->paginate($pageSize);
+        make_display_id($approvals,$pageSize);
         return new ApprovalCollection($approvals);
     }
 

+ 1 - 1
app/Http/Controllers/API/ApprovalFlowController.php

@@ -18,7 +18,7 @@ class ApprovalFlowController extends Controller
     {
         $pageSize=$request->get('page_size') ?? 10;
         $approvalFlows = ApprovalFlow::query()->with(['createdBy'])->orderByDesc("id")->paginate($pageSize);
-
+        make_display_id($approvalFlows,$pageSize);
         return ApprovalFlowResource::collection($approvalFlows);
     }
 

+ 6 - 2
app/Http/Controllers/API/AssetController.php

@@ -41,8 +41,10 @@ class AssetController extends Controller
             $asset->plan_total = $asset->total_plans_count;
         });
 
+        $resultAssetsTree=make_tree($resultAssets->toArray());
+        make_tree_display_id($resultAssetsTree, 0);
         return $this->success([
-            'data' => make_tree($resultAssets->toArray())
+            'data' => $resultAssetsTree
         ]);
 
 
@@ -62,8 +64,10 @@ class AssetController extends Controller
         }
 
         $resultAssets = Asset::whereIn('id', $fullAsset)->orderByDesc('created_at')->get();
+        $resultAssetsTree=make_tree($resultAssets->toArray());
+        make_tree_display_id($resultAssetsTree, 0);
         return $this->success([
-            'data' => make_tree($resultAssets->toArray())
+            'data' => $resultAssetsTree
         ]);
 
 

+ 2 - 0
app/Http/Controllers/API/AssetGroupController.php

@@ -19,6 +19,8 @@ class AssetGroupController extends Controller
     {
         $pageSize=$request->get('page_size') ?? 10;
         $groups = AssetGroup::filter($request->all())->orderByDesc("sequence")->paginate($pageSize);
+
+        make_display_id($groups,$pageSize);
         return AssetGroupResource::collection($groups);
     }
 

+ 2 - 0
app/Http/Controllers/API/CompanyController.php

@@ -40,10 +40,12 @@ class CompanyController extends Controller
         $pageSize=$request->get('page_size') ?? 0;
         if(Auth::user()->super_admin){
             $company=Company::query()->filter($request->all())->paginate($pageSize);
+            make_display_id($company,$pageSize);
             return CompanyResource::collection($company);
         }else{
             $companyId=Auth::user()->company->id;
             $company=Company::query()->filter($request->all())->where('id',$companyId)->paginate($pageSize);
+            make_display_id($company,$pageSize);
             return CompanyResource::collection($company);
         }
 

+ 22 - 16
app/Http/Controllers/API/ContainerController.php

@@ -55,11 +55,12 @@ class ContainerController extends Controller
             ->groupBy("object_id")
             ->pluck("cut", "object_id");
 
-
-        $containers = $containers->map(function (Container $container) use ($foldsCount,$fileCount) {
+        $index=1;
+        $containers = $containers->map(function (Container $container) use ($foldsCount,$fileCount,&$index) {
             $container->itemCount =$foldsCount->get($container->id, 0)+$fileCount->get($container->id, 0);
             $container->type = 'container';
             $container->uniId = $container->type . '_' . $container->id;
+            $container->display_id=(string)$index++;
             return $container;
         });
 
@@ -231,6 +232,7 @@ class ContainerController extends Controller
     public function attachments(Request $request){
         $folderObjectType = FileObjectType::from($request->object_type);
         $object=$folderObjectType->modelBuilderAllowed()->findOrFail($request->object_id);
+        $pageSize = $request->get('page_size') ?? 10;
         if($folderObjectType->value==='asset'){
             $object->load('requirements');
             $requirementsId=$object->requirements->pluck('id');
@@ -239,14 +241,15 @@ class ContainerController extends Controller
                     ->whereIn('object_id',$requirementsId)
                     ->where('is_latest_version',1)
                     ->where('source',1)
-                    ->get()->map(function (File $file) use($object){
-                        $requirement = $object->requirements->where('id',$file->object_id)->first();
-                        $file->source_name =$requirement ? $requirement->title : null;
-                        $file->type='requirement';
-                        return $file;
-                    });
-
-
+                    ->paginate($pageSize);
+
+                $filesWithRequirements->transform(function (File $file) use ($object) {
+                    $requirement = $object->requirements->where('id',$file->object_id)->first();
+                    $file->source_name = $requirement ? $requirement->title : null;
+                    $file->type = 'requirement';
+                    return $file;
+                });
+                make_display_id($filesWithRequirements,$pageSize);
                 return FileAttachmentResource::collection($filesWithRequirements);
             }
         }else if($folderObjectType->value==='project'){
@@ -257,13 +260,16 @@ class ContainerController extends Controller
                     ->whereIn('object_id',$tasksId)
                     ->where('is_latest_version',1)
                     ->where('source',1)
-                    ->get()->map(function ($file) use($object){
-                        $task = $object->tasks->where('id',$file->object_id)->first();
-                        $file->source_name =$task ? $task->name : null;
-                        $file->type='task';
-                        return $file;
+                    ->paginate($pageSize);
+
+                $filesWithTasks->transform(function (File $file) use ($object) {
+                    $task = $object->tasks->where('id',$file->object_id)->first();
+                    $file->source_name = $task ? $task->name : null;
+                    $file->type = 'requirement';
+                    return $file;
+                });
 
-                    });
+                make_display_id($filesWithTasks,$pageSize);
                 return FileAttachmentResource::collection($filesWithTasks);
             }
         }

+ 3 - 0
app/Http/Controllers/API/DepartmentController.php

@@ -30,7 +30,10 @@ class DepartmentController extends Controller
         $departments = Department::filter($request->all())->orderBy('created_at', $sort)->paginate($pageSize);
         $departmentTree = !empty(make_tree($departments->toArray()['data'])) ? make_tree($departments->toArray()['data']) : $departments->toArray()['data'];
 
+        $page = $departments->currentPage();
 
+        $newId = ($page - 1) * $pageSize+1;
+        make_tree_display_id($departmentTree,$newId,$newId);
         return [
             'data' => $departmentTree,
             'total' => $departments->total(),

+ 21 - 2
app/Http/Controllers/API/FolderController.php

@@ -276,10 +276,12 @@ class FolderController extends Controller
             ->groupBy("folder_id")
             ->pluck("cut", "folder_id");
 
-        $folders = $folders->map(function (Folder $folder) use ($sonFolderCount,$sonFileCount) {
+        $index=1;
+        $folders = $folders->map(function (Folder $folder) use ($sonFolderCount,$sonFileCount,&$index) {
             $folder->itemCount =$sonFolderCount->get($folder->id, 0)+$sonFileCount->get($folder->id, 0);
             $folder->type = 'folder';
             $folder->uniId = $folder->type . '_' . $folder->id;
+            $folder->display_id=(string)$index++;
             return $folder;
         });
 
@@ -291,6 +293,12 @@ class FolderController extends Controller
             ->where("is_latest_version", 1)
             ->orderBy('updated_at', $orderBy)
             ->get();
+        //因为要接着文件夹进行文件id递增
+        $folderCount=$folders->count()+1;
+        $files->map(function (File $file) use (&$folderCount) {
+            $file->display_id=$folderCount++;
+        });
+
 
         return $this->success([
             'data' => [
@@ -355,13 +363,24 @@ class FolderController extends Controller
             ->get();
 
         $newFolders=$folders?$service->folderFormat($folders):[];
+        $index=1;
+        $newFolders = array_map(function ($folder) use (&$index) {
+            $folder['display_id'] = (string)$index++;
+            return $folder;
+        }, $newFolders);
+
         $file=File::query()
             ->where($objectWhere)
             ->where('title','like',"%$name%")
             ->where("is_latest_version", 1)
             ->get();
-
         $newFiles=$file?$service->filesFormat($file):[];
+        $folderCount=count($newFolders)+1;
+        $newFiles = array_map(function ($file) use (&$folderCount) {
+            $file['display_id'] = (string)$folderCount++;
+            return $file;
+        }, $newFiles);
+
 
         return $this->success([
             'data' => [

+ 3 - 1
app/Http/Controllers/API/LibraryController.php

@@ -26,10 +26,12 @@ class LibraryController extends Controller
             ->groupBy("library_id")
             ->pluck("cut", "library_id");
 
-        $libraries = $libraries->map(function (Library $library) use ($containerCount) {
+        $index=1;
+        $libraries = $libraries->map(function (Library $library) use ($containerCount,&$index) {
             $library->itemCount = $containerCount->get($library->id, 0);
             $library->type = 'library';
             $library->uniId = $library->type . '_' . $library->id;
+            $library->display_id=(string)$index++;
             return $library;
         });
 

+ 1 - 1
app/Http/Controllers/API/NameRuleController.php

@@ -26,7 +26,7 @@ class NameRuleController extends Controller
     {
         $pageSize=$request->get('page_size') ?? 10;
         $namingRules = NamingRule::allowed()->with(['company'])->filter($request->all())->paginate($pageSize);
-
+        make_display_id($namingRules,$pageSize);
         return NamingRuleResource::collection($namingRules);
     }
 

+ 1 - 1
app/Http/Controllers/API/NotificationController.php

@@ -30,7 +30,7 @@ class NotificationController extends Controller
             ->selectRaw("notifications.*,notification_records.read_at")
             ->orderByDesc("created_at")
             ->paginate($pageSize);
-
+        make_display_id($notifications,$pageSize);
         return new NotificationCollection($notifications);
     }
 

+ 6 - 2
app/Http/Controllers/API/PlanController.php

@@ -26,6 +26,10 @@ class PlanController extends Controller
         $pageSize=$request->get('page_size') ?? 10;
         $plan=Plan::filter($request->all())->allowed()->orderBy('created_at',$sort)->paginate($pageSize);
 
+        $page = $plan->currentPage();
+
+        $newId = ($page - 1) * $pageSize+1;
+
         $planTree=$plan->each(function ($plan){
             $plan->asset_name= $plan->asset ?  $plan->asset->name : null;
             $plan->requirement_total = $plan->requirements()->count();
@@ -33,7 +37,7 @@ class PlanController extends Controller
         });
 
         $planTree=!empty(make_tree($planTree->toArray()))?make_tree($planTree->toArray()):$planTree->toArray();
-
+        make_tree_display_id($planTree,$newId,$newId);
         return $this->success([
             'data' => $planTree,
             'total'=>$plan->total()
@@ -76,7 +80,7 @@ class PlanController extends Controller
         }
 
         $plans = Plan::query()->allowed()->with(['asset'])->whereIn("asset_id", $assets->toArray())->orderBy('created_at',$sort)->paginate($pageSize);;
-
+        make_display_id($plans,$pageSize);
         return PlanByAssetResource::collection($plans);
     }
 

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

@@ -80,7 +80,9 @@ class ProjectController extends Controller
     protected function getProject(Request $request){
         $pageSize=$request->get('page_size') ?? 10;
         $sort=$request->input('sort','desc');
-        return Project::filter($request->all())->allowed()->orderBy('created_at',$sort)->with('assets')->paginate($pageSize);
+        $projects=Project::filter($request->all())->allowed()->orderBy('created_at',$sort)->with('assets')->paginate($pageSize);
+        make_display_id($projects,$pageSize);
+        return $projects;
     }
 
     public function byAsset(Request $request)
@@ -528,6 +530,8 @@ class ProjectController extends Controller
             ->with(['createdBy']) // 预加载 createdBy 关联
             ->paginate($pageSize);
 
+        make_display_id($requirements,$pageSize);
+
         return $requirements;
     }
 
@@ -540,6 +544,7 @@ class ProjectController extends Controller
             ? Requirement::query()->whereIn('asset_id', $project->assets?->pluck('id')->toArray())->whereNotIn('id', $project->requirements?->pluck('id')->toArray())->paginate($pageSize)
             : [];
 
+        make_display_id($requirements,$pageSize);
         return AssetRequirementResource::collection($requirements);
     }
 

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

@@ -47,6 +47,7 @@ class RequirementController extends Controller
             ->with(['createdBy', 'plan','group','asset.parent','projects'])
             ->paginate($pageSize);
 
+        make_display_id($requirements,$pageSize);
         return AssetRequirementResource::collection($requirements);
     }
 
@@ -60,7 +61,7 @@ class RequirementController extends Controller
             ->where('company_id',Auth::user()->company_id)
             ->orderByDesc('created_at')
             ->paginate($pageSize);
-
+        make_display_id($requirements,$pageSize);
         return RequirementSimpleResource::collection($requirements);
     }
 

+ 1 - 0
app/Http/Controllers/API/RequirementGroupController.php

@@ -20,6 +20,7 @@ class RequirementGroupController extends Controller
         $pageSize=$request->get('page_size') ?? 10;
         $groups = RequirementGroup::filter($request->all())->where("parent_id",0)->with(['children','asset'])->paginate($pageSize);
 
+        make_display_id($groups,$pageSize);
         return RequirementGroupResource::collection($groups);
     }
 

+ 1 - 1
app/Http/Controllers/API/SystemOperationLogController.php

@@ -16,7 +16,7 @@ class SystemOperationLogController extends Controller
             ->orderByDesc("request_at")
             ->filter($request->all())
             ->paginate($pageSize);
-
+        make_display_id($logs,$pageSize);
         return SystemOperationLogResource::collection($logs);
     }
 }

+ 1 - 0
app/Http/Controllers/API/TaskController.php

@@ -62,6 +62,7 @@ class TaskController extends Controller
             ->allowed()
             ->orderBy('created_at',$sort)
             ->paginate($pageSize);
+        make_display_id($tasks,$pageSize);
         return $tasks;
     }
 

+ 10 - 2
app/Http/Controllers/API/TeamMemberController.php

@@ -38,9 +38,17 @@ class TeamMemberController extends Controller
             }
         }]);
 
-        return TeamMemberResource::collection($project->teamMembers->filter(function ($teamMember) {
+        $teamMembers=$project->teamMembers->filter(function ($teamMember) {
             return $teamMember->user !== null;
-        }));
+        });
+
+        $newId=1;
+        foreach ($teamMembers as $teamMember) {
+            $teamMember->display_id = (string)$newId++;
+        }
+
+
+        return TeamMemberResource::collection($teamMembers);
     }
 
     /**

+ 3 - 0
app/Http/Controllers/API/UserController.php

@@ -78,12 +78,14 @@ class UserController extends Controller
         //超管能看到所有用户
         if(Auth::user()->super_admin){
             $user = User::query()->filter($request->all())->with(['department'])->orderBy('created_at',$sort)->paginate($pageSize);
+            make_display_id($user,$pageSize);
             return UserSimpleResource::collection($user);
         }
         //普通管理员能看到自己公司的用户
         $user=User::query()
             ->where('company_id',Auth::user()->company_id)
             ->filter($request->all())->with(['department'])->orderBy('created_at',$sort)->paginate($pageSize);
+        make_display_id($user,$pageSize);
         return UserSimpleResource::collection($user);
     }
 
@@ -93,6 +95,7 @@ class UserController extends Controller
         $user=User::query()
             ->where('company_id',Auth::user()->company_id)
             ->filter($request->all())->orderBy('created_at',$sort)->paginate($pageSize);
+        make_display_id($user,$pageSize);
         return UserSimpleResource::collection($user);
     }
 

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

@@ -31,6 +31,7 @@ class ApprovalCollection extends ResourceCollection
                 'object_id' => $approval->object_id,
                 'node_level' => $approval->node_level,
                 'created_by' => new UserProfileResource($approval->createdBy),
+                'display_id' => $approval->display_id,
                 'object' => [
                     'id' => $approval->object_id,
                     'name' => data_get($groupObjects, sprintf("%s.%s", $approval->object_type, $approval->object_id)),

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

@@ -26,6 +26,7 @@ class ApprovalFlowResource extends JsonResource
             'link_project'=>$projecName==null?null:$projecName->name,
             'created_at' => (string)$this->created_at,
             'created_by' => new UserProfileResource($this->createdBy),
+            'display_id' =>$this->display_id,
         ];
     }
 }

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

@@ -20,6 +20,7 @@ class AssetGroupResource extends JsonResource
             'sequence' => $this->sequence,
             'created_at' => (string) $this->created_at,
             'updated_at' => (string) $this->updated_at,
+            'display_id'=>$this->display_id,
         ];
     }
 }

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

@@ -29,6 +29,7 @@ class AssetRequirementResource extends JsonResource
             'asset' => new AssetParentResource($this->asset),
             'created_at'=>(string)$this->created_at,
             'approval_status' => $this->approval_status,
+            'display_id'=>$this->display_id,
         ];
     }
 }

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

@@ -22,6 +22,7 @@ class CompanyResource extends JsonResource
           'email' => $this->email,
           'review_status' => $this->review_status,
           'exp_date' => $this->exp_date,
+          'display_id' => $this->display_id,
         ];
     }
 

+ 3 - 0
app/Http/Resources/API/ContainerReportResource.php

@@ -14,8 +14,10 @@ use Illuminate\Http\Resources\Json\JsonResource;
 
 class ContainerReportResource extends JsonResource
 {
+    private static $index = 1;
     public function toArray(Request $request): array
     {
+        $displayId = self::$index++;
         return [
             'id' => $this->id,
             'name' => $this->name,
@@ -23,6 +25,7 @@ class ContainerReportResource extends JsonResource
             'menus_type'=>$this->library->type,
             'created_at' => (string)$this->created_at,
             'updated_at' => (string)$this->updated_at,
+            'display_id'=>(string)$displayId,
         ];
     }
 

+ 2 - 1
app/Http/Resources/API/FileAttachmentResource.php

@@ -21,7 +21,8 @@ class FileAttachmentResource extends JsonResource
             'created_at' => (string) $this->created_at,
             'version' => $this->version,
             'source_name'=> $this->source_name,
-            'type'=>$this->type
+            'type'=>$this->type,
+            'display_id'=>$this->display_id,
         ];
 
         if ($this->is_bim == 1 && $this->bimFile && $this->bimFile->convert_status == BimFileConvertStatus::DONE->value) {

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

@@ -27,6 +27,7 @@ class FileByObjectResource extends JsonResource
             'created_by' => $this->createdBy ? new UserProfileResource($this->createdBy) : null,
             'created_at' => (string) $this->created_at,
             'version' => $this->version,
+            'display_id'=>(string)$this->display_id,
         ];
 
         if ($this->is_bim == 1 && $this->bimFile && $this->bimFile->convert_status == BimFileConvertStatus::DONE->value) {

+ 3 - 0
app/Http/Resources/API/LibraryReportResource.php

@@ -14,8 +14,10 @@ use Illuminate\Http\Resources\Json\JsonResource;
 
 class LibraryReportResource extends JsonResource
 {
+    private static $index = 1;
     public function toArray(Request $request): array
     {
+        $displayId = self::$index++;
         return [
             'id' => $this->id,
             'name' => $this->name,
@@ -23,6 +25,7 @@ class LibraryReportResource extends JsonResource
             'type'=>'library',
             'created_at' => (string)$this->created_at,
             'updated_at' => (string)$this->updated_at,
+            'display_id'=>(string)$displayId,
         ];
     }
 

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

@@ -20,6 +20,7 @@ class NamingRuleResource extends JsonResource
             'global' => $this->global,
             'status' => $this->status,
             'company' => new SimpleCompanyResource($this->company),
+            'display_id' => $this->display_id,
         ];
     }
 }

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

@@ -34,6 +34,7 @@ class NotificationCollection extends ResourceCollection
                     'created_by' => new UserProfileResource($action->createdBy),
                     'comment' => $action->commtent,
                     'object_type' => $action->object_type,
+                    'display_id'=>$action->display_id,
                     'object' => [
                         'id' => $action->object_id,
                         'name' => data_get($actionGroupObjects, sprintf("%s.%s", $action->object_type, $action->object_id)),

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

@@ -21,6 +21,7 @@ class PlanByAssetResource extends JsonResource
             'asset_name' => $this->asset ?  $this->asset->name : null,
             'begin' => $this->begin,
             'end' => $this->end,
+            'display_id'=>$this->display_id,
         ];
     }
 }

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

@@ -24,6 +24,7 @@ class ProjectRequirementResource extends JsonResource
             'plan' => new SimplePlanResource($this->plan),
             'status' => $this->status,
             'approval_status' => $this->approval_status,
+            'display_id' => $this->display_id,
         ];
     }
 }

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

@@ -12,6 +12,7 @@ class ProjectRequirementSimpleResource extends JsonResource
         return [
             'id' => $this->id,
             'title' => $this->title,
+            'display_id' =>$this->display_id,
         ];
     }
 }

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

@@ -34,6 +34,7 @@ class ProjectResource extends JsonResource
             //'asset' => new AssetParentResource($this->asset),
             'approval_status'=>$this->approval_status,
             'cost_unit'=>$this->cost_unit,
+            'display_id'=>$this->display_id,
         ];
     }
 }

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

@@ -17,6 +17,7 @@ class ProjectSimpleResource extends JsonResource
         return [
             'id' => $this->id,
             'name' => $this->name,
+            'display_id'=>$this->display_id,
         ];
     }
 }

+ 7 - 1
app/Http/Resources/API/RequirementGroupResource.php

@@ -23,12 +23,18 @@ class RequirementGroupResource extends JsonResource
             'asset'=>new SimpleAssetResource($this->asset),
             'abbr_name'=>$this->abbr_name,
             'parent_id' => $this->parent_id,
+            'display_id'=>$this->display_id,
             //'children' =>$this->parent_id == 0 ? RequirementGroupResource::collection($this->children) : [],
             'children' =>$this->when($this->children->isNotEmpty(),function (){
-                return $this->children->map(function ($child){
+                $index=1;
+                return $this->children->map(function ($child)use (&$index){
+                    //自增id
+                    $child->display_id=$this->display_id.'.'.$index;
+                    $index++;
                     return new RequirementGroupResource($child);
                 })->all();
             })
+
         ];
     }
 }

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

@@ -23,6 +23,7 @@ class RequirementSimpleResource extends JsonResource
             'asset' => new AssetParentResource($this->asset),
             'status' => $this->status,
             'priority' => $this->priority,
+            'display_id'=>$this->display_id,
         ];
     }
 }

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

@@ -22,6 +22,7 @@ class SystemOperationLogResource extends BaseResource
             'browser' => $this->browser,
             'platform' => $this->platform,
             'request_at' => (string)$this->request_at,
+            'display_id' => $this->display_id,
         ];
     }
 }

+ 6 - 1
app/Http/Resources/API/TaskResource.php

@@ -25,8 +25,13 @@ class TaskResource extends JsonResource
             "assign_to" => new UserProfileResource($this->assignTo),
             "created_by" => new UserProfileResource($this->createdBy),
             //"children" => TaskResource::collection($this->children),
+            'display_id'=>$this->display_id,
             'children' => $this->when($this->children->isNotEmpty(),function (){
-                return $this->children->map(function ($child){
+                $index=1;
+                return $this->children->map(function ($child)use (&$index){
+                    //自增id
+                    $child->display_id=$this->display_id.'.'.$index;
+                    $index++;
                     return new TaskResource($child);
                 })->all();
             }),

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

@@ -21,6 +21,7 @@ class TeamMemberResource extends JsonResource
             'role' => $this->role,
             'limited' => $this->limited,
             'join_at' => (string)$this->join_at,
+            'display_id' => $this->display_id,
         ];
     }
 }

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

@@ -30,6 +30,7 @@ class UserSimpleResource  extends JsonResource
             'role' => $this->role_id,
             'role_name' => $this->role->name,
             'status' =>$this->status,
+            'display_id' => $this->display_id,
         ];
     }
 }

+ 33 - 0
app/helpers.php

@@ -113,3 +113,36 @@ if (!function_exists('cos_upload_prefix')) {
         return sprintf("c%s/%s/%s", $companyId, $objectType, $extra);
     }
 }
+
+//对树进行id重置封装生成新的id
+if (!function_exists('make_tree_display_id')) {
+    function make_tree_display_id(&$tree, $parentId = 0, $index = 1,$isParent=true)
+    {
+        foreach ($tree as &$node) {
+            // 设置当前节点的ID
+            $node['display_id'] = ($parentId == 0 || $isParent == true)?(string)$index:$parentId . '.' . $index;
+            // 更新索引值
+            $index++;
+
+            // 如果当前节点有子节点,递归调用本函数,并传递新的父ID和索引值
+            if (isset($node['children'])) {
+                make_tree_display_id($node['children'], $node['display_id'], 1,false);
+            }
+        }
+    }
+}
+
+//对普通列表装生成新的id
+if(!function_exists('make_display_id')){
+    function make_display_id($datas,$pageSize)
+    {
+        $page = $datas->currentPage();
+
+        $newId = ($page - 1) * $pageSize + 1;
+        foreach ($datas as $data) {
+            $data->display_id = (string)$newId++;
+        }
+    }
+}
+
+