From f685845e5a8108e23b05ed594df6c0a4df756faa Mon Sep 17 00:00:00 2001 From: umsangdon Date: Tue, 8 Sep 2026 06:16:42 +0900 Subject: [PATCH] =?UTF-8?q?fix(B08):=20=ED=99=94=EB=A9=B4=20=ED=86=B5?= =?UTF-8?q?=EA=B3=BC=EC=97=90=EC=84=9C=20=EC=9E=A1=EC=9D=80=20=EC=A2=8C?= =?UTF-8?q?=EC=B8=A1=20=EA=B2=B0=ED=95=A8=20=EB=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ㉕-1 실사용자 화면 통과(로그인 뒤). 엔진 실행으로는 안 보이던 것들. - 토량환산계수 세 줄이 서버 키로 뜨고 있었음 (soil · ripping_rock · blasting_rock) → 토사 · 리핑암 · 발파암. 준비공의 soil_guard 와 같은 병. 모르는 키는 지어내지 않고 그대로 보임. - 타설 방식 안내가 겹쳐 경고를 밀어내고 있었음. 기본값일 때는 「기본값으로 계산 중」 경고가 더 많은 것을 말하므로 내 줄을 안 실음. 문구도 줄임. 실측: 줄이기 전에는 참고 단가·⚠ 두 줄이 패널 밖으로 잘려 안 보였음. 화면 확인(스크린샷·DOM): 탭 6장 다 서고 표가 따라옴. 표토 두께 칸은 입력 가능(회색은 「안 정함」 placeholder 색). Co-Authored-By: Claude Opus 5 (1M context) --- B08_Quantity/B08_Quantity_UI_Page.ts | 29 +++++++++++++++++++++++----- ui_template/ui_template_locale_b2.ts | 2 +- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/B08_Quantity/B08_Quantity_UI_Page.ts b/B08_Quantity/B08_Quantity_UI_Page.ts index eeecf98e..80fa1c88 100644 --- a/B08_Quantity/B08_Quantity_UI_Page.ts +++ b/B08_Quantity/B08_Quantity_UI_Page.ts @@ -200,6 +200,17 @@ function selectField( return row; } +/** 지반 종류 표기 — 서버 키가 화면에 새지 않게. 모르는 키는 그대로 보인다. */ +const GROUND_LABELS: Record = { + soil: "토사", + ripping_rock: "리핑암", + blasting_rock: "발파암", +}; + +function groundLabel(kind: string): string { + return GROUND_LABELS[kind] ?? kind; +} + /** 자재 한 줄의 관급/사급. `install_by` 는 **관급 줄에만** 뜻이 있다. */ export interface SupplyChoice { supply: string; @@ -239,7 +250,10 @@ function buildQuantitySidePanel( if (entries.length) { panel.append(field(L("B08_Quantity_Side_Factors"), "")); for (const [kind, value] of entries) { - panel.append(field(kind, String((value as { compacted: number }).compacted))); + // ⚠ 서버 키(`soil`·`ripping_rock`·`blasting_rock`)를 그대로 내보내지 않는다 — + // 2026-09-08 ㉕ 화면 통과에서 좌측 세 줄이 개발자 키로 떠 있었다(`soil_guard` 와 같은 병). + // 모르는 키는 **지어내지 않고** 그대로 보인다. + panel.append(field(groundLabel(kind), String((value as { compacted: number }).compacted))); } } @@ -355,10 +369,15 @@ function buildQuantitySidePanel( // 2026-09-08 ㉙: 인계가 **타설 공종 줄을 실제로 세운다.** 겹치지 않는 것이 확인됐다 — // 품셈 12-1-1 표는 직종·품만 주고 재료를 안 줘서, 품은 이 줄 · 재료는 자재 쪽이다. // ⚠ 돌쌓기 뒤채움(채움콘크리트)은 뺐다 — 그 공종 품에 이미 들어 있을 수 있다. - const pending = document.createElement("p"); - pending.className = "b08-quantity__note"; - pending.textContent = L("B08_Quantity_Placing_NotApplied"); - panel.append(pending); + // ⚠ **기본값일 때는 싣지 않는다** — 바로 아래 「기본값으로 계산 중」 경고가 더 많은 것을 + // 말하는데, 둘을 겹쳐 실으면 긴 문구가 그 경고를 화면 밖으로 밀어낸다 + // (2026-09-08 ㉕ 화면 통과에서 실제로 잘려 있었다). + if (!placing.is_default) { + const applied = document.createElement("p"); + applied.className = "b08-quantity__note"; + applied.textContent = L("B08_Quantity_Placing_NotApplied"); + panel.append(applied); + } } // ⚠ 「정하면 얼마나 달라지는지」까지 보여야 사용자가 판단한다. 이 값은 **참고 표시 전용**이고 // B08 의 어떤 계산에도 안 들어간다(금액은 B09 몫). diff --git a/ui_template/ui_template_locale_b2.ts b/ui_template/ui_template_locale_b2.ts index d7136e4b..791880b5 100644 --- a/ui_template/ui_template_locale_b2.ts +++ b/ui_template/ui_template_locale_b2.ts @@ -629,7 +629,7 @@ export const ui_locales_b2 = { B08_Quantity_Method_Ripping: ["긁어내기(암절취)", "Ripping"], B08_Quantity_Method_Blasting: ["터뜨리기(발파암)", "Blasting"], B08_Quantity_Placing_NotApplied: [ - "타설 방식에 따라 이 공종의 단가가 달라집니다 — 콘크리트 물량이 「콘크리트 타설」 공종으로 견적에 넘어갑니다.", + "콘크리트 물량이 「콘크리트 타설」 공종으로 견적에 넘어갑니다.", "The placing method changes this work item's unit price — concrete volume is handed over as a placing work item.", ], B08_Quantity_Side_Topsoil: ["표토제거", "Topsoil Removal"],