From 3ad7678e15cb2bc9a2eba85ac53629928487af53 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sun, 4 Oct 2026 17:44:57 +0900 Subject: [PATCH] =?UTF-8?q?feat(M02):=20=EC=9D=BC=EC=9C=84=EB=8C=80?= =?UTF-8?q?=EA=B0=80=20=EC=9E=90=EC=9E=AC=EB=AA=A9=EB=A1=9D=20[=EC=9E=90?= =?UTF-8?q?=EC=9E=AC=20=EC=B6=94=EA=B0=80]=20=E2=80=94=20M01=20=EC=9E=90?= =?UTF-8?q?=EC=9E=AC=20=ED=95=98=EB=82=98=EC=94=A9(M02=5FMaterial=5FPick)?= =?UTF-8?q?=20=C2=B7=20=EA=B0=99=EC=9D=80=20=EC=9E=90=EC=9E=AC=20=EB=91=90?= =?UTF-8?q?=20=EB=B2=88=20=EB=A7=89=EC=9D=8C(39-3=20C5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01MgChuAcyBqUkhHMTXomQC7 --- .../M02_MasterTemplete_Labor_Detail.ts | 37 ++++++++----------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/M02_MasterTemplete/M02_MasterTemplete_Labor_Detail.ts b/M02_MasterTemplete/M02_MasterTemplete_Labor_Detail.ts index d56ecc546..dfddeb889 100644 --- a/M02_MasterTemplete/M02_MasterTemplete_Labor_Detail.ts +++ b/M02_MasterTemplete/M02_MasterTemplete_Labor_Detail.ts @@ -17,7 +17,6 @@ import { fetchLogicInputs, type LaborCalc, type LaborDoc, - type LaborMat, type LaborRow, } from "./M02_MasterTemplete_Labor_Api"; import { @@ -30,6 +29,7 @@ import { openLogicPicker } from "./M02_MasterTemplete_Labor_Pick"; import { logicTable, matTable, qtyText } from "./M02_MasterTemplete_Labor_Rows"; import { tc } from "./M02_MasterTemplete_Labor_Text"; import { keepKnown } from "./M02_Labor_Values_Model"; +import { pickMaterial } from "./M02_Material_Pick"; import "../M01_MasterData/M01_MasterData_UI_Logic_Style.css"; import "../M01_MasterData/M01_MasterData_UI_LogicLab_Style.css"; import "@ui/ui_template_general_layout.css"; @@ -67,8 +67,6 @@ export interface LaborDetailOptions { onChanged: (dirty: boolean) => void; /** 「면적산출에서 잇기」 — 그 열 면적산출 상세로(없으면 단추 없음) */ goArea: (() => void) | null; - /** 자재 하나 고르기(`M02_Material_Pick`) — 없으면 [자재 추가] 없음 */ - pickMaterial?: (done: (m: Omit) => void) => void; } export interface LaborDetailHandle { @@ -253,24 +251,21 @@ export function mountLaborDetail( void loadLogics().then(changed); }), }); - const pick = opt.pickMaterial; - const addMat = pick - ? createButton({ - label: tc("Labor_AddMat"), - variant: "filled", - size: "sm", - onClick: () => - pick((m) => { - if (cur.자재.some((x) => x.코드 === m.코드)) - return showToast( - tc("Labor_AlreadyMat").replace("{value}", `${m.코드} ${m.이름 ?? ""}`), - "error", - ); - cur.자재.push({ ...m, 수량: null }); - changed(); - }), - }) - : null; + const addMat = createButton({ + label: tc("Labor_AddMat"), + variant: "filled", + size: "sm", + onClick: () => + pickMaterial((m) => { + if (cur.자재.some((x) => x.코드 === m.코드)) + return showToast( + tc("Labor_AlreadyMat").replace("{value}", `${m.코드} ${m.이름 ?? ""}`), + "error", + ); + cur.자재.push({ 코드: m.코드, 이름: m.이름, 규격: m.규격, 단위: m.단위, 수량: null }); + changed(); + }), + }); const unit = createInputField({ type: "text", label: tc("Labor_Unit") }); unit.input.value = cur.단위 ?? "";