diff --git a/app/Http/Controllers/RdController.php b/app/Http/Controllers/RdController.php index 2d5ddee5..2d54743b 100644 --- a/app/Http/Controllers/RdController.php +++ b/app/Http/Controllers/RdController.php @@ -50,19 +50,25 @@ public function orgChart(Request $request): View|\Illuminate\Http\Response ->get(); // 전체 직원 (활성 상태) - $employees = Employee::withoutGlobalScopes() + $rawEmployees = Employee::withoutGlobalScopes() ->where('tenant_id', $tenantId) ->where('employee_status', 'active') ->with(['user', 'department']) ->orderBy('display_name') ->get(); - // 미배치 직원 (department_id가 null) - $unassigned = $employees->whereNull('department_id'); - // 배치된 직원을 부서별로 그룹핑 - $assignedByDept = $employees->whereNotNull('department_id')->groupBy('department_id'); + // Blade @json 호환을 위해 미리 배열로 변환 + $employees = $rawEmployees->map(function ($e) { + return [ + 'id' => $e->id, + 'user_id' => $e->user_id, + 'department_id' => $e->department_id, + 'display_name' => $e->display_name ?? $e->user?->name ?? '(이름없음)', + 'position_label' => $e->position_label, + ]; + })->values(); - return view('rd.org-chart', compact('departments', 'employees', 'unassigned', 'assignedByDept')); + return view('rd.org-chart', compact('departments', 'employees')); } /** diff --git a/resources/views/rd/org-chart.blade.php b/resources/views/rd/org-chart.blade.php index ec96d422..4eed6c8f 100644 --- a/resources/views/rd/org-chart.blade.php +++ b/resources/views/rd/org-chart.blade.php @@ -201,13 +201,7 @@ class="fixed bottom-6 right-6 bg-gray-800 text-white px-4 py-2 rounded-lg shadow function orgChart() { return { departments: @json($departments), - employees: @json($employees->map(fn($e) => [ - 'id' => $e->id, - 'user_id' => $e->user_id, - 'department_id' => $e->department_id, - 'display_name' => $e->display_name ?? $e->user?->name ?? '(이름없음)', - 'position_label' => $e->position_label, - ])), + employees: @json($employees), searchUnassigned: '', saving: false, sortables: [],