2348800e68
Build & Deploy to K8s / build-and-deploy (push) Successful in 9m22s
카테고리/캐스케이딩 시스템 (B/C/D) 전부 폐기:
- BE: mapper/Service/Controller 9세트 삭제 (cascading*, categoryTree, tableCategoryValue, categoryValueCascading, codeMerge)
- FE: 페이지 3 + API 8 + hooks 2 + 폐기 컴포넌트 6 삭제, 14곳 의존성 정리
- DB: 12 테이블 DROP, TABLE_TYPE_COLUMNS.CODE_CATEGORY → CODE_INFO rename
신설 commonCode 마스터-디테일:
- code_info: 1레벨 그룹 마스터
- code_detail: 2~∞ depth 재귀 트리 (parent_detail_id self-FK, depth 자동 계산)
- API: /api/common-codes/{info,detail}
- CodeCategoryFormModal/Panel → CodeInfoFormModal/Panel rename
- code_category 컬럼명 전부 code_info 로 치환 (mapper/Java/FE)
- 옛 commonCode API URL (/categories/...) → getCodeOptions 어댑터 + /detail?code_info=... 전환
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
56 lines
2.0 KiB
TypeScript
56 lines
2.0 KiB
TypeScript
"use client";
|
|
|
|
import { CodeInfoPanel } from "@/components/admin/CodeInfoPanel";
|
|
import { CodeDetailPanel } from "@/components/admin/CodeDetailPanel";
|
|
import { useSelectedCodeInfo } from "@/hooks/useSelectedCodeInfo";
|
|
import { ScrollToTop } from "@/components/common/ScrollToTop";
|
|
|
|
export default function CommonCodeManagementPage() {
|
|
const { selectedCodeInfo, selectCodeInfo } = useSelectedCodeInfo();
|
|
|
|
return (
|
|
<div className="flex min-h-screen flex-col bg-background">
|
|
<div className="space-y-6 p-6">
|
|
{/* 페이지 헤더 */}
|
|
<div className="space-y-2 border-b pb-4">
|
|
<h1 className="text-3xl font-bold tracking-tight">공통코드 관리</h1>
|
|
<p className="text-sm text-muted-foreground">
|
|
그룹(code_info) 과 디테일 트리(code_detail) 를 관리합니다
|
|
</p>
|
|
</div>
|
|
|
|
{/* 메인 콘텐츠 - 좌우 레이아웃 */}
|
|
<div className="flex flex-col gap-6 lg:flex-row lg:gap-6">
|
|
{/* 좌측: 그룹 패널 */}
|
|
<div className="w-full lg:w-80 lg:border-r lg:pr-6">
|
|
<div className="space-y-4">
|
|
<h2 className="text-lg font-semibold">코드 그룹</h2>
|
|
<CodeInfoPanel
|
|
selectedCodeInfo={selectedCodeInfo}
|
|
onSelectCodeInfo={selectCodeInfo}
|
|
/>
|
|
</div>
|
|
</div>
|
|
|
|
{/* 우측: 디테일 트리 패널 */}
|
|
<div className="min-w-0 flex-1 lg:pl-0">
|
|
<div className="space-y-4">
|
|
<h2 className="text-lg font-semibold">
|
|
코드 디테일
|
|
{selectedCodeInfo && (
|
|
<span className="ml-2 text-sm font-normal text-muted-foreground">
|
|
({selectedCodeInfo})
|
|
</span>
|
|
)}
|
|
</h2>
|
|
<CodeDetailPanel codeInfo={selectedCodeInfo} />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<ScrollToTop />
|
|
</div>
|
|
);
|
|
}
|