From f2819d513cd3ebf8b810442ed2553ccdef28ac88 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sun, 13 Sep 2026 14:56:01 +0900 Subject: [PATCH] =?UTF-8?q?feat(b08):=20=EA=B5=AC=EC=A1=B0=EB=AC=BC?= =?UTF-8?q?=EB=8F=84=20=ED=83=AD=EC=9D=84=20=EC=88=98=EB=9F=89=EC=82=B0?= =?UTF-8?q?=EC=B6=9C=20=ED=99=94=EB=A9=B4=EC=97=90=20=EB=B6=99=EC=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 구조물 원단위 탭 앞에 「구조물도」 탭 등록(브레인 지정 배선 권한) - 탭 차례 바꾸기·원단위 흡수는 PLAN 5장 몫이라 손대지 않음 Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq --- B08_Quantity/B08_Quantity_UI_Page.ts | 7 ++++++- ui_template/ui_template_locale_b2.ts | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/B08_Quantity/B08_Quantity_UI_Page.ts b/B08_Quantity/B08_Quantity_UI_Page.ts index 1d4971d3..f34ad20f 100644 --- a/B08_Quantity/B08_Quantity_UI_Page.ts +++ b/B08_Quantity/B08_Quantity_UI_Page.ts @@ -38,6 +38,7 @@ import { renderUnitQuantityGrid, type MaterialResponse, } from "./B08_Quantity_UI_MaterialGrid"; +import { renderStructureSheets } from "./B08_Quantity_UI_StructureSheet"; /** locale 헬퍼 */ function L(key: keyof typeof ui_locales): string { @@ -764,6 +765,7 @@ function buildQuantityBody( failed: boolean, material: MaterialResponse | null, draft: DraftSettings, + projectId: string | null, ): HTMLElement { const body = document.createElement("div"); body.className = "b08-quantity__body"; @@ -827,6 +829,9 @@ function buildQuantityBody( : message(L("B08_Quantity_Grid_Empty")); }, }, + // 구조물도 — 제원 조합 하나 = 한 장(PLAN 3장). 스스로 받아 오므로 표를 넘기지 않음. + // ⚠ 탭 차례 바꾸기·원단위 탭 흡수는 PLAN 5장 몫 — 여기서는 원단위 앞에 붙이기만 함. + { label: L("B08_Quantity_Tab_StructureSheet"), build: () => renderStructureSheets(projectId) }, { label: L("B08_Quantity_Tab_UnitQuantity"), build: () => @@ -957,7 +962,7 @@ export async function renderB08Quantity(root: HTMLElement): Promise { steps: workflowSteps(), activeStep: 5, leftPanel: buildQuantitySidePanel(projectId, table, draft, reload), - mainContent: buildQuantityBody(table, failed, material, draft), + mainContent: buildQuantityBody(table, failed, material, draft, projectId), stages: workflowState?.stages, currentStage: workflowState?.current_stage, routes: WORKFLOW_STEP_ROUTES, diff --git a/ui_template/ui_template_locale_b2.ts b/ui_template/ui_template_locale_b2.ts index 727d8a51..1d7fee7c 100644 --- a/ui_template/ui_template_locale_b2.ts +++ b/ui_template/ui_template_locale_b2.ts @@ -624,6 +624,7 @@ export const ui_locales_b2 = { ], B08_Quantity_Tab_Summary: ["토공집계", "Earthwork Summary"], B08_Quantity_Tab_Haul: ["운반거리", "Haul Distance"], + B08_Quantity_Tab_StructureSheet: ["구조물도", "Structure Sheets"], B08_Quantity_Tab_UnitQuantity: ["구조물 원단위", "Structure Unit Quantity"], B08_Quantity_Tab_Material: ["자재총괄", "Material Summary"], B08_Quantity_Tab_Preparation: ["준비공·사방공", "Preparation & Erosion Control"],