- `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>
6.3 KiB
6.3 KiB
status, page_id, related_pages, last_updated, source
| status | page_id | related_pages | last_updated | source | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| stale | B08_DesignDetail | 2026-09-09 |
|
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: 도면/수량표 편집 시invalidateAPI 호출로 롤백 및 게이팅 차단.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 분기 처리) |
의존성
- a00_app_shell_framework —
navigateTo,workflowSteps - ui_templates —
createWorkflowLayout(3단 레이아웃) - 백엔드 API (정적 서빙 마운트 및 도면 연동) → B08_DesignDetail/B08_backend