feat(M02): 일위대가 상세를 UI_Main 종류 labor 로 엶 · 보기 갈래 부품 · 수량만 바뀌면 짝 셈으로 바로 곱함(39-3 C7)

- UI_Main: 종류 labor 갈래 한 곳(mountLaborDetail · 「면적산출에서 잇기」 = 물은 뒤 그 열 면적산출) · 번호 칸 일위대가번
- Api_Fetch: Kind 에 labor
- 새 Labor_View.ts(createLaborView — 면적산출 오른쪽 패널 · 일위대가 카드용 · 담은 로직 + 자재목록 · show · setQty · onRow)
- Labor_Detail: 면적산출 연결 칸 → 「수량 F14 = …」 · 수량만 바뀌면 Labor_Calc.settle 로 서버 없이 · 손 입력 숫자는 수로
- Labor_Api: calc 답 모양은 Labor_Calc.ts 것을 씀 · normalizeLabor · areaLinks
- 자재 표 머리 「단위」

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MgChuAcyBqUkhHMTXomQC7
This commit is contained in:
2026-10-04 18:03:54 +09:00
co-authored by Claude Opus 5.5
parent 8d7214ba55
commit 5b4aed1b20
9 changed files with 303 additions and 87 deletions
@@ -137,7 +137,12 @@ export function openLaborInput(opt: LaborInputOptions): void {
if (isBad) bad.add(input.이름);
else bad.delete(input.이름);
if (value === null) delete draft[input.이름];
else draft[input.이름] = value;
// 고르기 · 범위 없는 칸도 수로 읽히면 수로 둠(M01 넣을 값과 같게)
else
draft[input.이름] =
typeof value === "string" && value.trim() !== "" && Number.isFinite(Number(value))
? Number(value)
: value;
});
field.control.disabled = opt.readOnly;
field.control.setAttribute("data-labor-input", input.이름);