ERP-node/docs/ycshin-node/LFC[체크]-위치포맷-사용자설정.md

4.1 KiB

[체크리스트] 렉 구조 위치코드/위치명 포맷 사용자 설정

관련 문서: 계획서 | 맥락노트


공정 상태

  • 전체 진행률: 100% (완료)
  • 현재 단계: 완료

구현 체크리스트

1단계: 타입 및 기본값 정의

  • types.tsFormatSegment 인터페이스 추가
  • types.tsLocationFormatConfig 인터페이스 추가
  • types.tsRackStructureComponentConfigformatConfig?: LocationFormatConfig 필드 추가
  • config.tsdefaultCodeSegments 상수 정의 (현재 하드코딩과 동일한 결과)
  • config.tsdefaultNameSegments 상수 정의 (현재 하드코딩과 동일한 결과)
  • config.tsdefaultFormatConfig 상수 정의
  • config.tsbuildFormattedString() 함수 구현 (stripKnownSuffix 방식)

2단계: FormatSegmentEditor 서브컴포넌트 생성

  • FormatSegmentEditor.tsx 신규 파일 생성
  • @dnd-kit/sortable 기반 드래그 순서변경 구현
  • 세그먼트별 체크박스로 한글 라벨 표시/숨김 토글 (showLabel)
  • 라벨/구분/자릿수 3개 필드 항상 고정 표시 (빈 값이어도 입력 필드 유지)
  • 최상단 컬럼 헤더 추가 (라벨 / 구분 / 자릿수), 각 행에서 텍스트 라벨 제거
  • grid 레이아웃으로 정렬 (grid-cols-[16px_56px_18px_1fr_1fr_1fr])
  • 자릿수 필드: 숫자 타입(열, 단)만 활성화, 비숫자 타입은 disabled + 회색 배경
  • buildFormattedString으로 실시간 미리보기 표시

3단계: ConfigPanel에 포맷 설정 섹션 추가

  • RackStructureConfigPanel.tsx에 FormatSegmentEditor import
  • UI 설정 섹션 아래에 "포맷 설정" 섹션 추가
  • 위치코드 포맷용 FormatSegmentEditor 배치
  • 위치명 포맷용 FormatSegmentEditor 배치
  • onChangeformatConfig 업데이트 연결

4단계: 컴포넌트에서 세그먼트 기반 코드 생성

  • RackStructureComponent.tsx에서 defaultFormatConfig import
  • generateLocationCode 함수를 세그먼트 기반으로 교체
  • config.formatConfig || defaultFormatConfig 폴백 적용

5단계: 검증

  • formatConfig 미설정 시: 기존과 동일한 위치코드/위치명 생성 확인
  • ConfigPanel에서 구분자 변경: 미리보기에 즉시 반영 확인
  • ConfigPanel에서 라벨 체크 해제: 한글만 사라지고 값은 유지 확인 (예: "A구역" → "A")
  • ConfigPanel에서 순서 드래그 변경: 미리보기에 반영 확인
  • ConfigPanel에서 라벨 텍스트 변경: 미리보기에 반영 확인
  • 설정 저장 후 화면 재로드: 설정 유지 확인
  • 렉 구조 모달에서 미리보기 생성: 설정된 포맷으로 생성 확인
  • 렉 구조 저장: DB에 설정된 포맷의 코드/이름 저장 확인

6단계: 정리

  • 린트 에러 없음 확인
  • 미사용 import 제거 (FormatSegmentEditor.tsx: useState)
  • 파일 끝 불필요한 빈 줄 제거 (types.ts, config.ts)
  • 계획서/맥락노트/체크리스트 최종 반영
  • 이 체크리스트 완료 표시 업데이트

변경 이력

날짜 내용
2026-03-10 계획서, 맥락노트, 체크리스트 작성 완료
2026-03-10 1~4단계 구현 완료 (types, config, FormatSegmentEditor, ConfigPanel, Component)
2026-03-10 showLabel 로직 수정: 체크박스가 세그먼트 제거가 아닌 한글 라벨만 표시/숨김 처리
2026-03-10 계획서, 맥락노트, 체크리스트에 showLabel 변경사항 반영
2026-03-10 UI 개선: 3필드 고정표시 + 컬럼 헤더 + grid 레이아웃 + 자릿수 비숫자 비활성화
2026-03-10 계획서, 맥락노트, 체크리스트에 UI 개선사항 반영
2026-03-10 라벨 필드 비움 시 한글 미제거 버그 수정 (stripKnownSuffix 도입)
2026-03-10 코드 정리 (미사용 import, 빈 줄) + 문서 최종 반영
2026-03-10 5단계 검증 완료, 전체 작업 완료