From e1fc78ada17b34b44997fd92a647403b21b98dd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Fri, 6 Mar 2026 19:50:36 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20[org-chart]=20=EC=A1=B0=EC=A7=81?= =?UTF-8?q?=EB=8F=84=20=EC=B5=9C=EC=83=81=EB=8B=A8=20=EB=85=B8=EB=93=9C=20?= =?UTF-8?q?=EC=83=89=EC=83=81=20=EC=88=98=EC=A0=95=20=EB=B0=8F=20=EB=B6=80?= =?UTF-8?q?=EC=84=9C=20=EB=93=9C=EB=9E=98=EA=B7=B8=20=EC=A0=95=EB=A0=AC=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 최상단 회사 노드: Tailwind gradient → inline style로 변경 (글씨 안보이는 문제 수정) - 부서 카드 드래그 앤 드롭 정렬: SortableJS handle 기반 - 1단계/2단계 부서 모두 드래그 정렬 가능 - sort_order 변경 즉시 서버 저장 (reorder-depts API) - 부서 헤더에 드래그 아이콘 추가 --- app/Http/Controllers/RdController.php | 26 +++++ resources/views/rd/org-chart.blade.php | 128 +++++++++++++++++++++---- routes/web.php | 1 + 3 files changed, 137 insertions(+), 18 deletions(-) diff --git a/app/Http/Controllers/RdController.php b/app/Http/Controllers/RdController.php index 2b9786f9..4efb4ad5 100644 --- a/app/Http/Controllers/RdController.php +++ b/app/Http/Controllers/RdController.php @@ -151,6 +151,32 @@ public function orgChartReorder(Request $request): JsonResponse return response()->json(['success' => true]); } + /** + * 조직도 - 부서 순서 변경 (드래그 앤 드롭) + */ + public function orgChartReorderDepts(Request $request): JsonResponse + { + $request->validate([ + 'orders' => 'required|array', + 'orders.*.id' => 'required|integer', + 'orders.*.parent_id' => 'nullable|integer', + 'orders.*.sort_order' => 'required|integer', + ]); + + $tenantId = session('selected_tenant_id'); + + foreach ($request->orders as $order) { + Department::where('tenant_id', $tenantId) + ->where('id', $order['id']) + ->update([ + 'parent_id' => $order['parent_id'], + 'sort_order' => $order['sort_order'], + ]); + } + + return response()->json(['success' => true]); + } + /** * 중대재해처벌법 실무 점검 */ diff --git a/resources/views/rd/org-chart.blade.php b/resources/views/rd/org-chart.blade.php index ee7254f0..04782c06 100644 --- a/resources/views/rd/org-chart.blade.php +++ b/resources/views/rd/org-chart.blade.php @@ -21,7 +21,7 @@
- 직원 카드를 드래그하여 부서에 배치하거나, 미배치 영역으로 이동할 수 있습니다. 변경은 즉시 저장됩니다. + 직원 카드를 드래그하여 부서에 배치하거나, 미배치 영역으로 이동할 수 있습니다. 부서 카드도 드래그하여 순서를 변경할 수 있습니다. 변경은 즉시 저장됩니다.
@@ -68,12 +68,13 @@ class="px-3 py-1 border border-gray-200 rounded text-xs focus:outline-none focus
-
+
-

+

@@ -92,19 +93,20 @@ class="px-3 py-1 border border-gray-200 rounded text-xs focus:outline-none focus :style="`width: calc(${(rootDepartments.length - 1)} * 240px)`">
- -
+ +