From 513aff3ec0d95181c388591180024d7ef579917c Mon Sep 17 00:00:00 2001 From: umsangdon Date: Wed, 9 Sep 2026 11:36:54 +0900 Subject: [PATCH] =?UTF-8?q?feat(B06/B05):=20=EC=82=AC=ED=86=A0=EC=9E=A5?= =?UTF-8?q?=EC=9D=84=20=EB=A9=B4=EC=A0=81=ED=91=9C=EC=97=90=20=EA=B0=88?= =?UTF-8?q?=EB=9D=BC=20=EB=B3=B4=EC=9E=84=20+=20=EB=93=B1=EB=A1=9D?= =?UTF-8?q?=EB=B6=80=20=EC=B9=B8=20=EC=85=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 사토장 - 카드 면적표에 「사토장」 줄을 따로 세움 — 성토와 **합치지 않음**(확정 ㉠). 사토장이 없는 측점에는 줄을 세우지 않음(어느 측점에 있는지 표에서 보이게) - 성토와 다른 색으로 둠 — 같은 색이면 한 덩어리로 읽힘 등록부(다른 창 요청, 기본값 없음 — 현장 치수라 지어내지 않음) - `erosion_check.top_length_m`·`bottom_length_m` — 골막이 정면적이 사다리꼴이라 두 변이 있어야 셈. 실무 정본 산출식이 상장ⓐ·하장ⓑ를 씀 - `soil_guard.form` 에 「떼」 추가 — 실무 정본에 떼흙막이 산출식이 있는데 붙일 칸이 없었음 Co-Authored-By: Claude Opus 5 (1M context) --- B05_Profile/B05_Profile_Structure_Types.json | 29 ++++++++++++++++++- B06_Section/B06_Section_UI_Cross_Areas.ts | 15 ++++++++++ .../B06_Section_UI_Style_Cross_Areas.css | 5 ++++ ui_template/ui_template_locale_b2.ts | 3 ++ 4 files changed, 51 insertions(+), 1 deletion(-) diff --git a/B05_Profile/B05_Profile_Structure_Types.json b/B05_Profile/B05_Profile_Structure_Types.json index aa468339..a555707d 100644 --- a/B05_Profile/B05_Profile_Structure_Types.json +++ b/B05_Profile/B05_Profile_Structure_Types.json @@ -1010,7 +1010,16 @@ "key": "form", "label": "형식", "input": "select", - "choices": ["콘크리트", "돌(찰)", "돌(메)", "블록쌓기", "돌망태", "흙포대", "통나무쌓기"], + "choices": [ + "콘크리트", + "돌(찰)", + "돌(메)", + "블록쌓기", + "돌망태", + "흙포대", + "통나무쌓기", + "떼" + ], "default": null, "required": true, "phase": "detail" @@ -1273,6 +1282,24 @@ "required": true, "phase": "detail" }, + { + "key": "top_length_m", + "label": "상장 ⓐ (윗변)", + "input": "number", + "unit": "m", + "default": null, + "required": true, + "phase": "detail" + }, + { + "key": "bottom_length_m", + "label": "하장 ⓑ (아랫변)", + "input": "number", + "unit": "m", + "default": null, + "required": true, + "phase": "detail" + }, { "key": "length_m", "label": "길이", diff --git a/B06_Section/B06_Section_UI_Cross_Areas.ts b/B06_Section/B06_Section_UI_Cross_Areas.ts index 09d62d5d..6bdaaee9 100644 --- a/B06_Section/B06_Section_UI_Cross_Areas.ts +++ b/B06_Section/B06_Section_UI_Cross_Areas.ts @@ -375,6 +375,21 @@ export function buildAreaReadout( ], }, ]; + // 사토장이 선 측점만 한 줄 더 — **성토와 합치지 않는다**(확정 ㉠). 없는 측점에 빈 줄을 + // 세우면 어느 측점에 사토장이 있는지 표에서 안 보인다. + const spoilArea = Number(design.spoil_fill_area_m2 ?? 0); + if (spoilArea > 0) { + rows.push({ + label: L("B06_Design_SpoilFill_Area"), + variant: "spoil-fill", + cells: [ + { key: null, value: null, variant: "spoil-fill" }, + { key: null, value: null, variant: "spoil-fill" }, + { key: null, value: null, variant: "spoil-fill" }, + { key: null, value: spoilArea, variant: "spoil-fill" }, + ], + }); + } for (const row of rows) { const tr = document.createElement("tr"); const th = document.createElement("th"); diff --git a/B06_Section/B06_Section_UI_Style_Cross_Areas.css b/B06_Section/B06_Section_UI_Style_Cross_Areas.css index 36151f4f..94de826c 100644 --- a/B06_Section/B06_Section_UI_Style_Cross_Areas.css +++ b/B06_Section/B06_Section_UI_Style_Cross_Areas.css @@ -71,6 +71,11 @@ color: var(--color-chart-0); } +/* 사토장 — 성토와 **다른 색**으로 둔다. 같은 색이면 표에서 한 덩어리로 읽힌다. */ +.b06-design__area--spoil-fill { + color: #6d7a20; +} + .b06-design__area--unset { color: var(--color-text-muted); } diff --git a/ui_template/ui_template_locale_b2.ts b/ui_template/ui_template_locale_b2.ts index 0f8e0e8e..5b5dabc6 100644 --- a/ui_template/ui_template_locale_b2.ts +++ b/ui_template/ui_template_locale_b2.ts @@ -446,6 +446,9 @@ export const ui_locales_b2 = { B06_Design_Area_Unit: ["㎡", "㎡"], B06_Design_Area_Highlight: ["누르면 해당 면적을 강조합니다", "Click to highlight this area"], B06_Design_Fill_Area: ["성토", "Fill"], + // 사토장(유용토운반작업장) — **성토와 갈라 보인다**. 합치면 「쌓기」가 갑자기 커 보여 + // 사람이 오해한다(2026-09-09 네 창 확정 ㉠). + B06_Design_SpoilFill_Area: ["사토장", "Spoil site"], B06_Design_Unset: ["미지정", "Not set"], B06_Design_DitchType_Legend: ["측구형식", "Ditch type"], B06_Design_DitchType_Standard: ["일반", "Standard"],