From 4b504f2e2cb4acf4f0af69e435c8b10ca1704746 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Tue, 18 Aug 2026 19:14:05 +0900 Subject: [PATCH] =?UTF-8?q?fix(B05):=20=EC=9E=84=EC=8B=9C=20=EB=B0=B0?= =?UTF-8?q?=EC=B9=98=20=EC=9E=90=EA=B8=B0=20=EC=82=AD=EC=A0=9C=C2=B7?= =?UTF-8?q?=EC=84=A4=EA=B3=84=EC=9C=A0=EB=9F=89=20=EB=AF=B8=EB=8F=84?= =?UTF-8?q?=EC=B0=A9=20=E2=80=94=20=ED=97=A4=EB=93=9C=20=EB=B8=8C=EB=9D=BC?= =?UTF-8?q?=EC=9A=B0=EC=A0=80=20=ED=85=8C=EC=8A=A4=ED=8A=B8=EB=A1=9C=20?= =?UTF-8?q?=ED=99=95=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Playwright 헤드 테스트(사용자 동석)로 잡은 두 버그: 1. 임시 배치 자기 삭제: 관 추가 직후 전역 선택 동기화에서 투영 측점이 아직 없어 사이드에 null(해제)이 전달 → 해제=임시 취소 규칙에 걸려 방금 넣은 관을 즉시 지웠다. 투영 측점이 없어도 누가거리를 그대로 넘기도록 수정(Selection.ts). 2. 월류 높이 미계산: 세부유역 재계산 완료 후 선택 통지가 조용히 끝나 폼이 설계유량을 못 받았다. setPipeFacilities의 임시 관 추적 지점에서 setDesignFlow로 직접 반영. 검증(테스트 프로젝트, 화면 확인): 섹션 순서·경로계산 비활성·옵션 잠금/해제 시점· 임시 배치(3+5.0)·삭제/리셋 취소·[추가] 확정·물넘이 월류폭 5m 기본·월류 높이 0.07m 자동(설계유량 1.118㎥/s)·미만 입력 보정·초과 입력 허용·목록 재클릭 해제 전부 통과. Co-Authored-By: Claude Opus 5 (1M context) --- B05_Profile/B05_Profile_UI_Selection.ts | 5 ++++- B05_Profile/B05_Profile_UI_Structures_Panel.ts | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/B05_Profile/B05_Profile_UI_Selection.ts b/B05_Profile/B05_Profile_UI_Selection.ts index 957aa0bc..e0fa8b92 100644 --- a/B05_Profile/B05_Profile_UI_Selection.ts +++ b/B05_Profile/B05_Profile_UI_Selection.ts @@ -97,7 +97,10 @@ export function createSelectionSync(ports: SelectionSyncPorts): SelectionSync { try { ports.selectMarker(id); ports.selectGraph(id); - ports.selectSidebar(matched ? matched.chainage_m : null); + // 투영 측점이 아직 없어도(방금 넣은 임시 관 — 재계산 전) 누가거리는 그대로 + // 넘긴다. null을 넘기면 사이드가 "해제"로 받아 임시 배치를 스스로 취소한다 + // (2026-08-18 임시 배치 자기 삭제 버그). + ports.selectSidebar(matched ? matched.chainage_m : chainageM); // 유역·마커 어느 쪽에서 왔든 시설 폼도 그 관을 연다(투영 측점이 없어도 // 누가거리로 근사 매칭 — Drainage 쪽이 못 찾으면 해제된다). ports.selectPipeForm?.(matched ? matched.chainage_m : chainageM); diff --git a/B05_Profile/B05_Profile_UI_Structures_Panel.ts b/B05_Profile/B05_Profile_UI_Structures_Panel.ts index a147dc0c..a83113d7 100644 --- a/B05_Profile/B05_Profile_UI_Structures_Panel.ts +++ b/B05_Profile/B05_Profile_UI_Structures_Panel.ts @@ -728,6 +728,10 @@ export function createStructuresSection(callbacks: StructuresCallbacks): Structu if (hit) { tempPipeChainage = hit.chainage_m; if (selectedPipeChainage !== null) selectedPipeChainage = hit.chainage_m; + // 재계산이 끝나 도착한 담당 유역 설계유량을 입력 중인 폼에 반영한다 — + // 물넘이·세월교 월류 높이가 이 값으로 계산된다(2026-08-18 진단: 재계산 + // 후 선택 통지가 조용히 끝나 폼이 유량을 못 받던 문제). + facilityOptions.setDesignFlow(hit.design_flow_m3s ?? null); } else { // 임시 배치 관이 재계산에서 사라졌다 — 임시 상태만 정리(관은 이미 없다). tempPipeChainage = null;