From 629c23ac2268b7378b141ccd112ffd3043176ed6 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Mon, 19 Oct 2026 10:15:49 +0900 Subject: [PATCH] =?UTF-8?q?fix(472-5=20=EA=B4=80=20=ED=8F=BC):=20=EC=97=B4?= =?UTF-8?q?=EB=A6=B0=20=EA=B4=80=20=ED=8F=BC=EC=9D=B4=20=EB=B0=96=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EB=B0=94=EB=80=90=20=EA=B0=92(=EB=90=98=EB=8F=8C?= =?UTF-8?q?=EB=A6=AC=EA=B8=B0=20=C2=B7=20=ED=9A=A1=EB=8B=A8=20=EB=B3=B4?= =?UTF-8?q?=EA=B8=B0)=EC=9C=BC=EB=A1=9C=20=EB=8B=A4=EC=8B=9C=20=EC=97=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 흠(화면에서 찾음): ↶ 뒤 종단 「구조물 배치」 관 폼 칸이 옛 값(관경 1200)을 쥐고, 다른 칸(동물이동형)을 바꾸면 옛 관경이 초안에 되쓰여 되돌림이 사라짐 - setPipeFacilities — 고른 관 값이 바뀌면 loadPipeForm(실시간 반영 중 · 임시 배치는 둠) - 시험 test_472_5_shop_owner 배선 줄 · 화면 검증_sub2: 관경 바꿈 → ↶ 폼 1000 → 동물이동형 바꿔도 관경 1000 · 횡단 보기 관경 1500 → 종단 폼 1500 · ↶ ↷ 따라감 Co-Authored-By: Claude Opus 5.5 --- B05_Profile/B05_Profile_UI_Structures_Panel.ts | 8 ++++++++ resources/tester/test_472_5_shop_owner.py | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/B05_Profile/B05_Profile_UI_Structures_Panel.ts b/B05_Profile/B05_Profile_UI_Structures_Panel.ts index 207781293..81f728bd9 100644 --- a/B05_Profile/B05_Profile_UI_Structures_Panel.ts +++ b/B05_Profile/B05_Profile_UI_Structures_Panel.ts @@ -573,8 +573,16 @@ export function createStructuresSection( }, getStructures: () => [...structures], setPipeFacilities(pipes) { + const before = pipeFacilities; pipeFacilities = pipes.map((pipe) => ({ ...pipe })); followPipeList(panelContext, pipeFacilities); + // 열린 관 폼 — 값이 밖에서 바뀌면(되돌리기 · 다른 보기) 새 값으로 다시 엶 · 고치던 실시간 반영 · 임시 배치는 + // 둠(472-5 · 옛 칸 값이 다음 조작에 되쓰이던 흠) + const at = selectedPipeChainage; + if (at === null || applyingLive || tempPipeChainage !== null) return; + const near = (pipe: PipeFacilityItem) => Math.abs(pipe.chainage_m - at) < PIPE_MATCH_M; + const now = pipeFacilities.find(near); + if (now && JSON.stringify(now) !== JSON.stringify(before.find(near))) loadPipeForm(now); }, selectPipeByChainage(chainageM) { if (chainageM !== null) callbacks.onReveal?.(); diff --git a/resources/tester/test_472_5_shop_owner.py b/resources/tester/test_472_5_shop_owner.py index e288c3736..3ed88db8b 100644 --- a/resources/tester/test_472_5_shop_owner.py +++ b/resources/tester/test_472_5_shop_owner.py @@ -116,5 +116,9 @@ def test_배선() -> None: assert panel.index("seen.structures = JSON.stringify(structures);") < panel.index( "writePendingStructures(deps.projectId, structures);" ) + # 열린 관 폼 — 밖에서 바뀐 값(되돌리기 · 다른 보기)으로 다시 엶(옛 칸 값 되쓰던 흠) + form = _read("B05_Profile", "B05_Profile_UI_Structures_Panel.ts") + assert "if (at === null || applyingLive || tempPipeChainage !== null) return;" in form + assert "JSON.stringify(now) !== JSON.stringify(before.find(near))) loadPipeForm(now);" in form history = _read("B05_Profile", "B05_Profile_UI_Profile_History.ts") assert "announceDesignStore(projectId);" in history