From e1ec2eccd9d7d0ad0ccf241aa5760f733141700d Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 10 Oct 2026 08:22:17 +0900 Subject: [PATCH] =?UTF-8?q?fix(m02):=20=EC=9E=90=EC=9E=AC=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=20=EC=9A=B4=EB=B0=98=EB=B9=84=20=EB=93=9C=EB=A1=AD?= =?UTF-8?q?=EB=8B=A4=EC=9A=B4=20=EB=B3=84=EB=8F=84=EA=B3=84=EC=83=81?= =?UTF-8?q?=EA=B3=BC=20=EB=94=B0=EB=A1=9C=20=E2=80=94=20=EB=8A=98=20?= =?UTF-8?q?=EC=BC=AC=20=C2=B7=20=EA=B0=81=EC=9E=90=20=EC=A0=80=EC=9E=A5(16?= =?UTF-8?q?8-1)?= 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_01SE9MxeXTu2uaDZ55BJowAY --- .../M02_MasterTemplete_Labor_MatMarks.ts | 17 +++-------------- resources/tester/test_m02_labor_mat_marks.py | 9 +++++---- 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/M02_MasterTemplete/M02_MasterTemplete_Labor_MatMarks.ts b/M02_MasterTemplete/M02_MasterTemplete_Labor_MatMarks.ts index 50005f7da..ee9fc13b3 100644 --- a/M02_MasterTemplete/M02_MasterTemplete_Labor_MatMarks.ts +++ b/M02_MasterTemplete/M02_MasterTemplete_Labor_MatMarks.ts @@ -2,7 +2,7 @@ * M02_MasterTemplete_Labor_MatMarks.ts * 자재목록 세 칸(148-4) — 자재구분(관급 · 사급) · 별도계상(별도계상 · 직접계산) · 운반비(포함 · 미포함) * · 고칠 수 있으면 드롭다운(줄 누름과 따로) · 아니면 글 · 금액 무관 - * · 빈 칸 = 기본값 표시(162-1 · `MAT_MARK_DEFAULT` · 저장은 비움) · 별도계상이면 운반비 드롭다운 꺼짐(값 그대로) + * · 빈 칸 = 기본값 표시(162-1 · `MAT_MARK_DEFAULT` · 저장은 비움) · 운반비는 별도계상과 따로(168-1 · 늘 켬) * · 사용자 자재 = 줄 덧칸 · 로직 자재 = 로직 줄 `자재표시 {호표 차례: 세 칸}`(`Labor_Api` 정리 · 서버 `clean`) * ========================================================================== */ @@ -39,8 +39,7 @@ export function markCells( value: MatMarks, set?: (key: MatMarkKey, v: string) => void, ): HTMLElement[] { - const picks: Partial> = {}; - const cells = KEYS.map((key) => { + return KEYS.map((key) => { const now = value[key] ?? MAT_MARK_DEFAULT[key]; const attrs = { "data-label": tc(HEAD[key]), "data-mat-mark": key }; if (!set) return el("td", { className: "m02-labrow__mark", text: tc(WORD[now]), attrs }); @@ -49,21 +48,11 @@ export function markCells( value: now, compact: true, ariaLabel: tc(HEAD[key]), - onChange: (v) => { - set(key, v); - if (key === "별도계상") haulOff(v); - }, + onChange: (v) => set(key, v), }); - picks[key] = pick.select; pick.root.addEventListener("click", (e) => e.stopPropagation()); // 줄 누름과 따로 return el("td", { className: "m02-labrow__mark", attrs, children: [pick.root] }); }); - // 별도계상이면 운반비 꺼짐 — 값은 그대로 - const haulOff = (sep: string) => { - if (picks.운반비) picks.운반비.disabled = sep === "별도계상"; - }; - haulOff(value.별도계상 ?? MAT_MARK_DEFAULT.별도계상); - return cells; } /** 한 칸 바꿈 — 빈 값 = 칸 지움 */ diff --git a/resources/tester/test_m02_labor_mat_marks.py b/resources/tester/test_m02_labor_mat_marks.py index ffac374a3..e10707d17 100644 --- a/resources/tester/test_m02_labor_mat_marks.py +++ b/resources/tester/test_m02_labor_mat_marks.py @@ -5,7 +5,8 @@ - 기준합 · 반영합 그대로 · 저장 왕복에 남음 · 화면 `normalizeLabor` 도 같은 규칙(Node 헬퍼) - 화면 칸 부품 = 새 파일 · 사용자 줄 · 로직 줄 같은 칸 · 사전조합 줄엔 안 넘김(소스 검사) - 162-1 = 「일반」 지움(관급 · 사급) · 빈 칸 = 읽을 때 기본(사급 · 별도계상 · 포함 · 저장은 비움) · - 옛 「일반」 = 사급으로 읽음 · 별도계상이면 운반비 드롭다운 꺼짐(값 그대로) + 옛 「일반」 = 사급으로 읽음 +- 168-1 = 운반비 드롭다운 늘 켬(별도계상과 따로 · 각자 저장) """ import json @@ -153,12 +154,12 @@ def test_옛_일반은_사급으로_읽음(): assert labor.mark_of({"자재구분": "일반"}, "자재구분") == "사급" -def test_화면_기본값_한_벌_운반비_꺼짐(): +def test_화면_기본값_한_벌_운반비_늘_켬(): api = _src("M02_MasterTemplete_Labor_Api.ts") for key, v in labor.MARK_DEFAULT.items(): assert f'{key}: "{v}",' in api.split("MAT_MARK_DEFAULT")[1].split("};")[0] marks = _src("M02_MasterTemplete_Labor_MatMarks.ts") assert "value[key] ?? MAT_MARK_DEFAULT[key]" in marks - assert 'picks.운반비.disabled = sep === "별도계상"' in marks - assert "haulOff(value.별도계상 ?? MAT_MARK_DEFAULT.별도계상)" in marks + assert "disabled" not in marks and "haulOff" not in marks # 별도계상과 따로 + assert "onChange: (v) => set(key, v)," in marks # 칸마다 제 값만 저장 assert '일반: "Mark_General"' not in marks