ERP-node/docs/FLOW_MANAGEMENT_UI_DESIGN.md

647 lines
44 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 플로우 관리 시스템 UI 설계
## 1. 플로우 관리 화면 (/flow-management)
### 1.1 전체 레이아웃
```
┌─────────────────────────────────────────────────────────────────────┐
│ 플로우 관리 [+ 새 플로우] [저장] │
├──────────────┬──────────────────────────────────────┬───────────────┤
│ │ │ │
│ 플로우 목록 │ 플로우 편집 캔버스 │ 속성 패널 │
│ (좌측) │ (중앙) │ (우측) │
│ │ │ │
│ ┌────────┐ │ ┌──────┐ │ ┌───────────┐ │
│ │플로우 1│ │ │ │ ┌──────┐ │ │ 단계명: │ │
│ ├────────┤ │ │ 구매 │─────▶│ 설치 │ │ │ [구매] │ │
│ │플로우 2│ │ │ │ └──────┘ │ │ │ │
│ ├────────┤ │ └──────┘ │ │ │ 색상: │ │
│ │플로우 3│ │ │ │ │ [파랑] │ │
│ └────────┘ │ ▼ │ │ │ │
│ │ ┌──────┐ │ │ 조건 설정: │ │
│ [테이블 선택]│ │ 폐기 │ │ │ │ │
│ [product_ │ └──────┘ │ │ 컬럼: │ │
│ dtg ] │ │ │ [status] │ │
│ │ │ │ │ │
│ │ │ │ 연산자: │ │
│ │ │ │ [equals] │ │
│ │ │ │ │ │
│ │ │ │ 값: │ │
│ │ │ │ [구매완료]│ │
│ │ │ │ │ │
│ │ │ │[+조건추가]│ │
│ │ │ └───────────┘ │
├──────────────┴──────────────────────────────────────┴───────────────┤
│ 도구 모음: [노드 추가] [연결] [삭제] [정렬] [줌 인/아웃] [미니맵] │
└─────────────────────────────────────────────────────────────────────┘
```
### 1.2 플로우 노드 상세
```
┌─────────────────────────────┐
│ 구매 [x] │ ← 닫기 버튼
├─────────────────────────────┤
│ 상태: status = '구매완료' │ ← 조건 요약
│ AND install_date IS NULL │
├─────────────────────────────┤
│ 데이터: 15건 │ ← 현재 조건에 맞는 데이터 수
└─────────────────────────────┘
[연결선 라벨]
┌─────────────────────────────┐
│ 설치 [x] │
├─────────────────────────────┤
│ 상태: status = '설치완료' │
│ AND disposal_date IS NULL │
├─────────────────────────────┤
│ 데이터: 8건 │
└─────────────────────────────┘
```
### 1.3 조건 빌더 UI
```
┌─────────────────────────────────────────────┐
│ 조건 설정 [AND▼] │
├─────────────────────────────────────────────┤
│ 조건 1: [- 삭제]│
│ ┌───────────┬──────────┬──────────────┐ │
│ │ 컬럼 │ 연산자 │ 값 │ │
│ │ [status▼] │[equals▼] │[구매완료 ]│ │
│ └───────────┴──────────┴──────────────┘ │
│ │
│ 조건 2: [- 삭제]│
│ ┌───────────┬──────────┬──────────────┐ │
│ │ 컬럼 │ 연산자 │ 값 │ │
│ │[install_ │[is_null▼]│ │ │
│ │ date ▼]│ │ │ │
│ └───────────┴──────────┴──────────────┘ │
│ │
│ [+ 조건 추가] │
└─────────────────────────────────────────────┘
연산자 옵션:
- equals (같음)
- not_equals (같지 않음)
- in (포함)
- not_in (포함하지 않음)
- greater_than (크다)
- less_than (작다)
- is_null (NULL)
- is_not_null (NULL 아님)
```
---
## 2. 화면관리에서 플로우 위젯 배치
### 2.1 화면 편집기 (ScreenDesigner)
```
┌─────────────────────────────────────────────────────────────────────┐
│ 화면 편집기 - DTG 제품 관리 [저장] │
├─────────────┬───────────────────────────────────────┬───────────────┤
│ │ │ │
│ 컴포넌트 │ 캔버스 │ 속성 패널 │
│ │ │ │
│ ┌─────────┐ │ ┌─────────────────────────────────┐ │ 타입: │
│ │ 입력필드 │ │ │ DTG 제품 라이프사이클 │ │ [flow-widget] │
│ ├─────────┤ │ ├─────┬─────┬─────┬─────┬─────────┤ │ │
│ │ 버튼 │ │ │구매 │ │설치 │ │ 폐기 │ │ 플로우 선택: │
│ ├─────────┤ │ │ │ → │ │ → │ │ │ [DTG 라이프 │
│ │ 테이블 │ │ │ 15건│ │ 8건 │ │ 3건 │ │ 사이클 ▼] │
│ ├─────────┤ │ └─────┴─────┴─────┴─────┴─────────┘ │ │
│ │플로우 │ │ ◀ 드래그앤드롭으로 배치 │ 레이아웃: │
│ └─────────┘ │ │ [가로▼] │
│ │ ┌─────────────────────────────────┐ │ │
│ │ │ 제품 상세 정보 │ │ 카드 너비: │
│ │ │ ┌────────────┬───────────────┐ │ │ [200px] │
│ │ │ │ 제품명: │ [ ] │ │ │ │
│ │ │ │ 구매일자: │ [ ] │ │ │ 데이터 카운트 │
│ │ │ │ 설치일자: │ [ ] │ │ │ [✓] 표시 │
│ │ │ │ 폐기일자: │ [ ] │ │ │ │
│ │ │ └────────────┴───────────────┘ │ │ 연결선 │
│ │ └─────────────────────────────────┘ │ [✓] 표시 │
│ │ │ │
└─────────────┴───────────────────────────────────────┴───────────────┘
```
### 2.2 플로우 위젯 설정 패널
```
┌─────────────────────────────────────┐
│ 플로우 위젯 설정 │
├─────────────────────────────────────┤
│ 플로우 선택: │
│ ┌───────────────────────────────┐ │
│ │ DTG 제품 라이프사이클 ▼ │ │
│ └───────────────────────────────┘ │
│ │
│ 레이아웃: │
│ ( ) 가로 (•) 세로 │
│ │
│ 카드 너비: │
│ [200px ] │
│ │
│ 카드 높이: │
│ [120px ] │
│ │
│ [✓] 데이터 카운트 표시 │
│ [✓] 연결선 표시 │
│ [ ] 컴팩트 모드 │
│ │
│ 카드 스타일: │
│ ┌─────────────────────────────┐ │
│ │ 테두리 색상: [단계별 색상 ▼] │ │
│ │ 배경 색상: [흰색 ▼] │ │
│ │ 그림자: [중간 ▼] │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────────┘
```
---
## 3. 실제 화면에서 플로우 표시 (InteractiveScreenViewer)
### 3.1 가로 레이아웃
```
┌─────────────────────────────────────────────────────────────────────┐
│ DTG 제품 관리 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ DTG 제품 라이프사이클 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 구매 │ │ 설치 │ │ 폐기 │ │
│ │ │ → │ │ → │ │ │
│ │ 15건 │ │ 8건 │ │ 3건 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ↑ 클릭하면 데이터 리스트 모달 열림 │
│ │
│ ───────────────────────────────────────────────────────────────── │
│ │
│ 제품 상세 정보 │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ 제품명: [DTG-001 ] │ │
│ │ 구매일자: [2024-01-15 ] │ │
│ │ 설치일자: [2024-02-20 ] │ │
│ │ 폐기일자: [ ] │ │
│ └──────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
### 3.2 세로 레이아웃
```
┌─────────────────────────────────────────────────────────────────────┐
│ DTG 제품 관리 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ DTG 제품 라이프사이클 │
│ ┌─────────────┐ │
│ │ 구매 │ │
│ │ │ │
│ │ 15건 │ │
│ └─────────────┘ │
│ ↓ │
│ ┌─────────────┐ │
│ │ 설치 │ │
│ │ │ │
│ │ 8건 │ │
│ └─────────────┘ │
│ ↓ │
│ ┌─────────────┐ │
│ │ 폐기 │ │
│ │ │ │
│ │ 3건 │ │
│ └─────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
---
## 4. 플로우 단계 클릭 시 데이터 리스트 모달
```
┌─────────────────────────────────────────────────────────────────────┐
│ 구매 단계 - 데이터 목록 [X 닫기] │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──┬──────────┬────────────┬────────────┬──────────┬──────────┐ │
│ │□ │ 제품명 │ 구매일자 │ 구매금액 │ 구매처 │ 상태 │ │
│ ├──┼──────────┼────────────┼────────────┼──────────┼──────────┤ │
│ │☑ │ DTG-001 │ 2024-01-15 │ 15,000,000 │ A업체 │ 구매완료 │ │
│ │☑ │ DTG-002 │ 2024-01-20 │ 15,500,000 │ B업체 │ 구매완료 │ │
│ │□ │ DTG-003 │ 2024-02-01 │ 14,800,000 │ A업체 │ 구매완료 │ │
│ │□ │ DTG-004 │ 2024-02-05 │ 16,200,000 │ C업체 │ 구매완료 │ │
│ │☑ │ DTG-005 │ 2024-02-10 │ 15,000,000 │ B업체 │ 구매완료 │ │
│ │□ │ DTG-006 │ 2024-02-15 │ 15,300,000 │ A업체 │ 구매완료 │ │
│ │□ │ DTG-007 │ 2024-02-20 │ 15,700,000 │ B업체 │ 구매완료 │ │
│ │□ │ DTG-008 │ 2024-02-25 │ 16,000,000 │ C업체 │ 구매완료 │ │
│ └──┴──────────┴────────────┴────────────┴──────────┴──────────┘ │
│ │
│ 선택된 항목: 3개 [1] [2] [3] [4] [5] │
│ │
├─────────────────────────────────────────────────────────────────────┤
│ [취소] [설치 단계로 이동] ← │
└─────────────────────────────────────────────────────────────────────┘
```
### 4.1 단계 이동 확인 대화상자
```
┌─────────────────────────────────────────┐
│ 단계 이동 확인 │
├─────────────────────────────────────────┤
│ │
│ 선택한 3개의 제품을 │
│ '구매' 단계에서 '설치' 단계로 │
│ 이동하시겠습니까? │
│ │
│ 이동 사유 (선택): │
│ ┌─────────────────────────────────┐ │
│ │ 설치 일정 확정 │ │
│ │ │ │
│ └─────────────────────────────────┘ │
│ │
│ [취소] [확인] │
└─────────────────────────────────────────┘
```
---
## 5. 오딧 로그 (이력) 화면
### 5.1 제품 상세 화면 내 이력 탭
```
┌─────────────────────────────────────────────────────────────────────┐
│ 제품 상세: DTG-001 │
├──────┬──────────────────────────────────────────────────────────────┤
│ 기본 │ 플로우 이력 │ 문서 │ AS 이력 │ │
├──────┴──────────────────────────────────────────────────────────────┤
│ │
│ DTG 제품 라이프사이클 이력 │
│ │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ 2024-02-20 14:30:25 │ │
│ │ [구매] → [설치] │ │
│ │ 변경자: 홍길동 (설치팀) │ │
│ │ 사유: 고객사 설치 완료 │ │
│ └──────────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ 2024-01-15 09:15:00 │ │
│ │ [시작] → [구매] │ │
│ │ 변경자: 김철수 (구매팀) │ │
│ │ 사유: 신규 제품 구매 등록 │ │
│ └──────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
### 5.2 타임라인 뷰
```
┌─────────────────────────────────────────────────────────────────────┐
│ 플로우 이력 (타임라인) │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 2024-01-15 │
│ │ │
│ ● 구매 (김철수) │
│ │ "신규 제품 구매 등록" │
│ │ │
│ │ (36일 경과) │
│ │ │
│ 2024-02-20 │
│ │ │
│ ● 설치 (홍길동) │
│ │ "고객사 설치 완료" │
│ │ │
│ │ (진행 중...) │
│ │ │
│ ○ 폐기 (예정) │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
---
## 6. 플로우 위젯 스타일 변형
### 6.1 컴팩트 모드
```
┌─────────────────────────────────────────┐
│ DTG 라이프사이클 │
│ [구매 15] → [설치 8] → [폐기 3] │
└─────────────────────────────────────────┘
```
### 6.2 카드 상세 모드
```
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ 구매 │ │ 설치 │ │ 폐기 │
├──────────────────┤ ├──────────────────┤ ├──────────────────┤
│ │ │ │ │ │
│ 15건 │→ │ 8건 │→ │ 3건 │
│ │ │ │ │ │
├──────────────────┤ ├──────────────────┤ ├──────────────────┤
│ 조건: │ │ 조건: │ │ 조건: │
│ status=구매완료 │ │ status=설치완료 │ │ status=폐기완료 │
│ │ │ │ │ │
│ 최근 업데이트: │ │ 최근 업데이트: │ │ 최근 업데이트: │
│ 2024-02-25 │ │ 2024-02-20 │ │ 2024-01-15 │
└──────────────────┘ └──────────────────┘ └──────────────────┘
```
### 6.3 프로그레스 바 스타일
```
┌─────────────────────────────────────────────────────────────────────┐
│ DTG 제품 라이프사이클 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 구매 ━━━━━━━━━ 설치 ━━━━━━━━━ 폐기 │
│ 15건 57% 8건 31% 3건 12% │
│ ████████████▓▓▓▓▓▓▓▓▓░░░░░░░░ │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
---
## 7. 모바일 반응형 디자인
### 7.1 모바일 뷰 (세로)
```
┌─────────────────────┐
│ ☰ DTG 제품 관리 │
├─────────────────────┤
│ │
│ 라이프사이클: │
│ │
│ ┌───────────────┐ │
│ │ 구매 │ │
│ │ 15건 │ │
│ └───────────────┘ │
│ ↓ │
│ ┌───────────────┐ │
│ │ 설치 │ │
│ │ 8건 │ │
│ └───────────────┘ │
│ ↓ │
│ ┌───────────────┐ │
│ │ 폐기 │ │
│ │ 3건 │ │
│ └───────────────┘ │
│ │
│ ─────────────── │
│ │
│ 제품 정보 │
│ 제품명: DTG-001 │
│ 구매일: 2024-01-15 │
│ 설치일: 2024-02-20 │
│ │
└─────────────────────┘
```
---
## 8. 플로우 편집기 상세 기능
### 8.1 노드 추가 메뉴
```
┌─────────────────────────────────────────┐
│ 캔버스 우클릭 메뉴 │
├─────────────────────────────────────────┤
단계 추가 │
│ 🔗 연결선 추가 │
│ 📋 붙여넣기 │
│ ─────────────────────────────────── │
│ 🎨 배경 색상 변경 │
│ 📏 격자 설정 │
│ 🔍 확대/축소 │
└─────────────────────────────────────────┘
```
### 8.2 노드 우클릭 메뉴
```
┌─────────────────────────────────────────┐
│ 단계 메뉴 │
├─────────────────────────────────────────┤
│ ✏️ 편집 │
│ 📋 복사 │
│ 🗑️ 삭제 │
│ ─────────────────────────────────── │
│ 🔗 다음 단계로 연결 │
│ 🎨 색상 변경 │
│ 📊 데이터 미리보기 (15건) │
│ ─────────────────────────────────── │
│ ⬆️ 앞으로 가져오기 │
│ ⬇️ 뒤로 보내기 │
└─────────────────────────────────────────┘
```
### 8.3 미니맵
```
┌──────────────────────┐
│ 미니맵 [X] │
├──────────────────────┤
│ ┌────────────────┐ │
│ │ ● │ │
│ │ ● │ │
│ │ │ │
│ │ ● │ │
│ │ │ │
│ │ [====] ←현재 │ │
│ │ 뷰포트│ │
│ └────────────────┘ │
│ │
│ 줌: 100% │
│ [] ■■■■■ [] │
└──────────────────────┘
```
---
## 9. 플로우 템플릿 선택 화면
```
┌─────────────────────────────────────────────────────────────────────┐
│ 새 플로우 만들기 [X 닫기] │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 템플릿 선택: │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ 빈 플로우 │ │ 3단계 플로우 │ │ 승인 플로우 │ │
│ │ │ │ │ │ │ │
│ │ │ │ ● → ● → ● │ │ ● → ● → ● │ │
│ │ + │ │ │ │ ↓ ↓ │ │
│ │ │ │ │ │ ● ● │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ 구매→설치 │ │ 품질검사 │ │ 커스텀 │ │
│ │ │ │ │ │ │ │
│ │ ● → ● → ● │ │ ● → ● → ● │ │ │ │
│ │ │ │ ↓ ↓ ↓ │ │ 불러오기 │ │
│ │ │ │ ● ● ● │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ 또는 │
│ │
│ 플로우 이름: [ ] │
│ 연결 테이블: [product_dtg ▼] │
│ │
│ [취소] [빈 플로우로 시작] │
└─────────────────────────────────────────────────────────────────────┘
```
---
## 10. 데이터 흐름 다이어그램
### 10.1 전체 시스템 흐름
```
┌─────────────────────────────────────────────────────────────────────┐
│ 플로우 관리 시스템 │
└─────────────────────────────────────────────────────────────────────┘
┌────────────────────────┼────────────────────────┐
│ │ │
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ 플로우 정의 │ │ 조건 설정 │ │ 시각화 편집 │
│ (정의/수정) │ │ (SQL 변환) │ │ (React Flow) │
└───────┬───────┘ └───────┬───────┘ └───────┬───────┘
│ │ │
└────────────────────────┼────────────────────────┘
┌─────────────────────────┐
│ 데이터베이스 저장 │
│ - flow_definition │
│ - flow_step │
│ - flow_step_connection │
└────────────┬────────────┘
┌────────────────────────┼────────────────────────┐
│ │ │
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ 화면관리 │ │ 실시간 카운트 │ │ 데이터 이동 │
│ (위젯 배치) │ │ (조건 조회) │ │ (상태 변경) │
└───────┬───────┘ └───────┬───────┘ └───────┬───────┘
│ │ │
└────────────────────────┼────────────────────────┘
┌─────────────────────────┐
│ 사용자 화면에 표시 │
│ + 오딧 로그 기록 │
└─────────────────────────┘
```
---
## 11. 사용자 시나리오 플로우
```
┌─────────────────────────────────────────────────────────────────────┐
│ 시나리오: DTG 제품 라이프사이클 관리 │
└─────────────────────────────────────────────────────────────────────┘
단계 1: 플로우 정의
─────────────────────
관리자가 플로우 관리 화면에서:
1. "새 플로우" 클릭
2. 이름: "DTG 제품 라이프사이클" 입력
3. 테이블: "product_dtg" 선택
4. "구매", "설치", "폐기" 3개 단계 추가
5. 각 단계의 조건 설정
6. 저장
단계 2: 화면에 배치
─────────────────────
관리자가 화면관리에서:
1. "DTG 제품 관리" 화면 열기
2. 컴포넌트 팔레트에서 "플로우 위젯" 드래그
3. "DTG 제품 라이프사이클" 플로우 선택
4. 레이아웃 및 스타일 설정
5. 저장
단계 3: 일반 사용자 사용
─────────────────────
일반 사용자가:
1. "DTG 제품 관리" 화면 접속
2. 플로우 위젯에서 각 단계별 건수 확인
- 구매: 15건
- 설치: 8건
- 폐기: 3건
3. "구매" 단계 클릭 → 데이터 리스트 모달 열림
4. 설치 완료된 제품 2개 선택
5. "설치 단계로 이동" 버튼 클릭
6. 이동 사유 입력: "설치 완료"
7. 확인 → 데이터 이동 및 오딧 로그 기록
단계 4: 이력 조회
─────────────────────
사용자가:
1. 특정 제품(DTG-001) 상세 화면 열기
2. "플로우 이력" 탭 클릭
3. 모든 상태 변경 이력 확인
- 언제, 누가, 어떤 단계로 이동했는지
- 이동 사유
```
---
## 12. 색상 및 테마
### 12.1 기본 색상 팔레트
```
플로우 단계 색상:
┌──────┬──────┬──────┬──────┬──────┬──────┐
│ 파랑 │ 초록 │ 주황 │ 빨강 │ 보라 │ 회색 │
│#3B82F6│#10B981│#F59E0B│#EF4444│#8B5CF6│#6B7280│
└──────┴──────┴──────┴──────┴──────┴──────┘
상태별 색상:
- 시작: 파랑
- 진행 중: 초록
- 대기: 주황
- 완료: 회색
- 거부/폐기: 빨강
```
### 12.2 다크모드
```
┌─────────────────────────────────────────┐
│ 플로우 관리 (다크모드) │
├─────────────────────────────────────────┤
│ 배경: #1F2937 (어두운 회색) │
│ 카드: #374151 (중간 회색) │
│ 텍스트: #F9FAFB (밝은 회색) │
│ 강조: #3B82F6 (파랑) │
└─────────────────────────────────────────┘
```
이상으로 플로우 관리 시스템의 UI 설계를 도식화했습니다!