From 0cc3c1bd5e4b096768a8915ebb816081eb7784fe Mon Sep 17 00:00:00 2001 From: umsangdon Date: Mon, 7 Sep 2026 20:45:20 +0900 Subject: [PATCH] =?UTF-8?q?fix(B08):=20=EC=9E=98=EB=A6=BC=20=EC=95=88?= =?UTF-8?q?=EB=82=B4=EB=A5=BC=20=E3=80=8C=EC=A3=BC=EC=9D=98=20+=20?= =?UTF-8?q?=EC=A0=91=ED=9E=88=EB=8A=94=20=EB=AA=A9=EB=A1=9D=E3=80=8D?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=E2=80=94=20=EB=8A=98=20=EB=9C=A8=EB=8A=94?= =?UTF-8?q?=20=EA=B2=BD=EA=B3=A0=EB=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit B06 담당(랩탑) 실측 회신 반영. 미교차는 드문 예외가 아니라 상시임 — route 169 는 22/105(21 %), 이 노선은 17/65(26 %). 매번 요란하면 곧 무시당함. 고친 것 셋 · 붉은 오류 → **주의 표시**(테두리를 danger 에서 muted 로). 잘린 줄 표시도 같게. · 목록을 `details` 로 **접어 둠**. 필요할 때만 폄. · 문구를 **한 덩어리**로 묶음 — 절·성토 면적 · 사면길이 · 사면적이 전부 같은 사유로 잘리므로 항목마다 따로 띄우지 않음. 안 넓히는 까닭 (주석에 남김) 미교차 절반 이상이 계곡·절벽처럼 지형이 설계 사면에서 멀어지는 자리라 반폭을 늘려도 영원히 안 닫힘. 닫히는 쪽도 중앙값 +3m 인데 꼬리가 +292m 이라 전역 확대는 값이 안 남. 2026-09-03 사용자 확정 「경고로 대체」가 그대로 유효함. 정본 키 대조 — StationSlope.unclosed 가 design.slope_unclosed 에서 나오는 것 확인 (B06_Section_Engine_Design.py:807 이 내는 그 값). 검증 — 공용 브라우저 실화면. 타입검사 오류 0. 접힌 상태 `details[open=false]` · 요약 문구 한 줄 · 측점 단추 17개. 펴면 목록이 보이고, 첫 단추(NO.13)를 누르면 그 줄로 가서 강조됨. 조작한 화면은 사용자가 보던 주소로 되돌려 놓음. Co-Authored-By: Claude Opus 5 (1M context) --- B08_Quantity/B08_Quantity_UI_EarthworkGrid.ts | 36 ++++++++++++++----- .../B08_Quantity_UI_EarthworkGrid_Style.ts | 22 +++++++----- 2 files changed, 41 insertions(+), 17 deletions(-) diff --git a/B08_Quantity/B08_Quantity_UI_EarthworkGrid.ts b/B08_Quantity/B08_Quantity_UI_EarthworkGrid.ts index 76aec807..02431449 100644 --- a/B08_Quantity/B08_Quantity_UI_EarthworkGrid.ts +++ b/B08_Quantity/B08_Quantity_UI_EarthworkGrid.ts @@ -309,20 +309,37 @@ function buildFoot(totals: Record, slope?: SlopeTable): HTMLTabl return foot; } -/** 잘린 측점 경고 — 무엇이 잘렸는지 적고, 측점을 눌러 그 줄로 가게 한다. */ +/** 잘린 측점 안내 — 한 덩어리로 묶고, 목록은 접어 둔다. + * + * 왜 붉은 오류가 아닌가 + * 실측 발생률이 21~26 %(랩탑 route 169 는 22/105, 이 노선은 17/65)라 **늘 뜨는 안내**다. + * 매번 요란하면 곧 무시당한다. 그래서 **주의 표시 + 접히는 목록**으로 둔다. + * + * 왜 한 덩어리인가 + * 절·성토 면적 · 사면적 · 사면길이가 **전부 같은 사유로** 잘린다. 항목마다 따로 띄우면 + * 사용자가 세 번 읽게 된다. + * + * 왜 안 넓히나 (B06 담당 확인, 2026-09-07) + * 미교차의 절반 이상이 계곡·절벽처럼 **지형이 설계 사면에서 멀어지는 자리**라 반폭을 + * 늘려도 영원히 안 닫힌다. 닫히는 쪽도 중앙값 +3m 인데 꼬리가 +292m 이라 전역 확대는 + * 값이 안 나온다. 그래서 경고로 대체한다(2026-09-03 사용자 확정). + */ function buildUnclosedNotice(slope: SlopeTable, table: HTMLTableElement): HTMLElement | null { const stations = slope.unclosed_stations ?? []; if (!stations.length) return null; - const box = document.createElement("div"); + const box = document.createElement("details"); box.className = "b08-grid__warning"; - const text = document.createElement("span"); - text.textContent = - `사면이 원지반을 만나지 못해 ${stations.length}개 측점에서 ` + - "사면길이·면적이 그 지점에서 잘렸습니다. 실제 값은 이보다 큽니다. " + - "같은 사유로 절·성토 면적도 잘려 있습니다."; - box.append(text); + const summary = document.createElement("summary"); + summary.className = "b08-grid__warning-summary"; + summary.textContent = + `주의 — ${stations.length}개 측점에서 사면이 원지반을 만나지 못했습니다. ` + + "그 측점의 절·성토 면적 · 사면길이 · 사면적이 함께 잘려 있어 실제보다 작습니다."; + box.append(summary); + + const list = document.createElement("div"); + list.className = "b08-grid__warning-list"; for (const chainage of stations) { const link = document.createElement("button"); link.type = "button"; @@ -336,8 +353,9 @@ function buildUnclosedNotice(slope: SlopeTable, table: HTMLTableElement): HTMLEl row?.classList.add("is-highlighted"); window.setTimeout(() => row?.classList.remove("is-highlighted"), 1600); }); - box.append(link); + list.append(link); } + box.append(list); return box; } diff --git a/B08_Quantity/B08_Quantity_UI_EarthworkGrid_Style.ts b/B08_Quantity/B08_Quantity_UI_EarthworkGrid_Style.ts index ca3e4ee3..2b629acc 100644 --- a/B08_Quantity/B08_Quantity_UI_EarthworkGrid_Style.ts +++ b/B08_Quantity/B08_Quantity_UI_EarthworkGrid_Style.ts @@ -63,17 +63,23 @@ const CSS = ` font-weight: var(--font-weight-medium, 600); } -/* 잘린 측점 경고 — 조용히 적게 내지 않고 눈에 보이게 한다(PLAN 8-4b). */ +/* 잘린 측점 안내 — 발생률이 21~26 % 로 늘 뜨는 것이라 붉은 오류가 아니라 **주의**로 둔다. + 요란하면 곧 무시당한다. 목록은 접어 두고 필요할 때만 편다. */ .b08-grid__warning { - display: flex; - flex-wrap: wrap; - align-items: center; - gap: 4px 6px; padding: 6px 10px; font-size: 12px; color: var(--color-text-body); background: var(--color-surface-raised); - border-left: 3px solid var(--color-danger); + border-left: 3px solid var(--color-text-muted); +} + +.b08-grid__warning-summary { cursor: pointer; } + +.b08-grid__warning-list { + display: flex; + flex-wrap: wrap; + gap: 4px 6px; + padding-top: 6px; } .b08-grid__warning-station { @@ -86,9 +92,9 @@ const CSS = ` font-variant-numeric: tabular-nums; } -/* 잘린 줄은 표에서도 알아보게 왼쪽에 표시를 남긴다. */ +/* 잘린 줄은 표에서도 알아보게 왼쪽에 표시를 남긴다 — 눈에 띄되 요란하지 않게. */ .b08-grid__table tbody tr.is-unclosed .b08-grid__station { - border-left: 3px solid var(--color-danger); + border-left: 3px solid var(--color-text-muted); } .b08-grid__table tbody tr.is-highlighted td {