Files
Aislo/docs/wiki/pages/B08_DesignDetail/B08_frontend.md
T
eomsangdonandClaude Opus 5 eb30b774f8 chore(docs): docs 폴더 git 추적 전환 · PLAN·OWNERS 최상위 이관
- `docs/` 를 .gitignore 에서 빼 git 추적 대상으로 전환 (위키·완료 이력·검증 기록)
- `docs/raw/PLAN.md` · `docs/raw/OWNERS.md` 를 저장소 최상위로 이동 후 .gitignore 에 등록
  — 창끼리 공유하되 저장소에는 안 올리는 장부
- 살아 있는 경로 참조 7개 파일 정정 (아카이브 107건은 그때 사실이라 그대로 둠)
- graphify 날짜별 산출물(`docs/wiki/graphify-out/20*/`) 제외 — `graphify update` 가 다시 만듦

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-09 18:19:07 +09:00

6.3 KiB
Raw Blame History

status, page_id, related_pages, last_updated, source
status page_id related_pages last_updated source
stale B08_DesignDetail
B08_DesignDetail/B08_backend
B08_DesignDetail/B08_api
B08_DesignDetail/B08_dependencies
B08_DesignDetail/B08_CAD_blocks
B08_DesignDetail/B08_CAD_interaction
B08_DesignDetail/B08_CAD_usability_2026-09-01
B08_DesignDetail/B08_CAD_table_entity
B08_DesignDetail/B08_cross_structure_sheets
db_schema/structure_output
storage_paths
architecture/project_map
architecture/workflow_data_flow
2026-09-09
docs/raw/verification/2026-07-19_verify_B07_DesignDetail.md
docs/raw/verification/2026-07-19_verify_CrossPruning_and_CADStyle.md
docs/raw/verification/2026-07-20_verify_B07_상세설계개선.md
docs/raw/verification/2026-07-21_verify_B06_ground_section_type_B07_linkage.md
docs/raw/verification/2026-07-21_verify_B06_default_design_B07_gating.md
docs/raw/verification/2026-07-22_verify_B06_B07.md
docs/raw/verification/2026-07-25_verify_n2_n3_n4.md
docs/raw/verification/2026-07-25_verify_b07_design_detail.md
docs/raw/verification/2026-07-26_verify_B07_도면_템플릿_및_도각_적용.md
docs/raw/verification/2026-07-26_verify_openwebcad_성능개선.md

B08_DesignDetail — Frontend

2026-09 책임 재배치 전 역사 기록이다. 현재 상세설계는 B07_DesignDetail/B07_frontend, B08은 B08_Quantity/B08_overview_2026_09를 기준으로 한다.

WF4 상세 설계(구조물 배치). 독립형 2D CAD iframe, 명령 레지스트리·AutoCAD형 리본, 수량표·측점표, 종단도 분할, 토적도·유역도, 횡단도 완료 게이팅 및 A1 도각 병합.

파일 구조

파일 위치 역할
B08_DesignDetail_UI_Page.ts B08_DesignDetail_UI_Page.ts 3단 셸 레이아웃, [N-1-1] 30측점 분할 종단도 (N) 동적 버튼 생성, [N-1-0] design 신구조 ditchLabel() 렌더링, 2분할 패널, postMessage 통신
B08_DesignDetail_Api_Fetch.ts B08_DesignDetail_Api_Fetch.ts [N-1-0] DitchSpec 유니언 신구조 타입 갱신, REST API 클라이언트
B08_DesignDetail_UI_Style.css B08_DesignDetail_UI_Style.css iframe 화면 배치 및 횡단 2열 버튼 스타일/색상 연동 (.b07-cad-frame)
openwebcad B08_DesignDetail/openwebcad HTML Canvas 기반 독립 2D CAD SPA (더블클릭 텍스트 편집 및 CAD 수량표 엔티티 복원)

명령은 B08_DesignDetail/B08_CAD_commands, 블록·조작·표는 B08_DesignDetail/B08_CAD_blocks, B08_DesignDetail/B08_CAD_interaction, B08_DesignDetail/B08_CAD_table_entity, 횡단 장은 B08_DesignDetail/B08_cross_structure_sheets, 납품 도면은 B08_DesignDetail/B08_drawing_masshaul_watershed를 참조한다.

