fix(m02): 자재목록 운반비 드롭다운 별도계상과 따로 — 늘 켬 · 각자 저장(168-1)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SE9MxeXTu2uaDZ55BJowAY
This commit is contained in:
2026-10-10 08:22:17 +09:00
co-authored by Claude Opus 5.5
parent 1f1646781f
commit e1ec2eccd9
2 changed files with 8 additions and 18 deletions
@@ -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<Record<MatMarkKey, HTMLSelectElement>> = {};
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;
}
/** 한 칸 바꿈 — 빈 값 = 칸 지움 */