# 개발 계획서 (완료 이관): 유토곡선 사토 balloon 표기 및 횡단 카드 스크롤 정렬 - **이관 일시**: 2026-08-04 - **이관 담당**: 코드 검증 AI (Verifier / QA) - **원본 계획**: `docs/raw/PLAN.md` 1부 (현재 작업 / 검증 완료) --- ## 완료 및 아카이빙된 개발 작업 목록 ### A. 사토 balloon에 운반거리·장비 표기 — 완료 - [x] 사토 balloon에 `L=`·장비 표기 - [x] 부지가 둘 이상이면 잔량 구간별로 가까운 부지에 매칭 - [x] 대상 파일: `common_util_mass_haul_balance_view.ts`(balloon 본문), `common_util_mass_haul_settle.ts`(잔량-부지 매칭 후 장비 부여) ### B. 자연방토 임계 경사 확정 — 완료 (값 유지) 배경: `NATURAL_SPOIL_MIN_GROUND_SLOPE = 1/1.5`(≈33.7°)는 사토를 흘려보내는 경사로의 경사를 반영한 초기값이었다. 2026-08-04 사용자 판단: 현업에서는 사토 경사를 별도로 산정하지 않고 **도면에 사토했다는 사실만 남기는** 것이 관행이다. 따라서 값을 바꾸지 않고 `1/1.5`로 확정한다. - [x] 코드 반영 확인 — 정의처 `config/config_system.py:481` 한 곳, `B06_wf3_ProfileCross_Router.py:105` → API context → `B06/B05_UI_Page.ts` → `common_util_mass_haul_balance_view.ts:510` balloon 표기까지 전 경로 연결됨 - [x] 값 변경 없음 (`1.0 / 1.5` 유지) ### C. 유토곡선 → B08 수량산출 인계 — 취소 취소 사유: 사토장·토취장 **자동 선정** 기능이 취소됐고, 사토장은 향후 사용자가 B05에서 **구조물로 직접 작업**하는 방식으로 바뀐다. 임도 특성상 이 경우 사토 운반비가 계상되지 않으므로 B08으로 운반 항목을 인계할 대상 자체가 없다. - [x] 취소 확정 — 코드 변경 없음 ### D. 종단도·유토곡선 측점 선택 → 횡단도 카드 정렬 위치 수정 — 완료 배경: 측점 검색·입력 점프는 만들지 않는다(2026-08-04 사용자 확정). 종단도·유토곡선 측점 클릭 → 해당 횡단도 카드 스크롤은 이미 있었으나, `scrollIntoView({block: "nearest"})`가 카드가 아래에 있을 때 카드 **하단**을 브라우저 바닥에 맞춰 멈춰, 카드 상단이 화면 밖이었다. 완료 조건: - [x] 종단도·유토곡선 측점 선택 시 해당 카드로 이동 (기존 경로 유지, 두 그래프 모두 `selectStation(…, true)` 연결 확인) - [x] 정렬 위치: 카드 **상단**이 sticky 상단 패널의 접기 손잡이 **바로 아래**에 붙도록 `block: "start"` + `scroll-margin-top`(패널 실측 높이 + 손잡이 24px + 여유 8px). 여유 8px로 선택 강조 빨간 테두리(2px ring)가 잘리지 않는다 - [x] 패널 높이가 리사이저·접기로 수시로 변하므로 **스크롤 직전 실측**(`syncScrollMargin`) — 접을 때 drawPanel이 돌지 않아도 정지선이 현재 패널과 맞는다 - [x] 예외: 목록 맨 끝 카드는 스크롤이 바닥에 걸려 그 위치까지 못 올라옴 — 브라우저가 알아서 멈추므로 별도 처리 없음 - [x] 대상 파일: `B06_wf3_ProfileCross_UI_Section_View.ts` (`revealCard`·`syncScrollMargin`)