feat: 메뉴 관리 UI 개선

- 부모메뉴 선택 시 트리 구조 순서 + 인덴트 적용
- 아이콘 선택 UI를 이모지에서 Heroicons SVG로 변경
- 확장 옵션 기본 펼침 상태로 변경
This commit is contained in:
2025-12-19 12:58:37 +09:00
parent 7ee078ba1b
commit 0c1501f08b
3 changed files with 164 additions and 21 deletions

View File

@@ -162,7 +162,7 @@ private function buildChildren(Menu $parent, Collection $allMenus): Collection
}
/**
* 부모 메뉴 목록 조회 (드롭다운용)
* 부모 메뉴 목록 조회 (드롭다운용) - 트리 구조 순서로 정렬, depth 정보 포함
*/
public function getParentMenus(?int $tenantId = null): Collection
{
@@ -171,7 +171,7 @@ public function getParentMenus(?int $tenantId = null): Collection
$query = Menu::query()
->where('is_active', true)
->orderBy('sort_order')
->orderBy('name');
->orderBy('id');
if ($tenantId) {
// 특정 테넌트 선택 시: 해당 테넌트의 메뉴만
@@ -181,7 +181,10 @@ public function getParentMenus(?int $tenantId = null): Collection
$query->whereNull('tenant_id');
}
return $query->get();
$allMenus = $query->get();
// 트리 구조로 정렬 (depth 정보 포함)
return $this->flattenMenuTree($allMenus);
}
/**
@@ -523,15 +526,18 @@ private function compactSiblings(?int $parentId): void
}
/**
* 글로벌 부모 메뉴 목록 조회 (드롭다운용)
* 글로벌 부모 메뉴 목록 조회 (드롭다운용) - 트리 구조 순서로 정렬, depth 정보 포함
*/
public function getGlobalParentMenus(): Collection
{
return GlobalMenu::query()
$allMenus = GlobalMenu::query()
->where('is_active', true)
->orderBy('sort_order')
->orderBy('name')
->orderBy('id')
->get();
// 트리 구조로 정렬 (depth 정보 포함)
return $this->flattenMenuTree($allMenus);
}
/**