- 데이터 조회 API에 회사별 자동 필터링 기능 추가 - GET /api/data/:tableName에 company_code 필터 자동 적용 - GET /api/data/join에 우측 테이블 회사별 필터링 추가 - 최고 관리자(company_code = '*')는 전체 데이터 조회 가능 - 분할 패널 레이아웃 우측 추가 시 조인 컬럼 자동 입력 - 좌측에서 선택한 항목의 조인 키 값을 우측 추가 모달에 자동 설정 - 자동 설정된 필드는 읽기 전용으로 표시 (disabled + 안내 문구) - 사용자는 나머지 필드만 입력하면 됨 - 데이터 서비스 개선 - getJoinedData 함수에 companyCode 파라미터 추가 - checkColumnExists 함수를 public으로 변경하여 재사용성 향상 - 조인 쿼리에 DISTINCT 추가로 중복 데이터 방지 - 복합키 테이블의 레코드 삭제 지원 - 레코드 생성 시 멀티테넌시 자동 처리 - company_code와 company_name 자동 추가 - 테이블 컬럼 존재 여부 체크 후 자동 설정 - 분할 패널 설정 UI 개선 - 좌측 패널 표시 컬럼 선택 UI 추가 - 추가 폼에 표시할 컬럼 선택 기능 추가 - Primary Key 정보 자동 조회 및 표시 |
||
|---|---|---|
| .. | ||
| README.md | ||
| SplitPanelLayoutComponent.tsx | ||
| SplitPanelLayoutConfigPanel.tsx | ||
| SplitPanelLayoutRenderer.tsx | ||
| config.ts | ||
| index.ts | ||
| types.ts | ||
README.md
SplitPanelLayout 컴포넌트
마스터-디테일 패턴의 좌우 분할 레이아웃 컴포넌트입니다.
특징
- 🔄 마스터-디테일 패턴: 좌측에서 항목 선택 시 우측에 상세 정보 표시
- 📏 크기 조절 가능: 드래그하여 좌우 패널 크기 조정
- 🔍 검색 기능: 각 패널에 독립적인 검색 기능
- 🔗 관계 설정: JOIN, DETAIL, CUSTOM 관계 타입 지원
- ⚙️ 유연한 설정: 다양한 옵션으로 커스터마이징 가능
사용 사례
1. 코드 관리
- 좌측: 코드 카테고리 목록
- 우측: 선택된 카테고리의 코드 목록
2. 테이블 조인 설정
- 좌측: 기본 테이블 목록
- 우측: 선택된 테이블의 조인 조건 설정
3. 메뉴 관리
- 좌측: 메뉴 트리 구조
- 우측: 선택된 메뉴의 상세 설정
설정 옵션
좌측 패널 (leftPanel)
title: 패널 제목tableName: 데이터베이스 테이블명showSearch: 검색 기능 표시 여부showAdd: 추가 버튼 표시 여부
우측 패널 (rightPanel)
title: 패널 제목tableName: 데이터베이스 테이블명showSearch: 검색 기능 표시 여부showAdd: 추가 버튼 표시 여부relation: 좌측 항목과의 관계 설정type: "join" | "detail" | "custom"foreignKey: 외래키 컬럼명
레이아웃 설정
splitRatio: 좌측 패널 너비 비율 (0-100, 기본 30)resizable: 크기 조절 가능 여부 (기본 true)minLeftWidth: 좌측 최소 너비 (기본 200px)minRightWidth: 우측 최소 너비 (기본 300px)autoLoad: 자동 데이터 로드 (기본 true)
예시
const config: SplitPanelLayoutConfig = {
leftPanel: {
title: "코드 카테고리",
tableName: "code_category",
showSearch: true,
showAdd: true,
},
rightPanel: {
title: "코드 목록",
tableName: "code_info",
showSearch: true,
showAdd: true,
relation: {
type: "detail",
foreignKey: "category_id",
},
},
splitRatio: 30,
resizable: true,
};