2026-09-01 편집 손실 방지·확정 잠금·도면별 복구 등은 B08_DesignDetail/B08_CAD_usability_2026-09-01에 기록하며, 전체 CAD 시험 실패가 남아 완료 판정은 보류한다.

독립형 CAD 임베드 및 데이터 연동 아키텍처

  • 메타데이터 캐싱 및 단건 로드: 도면 목록(종단도, 측점별 횡단도) 메타데이터 조회(GET .../design-drawings) 후 선택 도면 단건 로드.
  • postMessage 기반 양방향 연동:
    • aislo:b07:save-request: CAD iframe 프레임으로부터 편집 JSON 수신 및 확정 API(PUT .../confirm) 전송.
    • aislo:b07:drawing-changed: 도면/수량표 편집 시 invalidate API 호출로 롤백 및 게이팅 차단.
    • aislo:b07:navigate: CAD 내 수량표 패널의 이전/다음(, ) 버튼 클릭 시 순차 이동.
  • MIT 라이선스 공시: B07 상세설계 페이지 우측 하단에 저채도 MIT 라이선스 링크 표시.

openwebcad 단위 정합, 선 특성/폰트 UI 및 Fit-in-all (2026-07-20)

  • 도면 단위 정합 (App.consts.ts, MeasurementEntity.ts): m 단위는 유지하되 주석 치수 상수 5종(FONT 16px, EXTENSION 12px, MARGIN 8px, LABEL_OFFSET 8px, DEFAULT_OFFSET 60px)을 화면 픽셀 스케일(screenScale)로 분할 적용하여 줌 무관 일정 크기 유지 및 화살표 왜곡 버그 수정.
  • 선 특성 및 폰트 변경 UI (Toolbar.tsx, App.css, state.ts): 툴바 리본에 라인 스타일(색상, 굵기, 4종 선종류: 실선/파선/1점쇄선/점선) 및 텍스트 스타일(폰트, 크기, 색상) 추가. 미선택 시 기본값 적용, lineDash 포함 엔티티 직렬화로 저장/복원 정합 보장.
  • Fit-in-all 및 화면 인터페이스: zoomToFitScreen() 월드 오프셋 계산 공식(worldCenter - screenSize / zoom) 및 10% 여백 적용. B07 도면 목록 측점 라벨을 2+0.0 포맷으로統一.
  • CAD 내부 통합 수량산출표 패널 (QuantityPanel.tsx): CAD 하단 중심에 접이식 React 수량산출표 패널 배치. 절토고/성토고 파생 계산, 이전/다음 뷰 이동 핸들링, 표 편집 시 CAD 도면 변경 연동(notifyDrawingChangedByTable). CAD 하단 명령어 입력창 숨김 처리.

CAD 계획선 레이어 연동 및 편집 지원 (2026-07-22)

  • 계획선 레이어 (b07-design) 표출 및 편집: CAD 스키마 내에 b07-design 레이어로 파싱된 amethyst 계열의 PolyLine 데이터가 노선 계획선으로 자동 표출됨.
  • 잠금 해제 상태: 해당 레이어의 잠금 여부가 isLocked: false로 정의되어 있어 실무자가 계획 도면 위에서 선 트림, 선 연장, 수정 및 구조물 라이브러리 부착 등 상세 CAD 편집 작업을 바로 수행할 수 있도록 지원.

주요 컴포넌트 / 함수

함수 위치 역할
renderB07DesignDetail(root) B08_DesignDetail_UI_Page.ts:28 3단 레이아웃 조립, 도면 목록 fetch 및 iframe 임베딩
buildDesignInfoPanel(drawing) B08_DesignDetail_UI_Page.ts [신설] 지반정보(지반유형/절토측/지반고/지형경사) 및 계획정보(계획고/절성토경사/도로폭/측구규격/단면적) 2분할 정보 패널 서빙
handleCadMessage(event) B08_DesignDetail_UI_Page.ts:145 postMessage 수신 핸들러 (save-request, drawing-changed, navigate 분기 처리)

의존성