feat: 메뉴 계층 이동 기능 추가
- MenuService.moveMenu() 메서드 추가 (부모 변경 + 하위 메뉴 유지) - POST /api/admin/menus/move API 엔드포인트 추가 - 순환 참조 방지 로직 구현 - Shift+드래그로 위 메뉴의 하위로 이동 가능 - 사용법 안내 UI 추가
This commit is contained in:
@@ -319,4 +319,35 @@ public function reorder(Request $request): JsonResponse
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 메뉴 이동 (계층 구조 변경)
|
||||
*/
|
||||
public function move(Request $request): JsonResponse
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'menu_id' => 'required|integer',
|
||||
'new_parent_id' => 'nullable|integer',
|
||||
'sort_order' => 'required|integer|min:1',
|
||||
]);
|
||||
|
||||
try {
|
||||
$result = $this->menuService->moveMenu(
|
||||
$validated['menu_id'],
|
||||
$validated['new_parent_id'],
|
||||
$validated['sort_order']
|
||||
);
|
||||
|
||||
if (! $result['success']) {
|
||||
return response()->json($result, 400);
|
||||
}
|
||||
|
||||
return response()->json($result);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => '메뉴 이동에 실패했습니다: '.$e->getMessage(),
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user