From f7ebf1831fdd727dd5598b721afda6c5134985dd Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sun, 1 Nov 2026 21:08:07 +0900 Subject: [PATCH] =?UTF-8?q?feat(721-1):=20M02=20=EB=8B=A8=EA=B0=80?= =?UTF-8?q?=EC=82=B0=EC=B6=9C=20=EC=83=81=EC=84=B8=20=EB=8B=A8=EC=B6=94=20?= =?UTF-8?q?=EC=9D=B4=EB=A6=84=20=C2=B7=20=EC=9E=90=EB=A6=AC=20=E2=80=94=20?= =?UTF-8?q?=E3=80=8C=EA=B8=B0=EB=B3=B8=20=EB=A1=9C=EC=A7=81=20=EC=84=A0?= =?UTF-8?q?=ED=83=9D=E3=80=8D=EC=9D=84=20=E3=80=8C=ED=95=AD=EB=AA=A9=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=E3=80=8D=20=EC=99=BC=EC=AA=BD=20=C2=B7=20?= =?UTF-8?q?=E3=80=8C=EC=A4=84=20=EB=8D=94=ED=95=98=EA=B8=B0=E3=80=8D=20?= =?UTF-8?q?=E2=86=92=20=E3=80=8C=ED=95=AD=EB=AA=A9=20=EC=B6=94=EA=B0=80?= =?UTF-8?q?=E3=80=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- .../M02_MasterTemplete_Sangeun_Detail.ts | 32 +++++++++---------- ui_template/ui_template_locale_m2.ts | 4 +-- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/M02_MasterTemplete/M02_MasterTemplete_Sangeun_Detail.ts b/M02_MasterTemplete/M02_MasterTemplete_Sangeun_Detail.ts index 274ab9d44..3bbbde1dc 100644 --- a/M02_MasterTemplete/M02_MasterTemplete_Sangeun_Detail.ts +++ b/M02_MasterTemplete/M02_MasterTemplete_Sangeun_Detail.ts @@ -5,7 +5,7 @@ * 시험 계산(`Logic_Calc` · 바탕 M01 로직) · 텍스트 수식(바탕 M01 로직 식) · 기본정보 = 바탕 로직(맨 위 접힘) * 고침 = SK 덮개 · 더한줄(`Sangeun_Pick`) · 뺀줄(꼴 = 서버 `M02_Sangeun_Doc`) · 값 = 서버 셈 길 최신 응답만 * 시험 입력 = SK 셈 `입력값`(저장 안 함) · [저장] = 화면 문서 → 서버가 다시 셈(원값 · 바탕판) - * 바탕 없는 SK = [M01 로직 고름] → 바탕 · 단위 · 바탕 없이 줄만도 됨 + * 바탕 없는 SK = [기본 로직 선택] → 바탕 · 단위 · 바탕 없이 줄만도 됨 * ========================================================================== */ import { createBadge } from "@ui/ui_template_badge"; @@ -96,6 +96,20 @@ export function mountSangeunDetail( }), }); addButton.hidden = !edit; + const pick = createButton({ + label: L("M02_SangeunPickBase"), + variant: "filled", + size: 28, + onClick: () => + openLogicPicker((x) => { + doc.바탕 = { 로직: x.키 }; + delete doc.바탕판; // 새 바탕 — 개정 견줄 판 없음 + if (!doc.단위 || doc.단위 === "식") doc.단위 = unitOf(x.결과단위) || doc.단위; + touch(false); + void loadBase(); + }), + }); + pick.hidden = true; // 보임은 drawHead 가 정함 const baseHint = createText(L("M02_SangeunBaseViews")); host.replaceChildren( el("div", { @@ -104,7 +118,7 @@ export function mountSangeunDetail( children: [ head, notes, - el("div", { className: "m02-sk__head", children: [views.root, addButton, baseHint] }), + el("div", { className: "m02-sk__head", children: [views.root, pick, addButton, baseHint] }), editor, ], }), @@ -164,19 +178,6 @@ export function mountSangeunDetail( const baseName = base ? `${base.logic.키} ${base.logic.이름}` : null; const baseText = baseName ?? doc.바탕?.참조?.키 ?? L("M02_SangeunNoBase"); const revised = !!(doc.바탕판 && ans?.바탕판 && doc.바탕판 !== ans.바탕판); - const pick = createButton({ - label: L("M02_SangeunPickBase"), - variant: "filled", - size: 28, - onClick: () => - openLogicPicker((x) => { - doc.바탕 = { 로직: x.키 }; - delete doc.바탕판; // 새 바탕 — 개정 견줄 판 없음 - if (!doc.단위 || doc.단위 === "식") doc.단위 = unitOf(x.결과단위) || doc.단위; - touch(false); - void loadBase(); - }), - }); pick.hidden = !edit || !!doc.바탕 || !!doc.뺀줄?.length || !!Object.keys(doc.덮개 ?? {}).length; head.replaceChildren( field(L("M02_Name"), "이름"), @@ -191,7 +192,6 @@ export function mountSangeunDetail( ...(opened() ? [createBadge(L("M02_SangeunScaleOnly"), "warning")] : []), ], }), - pick, ); } diff --git a/ui_template/ui_template_locale_m2.ts b/ui_template/ui_template_locale_m2.ts index cd9687885..d7edfbbd0 100644 --- a/ui_template/ui_template_locale_m2.ts +++ b/ui_template/ui_template_locale_m2.ts @@ -202,8 +202,8 @@ export const ui_locales_m2 = { M02_SangeunRemoved: ["뺀 줄", "Removed rows"], M02_SangeunUnit: ["단위(1 단위 값)", "Unit (value per 1)"], M02_SangeunNeed: ["비우면 저장 안 됨", "Required"], - M02_SangeunPickBase: ["M01 로직 고름", "Pick M01 logic"], - M02_SangeunAddLine: ["줄 더하기", "Add row"], + M02_SangeunPickBase: ["기본 로직 선택", "Select base logic"], + M02_SangeunAddLine: ["항목 추가", "Add item"], M02_SangeunDrop: ["빼기", "Remove"], M02_SangeunRestore: ["되살리기", "Restore"], M02_SangeunWas: ["바탕", "Base"],