2025-12-03 17:45:22 +09:00
|
|
|
# SplitPanelLayout2 컴포넌트
|
|
|
|
|
|
|
|
|
|
마스터-디테일 패턴의 좌우 분할 레이아웃 컴포넌트 (개선 버전)
|
|
|
|
|
|
|
|
|
|
## 개요
|
|
|
|
|
|
|
|
|
|
- **ID**: `split-panel-layout2`
|
|
|
|
|
- **카테고리**: layout
|
|
|
|
|
- **웹타입**: container
|
|
|
|
|
- **버전**: 2.0.0
|
|
|
|
|
|
|
|
|
|
## 주요 기능
|
|
|
|
|
|
|
|
|
|
- 좌측 패널: 마스터 데이터 목록 (예: 부서 목록)
|
|
|
|
|
- 우측 패널: 디테일 데이터 목록 (예: 부서원 목록)
|
|
|
|
|
- 조인 기반 데이터 연결
|
|
|
|
|
- 검색 기능 (좌측/우측 모두)
|
|
|
|
|
- 계층 구조 지원 (트리 형태)
|
|
|
|
|
- 데이터 전달 기능 (모달로 선택된 데이터 전달)
|
|
|
|
|
- 리사이즈 가능한 분할 바
|
|
|
|
|
|
|
|
|
|
## 사용 예시
|
|
|
|
|
|
|
|
|
|
### 부서-사원 관리
|
|
|
|
|
|
|
|
|
|
1. 좌측 패널: `dept_info` 테이블 (부서 목록)
|
|
|
|
|
2. 우측 패널: `user_info` 테이블 (사원 목록)
|
|
|
|
|
3. 조인 조건: `dept_code` = `dept_code`
|
|
|
|
|
4. 데이터 전달: `dept_code`, `dept_name`, `company_code`
|
|
|
|
|
|
|
|
|
|
## 설정 옵션
|
|
|
|
|
|
|
|
|
|
### 좌측 패널 설정
|
|
|
|
|
|
|
|
|
|
| 속성 | 타입 | 설명 |
|
|
|
|
|
|------|------|------|
|
|
|
|
|
| title | string | 패널 제목 |
|
|
|
|
|
| tableName | string | 테이블명 |
|
|
|
|
|
| displayColumns | ColumnConfig[] | 표시할 컬럼 목록 |
|
|
|
|
|
| searchColumn | string | 검색 대상 컬럼 |
|
|
|
|
|
| showSearch | boolean | 검색 기능 표시 여부 |
|
|
|
|
|
| hierarchyConfig | object | 계층 구조 설정 |
|
|
|
|
|
|
|
|
|
|
### 우측 패널 설정
|
|
|
|
|
|
|
|
|
|
| 속성 | 타입 | 설명 |
|
|
|
|
|
|------|------|------|
|
|
|
|
|
| title | string | 패널 제목 |
|
|
|
|
|
| tableName | string | 테이블명 |
|
|
|
|
|
| displayColumns | ColumnConfig[] | 표시할 컬럼 목록 |
|
|
|
|
|
| searchColumn | string | 검색 대상 컬럼 |
|
|
|
|
|
| showSearch | boolean | 검색 기능 표시 여부 |
|
|
|
|
|
| showAddButton | boolean | 추가 버튼 표시 |
|
|
|
|
|
| showEditButton | boolean | 수정 버튼 표시 |
|
|
|
|
|
| showDeleteButton | boolean | 삭제 버튼 표시 |
|
|
|
|
|
|
|
|
|
|
### 조인 설정
|
|
|
|
|
|
|
|
|
|
| 속성 | 타입 | 설명 |
|
|
|
|
|
|------|------|------|
|
|
|
|
|
| leftColumn | string | 좌측 테이블의 조인 컬럼 |
|
|
|
|
|
| rightColumn | string | 우측 테이블의 조인 컬럼 |
|
|
|
|
|
|
|
|
|
|
### 데이터 전달 설정
|
|
|
|
|
|
|
|
|
|
| 속성 | 타입 | 설명 |
|
|
|
|
|
|------|------|------|
|
|
|
|
|
| sourceColumn | string | 좌측 패널의 소스 컬럼 |
|
|
|
|
|
| targetColumn | string | 모달로 전달할 타겟 컬럼명 |
|
|
|
|
|
|
|
|
|
|
## 데이터 흐름
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
[좌측 패널 항목 클릭]
|
|
|
|
|
↓
|
|
|
|
|
[selectedLeftItem 상태 저장]
|
|
|
|
|
↓
|
|
|
|
|
[modalDataStore에 테이블명으로 저장]
|
|
|
|
|
↓
|
|
|
|
|
[ScreenContext DataProvider 등록]
|
|
|
|
|
↓
|
|
|
|
|
[우측 패널 데이터 로드 (조인 조건 적용)]
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 버튼과 연동
|
|
|
|
|
|
|
|
|
|
버튼 컴포넌트에서 이 컴포넌트의 선택된 데이터에 접근하려면:
|
|
|
|
|
|
|
|
|
|
1. 버튼의 액션 타입을 `openModalWithData`로 설정
|
|
|
|
|
2. 데이터 소스 ID를 좌측 패널의 테이블명으로 설정 (예: `dept_info`)
|
|
|
|
|
3. `modalDataStore`에서 자동으로 데이터를 가져옴
|
|
|
|
|
|
|
|
|
|
## 개발자 정보
|
|
|
|
|
|
|
|
|
|
- **생성일**: 2024
|
|
|
|
|
- **경로**: `lib/registry/components/split-panel-layout2/`
|
|
|
|
|
|
|
|
|
|
## 관련 문서
|
|
|
|
|
|
|
|
|
|
- [컴포넌트 시스템 가이드](../../docs/컴포넌트_시스템_가이드.md)
|
|
|
|
|
- [split-panel-layout (v1)](../split-panel-layout/README.md)
|
|
|
|
|
|
2025-12-15 09:25:14 +09:00
|
|
|
|
2025-12-17 14:30:29 +09:00
|
|
|
|
2025-12-29 09:06:07 +09:00
|
|
|
|