fix(B05): 유역 목록 표기 통일 — 세월교만 유효직경·추천 자리가 뒤바뀌던 것

세월교 줄만 `세월교 검토 (Ø4719mm)`로 추천이 앞, 유효직경이 괄호 안이었다(구 문구
잔재). 같은 열을 위아래로 훑을 때 읽는 방향이 달라진다는 사용자 지적에 따라 네 줄을
`유효직경 Ø…mm → 추천 …` 한 형식으로 맞췄다.

- B05_Drainage_Basin_Bridge 문구에서 {d}를 빼고 "세월교 검토"만 남긴다 — 유효직경은
  앞머리가 적는다
- recommendationOf()가 ford_bridge도 맡아 bridge_required 특례 분기를 없앤다

실화면 확인(서버 기동 + Playwright): 네 줄이 각각 Ø929→추천 Ø1000 배관 /
Ø4719→세월교 검토 / Ø1529→BOX암거 후보 / Ø549→추천 Ø800 배관으로 표시된다.

검증: npm run typecheck 무오류, pytest tmp/tests 124 passed·7 skipped.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-17 19:33:18 +09:00
co-authored by Claude Opus 5
parent a9c46b9711
commit 6c6a0c2773
2 changed files with 10 additions and 13 deletions
+8 -11
View File
@@ -111,9 +111,10 @@ export function addLayerToggle(
}
/** 유역 제원 목록을 다시 그린다. 항목을 누르면 `onPick`으로 번호를 돌려준다. */
/** 유역 추천을 한 조각 문구로 — 배관이면 규격 스냅 관경, BOX암거면 후보 표기.
* 추천이 아직 없는(강우량표 전) 유역은 계산 유효직경만 남긴다. */
/** 유역 추천을 한 조각 문구로 — 배관이면 규격 스냅 관경, BOX암거·세월교면 검토 표기.
* 추천이 아직 없는(강우량표 전) 유역은 "미정"이다. */
function recommendationOf(basin: DetailBasin): string {
if (basin.recommended_facility === "ford_bridge") return L("B05_Drainage_Basin_Bridge");
if (basin.recommended_facility === "box_culvert") return L("B05_Drainage_Basin_RecBox");
if (basin.recommended_diameter_mm == null) return L("B05_Drainage_Basin_Undecided");
return L("B05_Drainage_Basin_RecPipe").replace("{d}", String(basin.recommended_diameter_mm));
@@ -138,15 +139,11 @@ export function renderBasinRows(
const metrics = document.createElement("span");
metrics.className = "b05-drainage__basin-metrics";
// 유효직경은 강우량표(rainfall_table.json)가 생기기 전까지 null → "미정" 표기.
// 관 최대 규격 초과 계류 유역은 관이 아니라 세월교 대상"세월교 검토"로 표기한다.
// 그 아래 유역은 계산 유효직경 뒤에 추천(규격 스냅 관경 또는 BOX암거)을 덧붙인다
// (2026-08-17 사용자 지시 — 추천 근거는 유량뿐, 지형 조건은 툴팁으로 안내).
const pipe = basin.bridge_required
? L("B05_Drainage_Basin_Bridge").replace(
"{d}",
String(Math.round(basin.pipe_diameter_mm ?? 0)),
)
: basin.pipe_diameter_mm === null
// 값이 있으면 어떤 시설이든 `계산 유효직경 → 추천` 한 형식으로 적는다 — 세월교
// 순서가 뒤집혀 있으면 같은 열을 훑을 때 읽는 방향이 달라진다(2026-08-17 사용자 지적).
// 추천 근거는 유량뿐이고 지형 조건은 툴팁으로 안내한다.
const pipe =
basin.pipe_diameter_mm === null
? L("B05_Drainage_Basin_Undecided")
: `Ø${Math.round(basin.pipe_diameter_mm)}mm → ${recommendationOf(basin)}`;
metrics.textContent = L("B05_Drainage_Basin_Metrics")
+2 -2
View File
@@ -77,8 +77,8 @@ export const ui_locales_b2 = {
],
B05_Drainage_Status_LoadFailed: ["배경도를 불러오지 못했습니다.", "Failed to load the basemap."],
B05_Drainage_Basin_Undecided: ["미정", "TBD"],
/* {d}=계산 유효직경(mm). 관 최대 규격 초과 계류 유역 — 관이 아니라 세월교 대상 */
B05_Drainage_Basin_Bridge: ["세월교 검토 (Ø{d}mm)", "Ford crossing req. (Ø{d}mm)"],
/* 관 최대 규격 초과 계류 유역 — 관이 아니라 세월교 대상. 유효직경은 앞머리가 적는다 */
B05_Drainage_Basin_Bridge: ["세월교 검토", "Ford crossing req."],
/* {area}=배수 유효면적, {relief}=표고차, {flow}=유하장, {pipe}=배수 유효직경 */
B05_Drainage_Basin_Metrics: [
"유효면적 {area} · 표고 {relief}m · 유하 {flow}m · 유효직경 {pipe}",