feat(721-1): M02 단가산출 상세 단추 이름 · 자리 — 「기본 로직 선택」을 「항목 추가」 왼쪽 · 「줄 더하기」 → 「항목 추가」

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-01 21:08:07 +09:00
co-authored by Claude Opus 5.5
parent 887ca4a035
commit f7ebf1831f
2 changed files with 18 additions and 18 deletions
@@ -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,
);
}
+2 -2
View File
@@ -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"],