From 9e53b866e241ff2aa5afa01be8a2f601601d03d9 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Fri, 9 Oct 2026 20:40:17 +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=EB=AA=A8=EB=8B=AC=20=EA=B3=B5=EC=9A=A9=20=ED=81=B0?= =?UTF-8?q?=20=EC=B0=BD=20=C2=B7=20=EC=B9=B4=EB=93=9C=20=EC=85=8B=20?= =?UTF-8?q?=ED=95=9C=20=EC=A4=84=20=EC=84=B8=20=EC=B9=B8(156-4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 모달 = 공용 wide(96vw × 94vh) · 자기 폭 규칙 지움 - 도면 · 일위대가 · 면적산출 카드 = 한 줄 세 칸(3:2:2) · 카드 높이 큰 창에 맞춤 · 칸 사이 넓힘 - 조합끼리 가름줄 - 시험 test_156_1 덧붙임 · test_61_2 옛 폭 판정을 wide 로 Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01STqEqztUthVFBmEP18wBSz --- B08_Quantity/B08_Quantity_UI_Drawing.css | 21 +++++++++++-------- B08_Quantity/B08_Quantity_UI_Drawing.ts | 3 ++- resources/tester/test_156_1_b08_unlink.py | 9 ++++++++ .../tester/test_61_2_b08_structure_sheets.py | 2 +- 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/B08_Quantity/B08_Quantity_UI_Drawing.css b/B08_Quantity/B08_Quantity_UI_Drawing.css index aadb301bc..23fa23e0c 100644 --- a/B08_Quantity/B08_Quantity_UI_Drawing.css +++ b/B08_Quantity/B08_Quantity_UI_Drawing.css @@ -1,10 +1,5 @@ -/* B08 구조물도 모달(PLAN 95-3) — 조합마다 카드 둘(도면 · 면적산출). 색은 테마 변수만. */ - -/* 큰 창 — 공용 모달 css 는 그대로 두고 자기 class 로 */ -.ui-modal.b08-sheets { - width: min(1320px, 96vw); - --modal-max: 94vh; -} +/* B08 구조물도 모달(PLAN 95-3) — 조합마다 카드 셋(도면 · 일위대가 · 면적산출). 색은 테마 변수만. + 창 크기 = 공용 wide(96vw × 94vh · 156-4). */ .b08-sheets .ui-modal__body { gap: var(--spacing-24); @@ -16,6 +11,12 @@ gap: var(--spacing-8); } +/* 조합끼리 가름줄(156-4) */ +.b08-sheets__combo + .b08-sheets__combo { + padding-top: var(--spacing-24); + border-top: 1px solid var(--color-border); +} + .b08-sheets__title { display: flex; align-items: baseline; @@ -36,9 +37,11 @@ color: var(--color-danger); } -/* M02 카드 칸은 셋(도면 · 일위대가 · 면적산출) — 여기는 둘 · 도면을 넓게 */ +/* 카드 셋(도면 · 일위대가 · 면적산출) = 한 줄 세 칸 · 도면을 조금 넓게 · 높이 = 큰 창에 맞춤(156-4) */ .b08-sheets .m02-struct { - grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); + --m02-struct-card-h: max(480px, calc(94vh - 14rem)); + grid-template-columns: minmax(0, 3fr) minmax(0, 2fr) minmax(0, 2fr); + gap: var(--spacing-16); } @media (max-width: 960px) { diff --git a/B08_Quantity/B08_Quantity_UI_Drawing.ts b/B08_Quantity/B08_Quantity_UI_Drawing.ts index aa764528a..72d78f19d 100644 --- a/B08_Quantity/B08_Quantity_UI_Drawing.ts +++ b/B08_Quantity/B08_Quantity_UI_Drawing.ts @@ -2,7 +2,7 @@ * B08_Quantity_UI_Drawing.ts * 구조물 집계표 행 → 구조물도 모달(PLAN 95-3) — 그 측점에 놓인 조합 전부를 세로로 쌓음. * 조합 한 개 = M02 항목 카드(`M02_MasterTemplete_ItemCards`) 그대로 — 도면(도각 포함 · 보기 전용 CAD · - * 여러 장이면 장 탭) + 면적산출. + * 여러 장이면 장 탭) · 일위대가 · 면적산출 = 공용 카드 셋을 한 줄 세 칸(156-4 · 창 = 공용 wide). * * 원천 = 그 구조물의 프로젝트 사본만(연결된 사본 · PLAN 143-1) — 없으면 「사본 없음」 · 읽기만 * 조합 목록 = 집계표와 같음(`B08_Quantity_Summary_Data` `combosAt`) @@ -113,6 +113,7 @@ export function openStructureSheets(request: SheetsRequest): void { openModal({ title: `${request.station} ${L("B08_Quantity_Sheets_Title")}`, closeLabel: L("Common_Btn_Close"), + wide: true, // 공용 큰 창(96vw × 94vh · 156-4) dialogClass: "b08-sheets", beforeClose: () => { closed = true; // 아직 불러오는 중이면 뒤늦게 카드를 만들지 않음 diff --git a/resources/tester/test_156_1_b08_unlink.py b/resources/tester/test_156_1_b08_unlink.py index f67f91996..501aa61b3 100644 --- a/resources/tester/test_156_1_b08_unlink.py +++ b/resources/tester/test_156_1_b08_unlink.py @@ -101,3 +101,12 @@ def test_화면_연결된_칸만_끊기_닫기_양식(): assert "facilities: unlinkedAt(saved?.facilities ?? [], station)" in page sheets = (ROOT / "B08_Quantity/B08_Quantity_UI_Drawing.ts").read_text(encoding="utf-8") assert "linkSection(request.projectId, request.facilities" in sheets + + +def test_156_4_구조물도_모달_큰_창_세_칸(): + sheets = (ROOT / "B08_Quantity/B08_Quantity_UI_Drawing.ts").read_text(encoding="utf-8") + assert "wide: true" in sheets + css = (ROOT / "B08_Quantity/B08_Quantity_UI_Drawing.css").read_text(encoding="utf-8") + assert "min(1320px" not in css # 자기 폭 없음 — 공용 wide 그대로 + assert "minmax(0, 3fr) minmax(0, 2fr) minmax(0, 2fr)" in css # 도면 · 일위대가 · 면적산출 + assert ".b08-sheets__combo + .b08-sheets__combo" in css diff --git a/resources/tester/test_61_2_b08_structure_sheets.py b/resources/tester/test_61_2_b08_structure_sheets.py index a098d8555..694ae2737 100644 --- a/resources/tester/test_61_2_b08_structure_sheets.py +++ b/resources/tester/test_61_2_b08_structure_sheets.py @@ -20,7 +20,7 @@ def test_sheet_tab_gone_modal_wired(): def test_modal_own_class_and_cleanup(): css = Path("B08_Quantity/B08_Quantity_UI_Drawing.css").read_text(encoding="utf-8") - assert "min(1320px, 96vw)" in css and "--modal-max: 94vh" in css + assert "wide: true" in DRAWING and "min(1320px" not in css # 공용 큰 창(156-4) assert "beforeClose" in DRAWING and "cards.destroy()" in DRAWING assert 'dialogClass: "b08-sheets"' in DRAWING