From 759f8c59a4e73263f8ebad6ef160caa6864f7b6e Mon Sep 17 00:00:00 2001 From: umsangdon Date: Tue, 8 Sep 2026 06:22:59 +0900 Subject: [PATCH] =?UTF-8?q?fix(B09):=20=EC=95=88=EB=82=B4=20=EC=A4=84=20?= =?UTF-8?q?=EA=B2=B9=EC=B9=A8=20=EC=A0=95=EB=A6=AC=20=E2=80=94=20=EA=B0=99?= =?UTF-8?q?=EC=9D=80=20=EC=88=98=EA=B0=80=20=EB=91=90=20=EB=B2=88=20?= =?UTF-8?q?=EB=9C=A8=EB=8D=98=20=EA=B2=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 메인 창 지적(「안내를 더하는 것이 곧 다른 안내를 묻는 것」)을 내 화면에도 대어 봄 - 잘리는 줄은 없었음(본문 높이 = 스크롤 높이, 6줄 다 보임) - 다만 **같은 수가 두 번** 떴음 — 「금액을 못 세운 줄 (16)」 뒤에 갈래별 머리글이 또 붙어 「… (16)」이 이어짐. 머리글을 **한 번만** 달게 함 (6줄 → 5줄) - 갈래가 하나뿐일 때만 「금액을 못 세운 줄」을 앞에 붙여 뜻이 온전하게 함 - 문구도 줄임 — 「0 으로 채우지 않고 그대로 보입니다」 → 「0 으로 안 채웁니다」 등 실측(5174): 안내 5줄, 잘림 없음. 바꾼 화면 상태는 원래 탭으로 되돌림 검증: pytest 211 통과, tsc 0건 Co-Authored-By: Claude Opus 5 (1M context) --- B09_Estimation/B09_Estimation_UI_Page.ts | 13 +++++++------ ui_template/ui_template_locale_b2.ts | 6 +++--- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/B09_Estimation/B09_Estimation_UI_Page.ts b/B09_Estimation/B09_Estimation_UI_Page.ts index ff6538f6..df04452b 100644 --- a/B09_Estimation/B09_Estimation_UI_Page.ts +++ b/B09_Estimation/B09_Estimation_UI_Page.ts @@ -908,11 +908,9 @@ export async function renderB09Estimation(root: HTMLElement): Promise { } if (bill.summary.missing.length > 0) { - const note = document.createElement("div"); - note.className = "b09-hint"; - note.textContent = `${L("B09_Estimation_Boq_Missing")} (${bill.summary.missing.length})`; - body.append(note); - + // ⚠ **머리글을 한 번만 단다.** 종전엔 「못 세운 줄 (16)」 뒤에 갈래별 머리글이 + // 또 붙어 **같은 수가 두 번** 떴다. 안내를 더하는 것이 곧 다른 안내를 묻는 것이라 + // (2026-09-08 메인 창 지적), 한 화면에 뜨는 줄 수를 늘리지 않는다. // ⚠ **할 일이 다르므로 갈라 보인다** — 「사용자가 입력하면 풀리는 것」과 // 「우리가 만들어야 하는 것」. 한 목록에 섞으면 사용자가 무엇을 해야 할지 못 읽는다. const needsInput = bill.summary.missing.filter( @@ -926,7 +924,10 @@ export async function renderB09Estimation(root: HTMLElement): Promise { if (group.length === 0) continue; const head = document.createElement("div"); head.className = "b09-hint"; - head.textContent = `${L(labelKey)} (${group.length})`; + // 갈래가 하나뿐이면 「금액을 못 세운 줄」이라는 말을 앞에 붙여 뜻이 온전하게 한다. + const prefix = + needsInput.length > 0 && rest.length > 0 ? "" : `${L("B09_Estimation_Boq_Missing")} — `; + head.textContent = `${prefix}${L(labelKey)} (${group.length})`; body.append(head); const list = document.createElement("ul"); for (const item of group) { diff --git a/ui_template/ui_template_locale_b2.ts b/ui_template/ui_template_locale_b2.ts index f2ec9e52..f54e751d 100644 --- a/ui_template/ui_template_locale_b2.ts +++ b/ui_template/ui_template_locale_b2.ts @@ -713,15 +713,15 @@ export const ui_locales_b2 = { "Check rows — quantity only, never priced", ], B09_Estimation_Boq_NeedsInput: [ - "입력하면 풀리는 것 — 설계 화면에서 값을 고르면 금액이 섭니다", + "입력하면 풀리는 것 (설계 화면에서 값을 고르면 금액이 섭니다)", "Waiting on input — pick the value on the design screen and the amount appears", ], B09_Estimation_Boq_NeedsWork: [ - "우리가 만들어야 하는 것 — 원단위·전개식이 아직 없습니다", + "우리가 만들어야 하는 것 (원단위·전개식 없음)", "Needs build — unit data or formula is missing", ], B09_Estimation_Boq_Missing: [ - "금액을 못 세운 줄 — 0 으로 채우지 않고 그대로 보입니다", + "금액을 못 세운 줄 — 0 으로 안 채웁니다", "Rows without an amount — shown as-is, not zero-filled", ], B09_Estimation_Boq_Materials: ["자재 (별도 벌)", "Materials (separate set)"],