feat(748-1): 단가산출 상세 줄 모달 — 제목 오른쪽 연결 키 · [적용] [삭제] [닫기] 차례 · 요소 단가 정보 칸 걷음

- 제목 오른쪽 (연결 키 · 예 보통인부 (LB000002)) — 요소 · 고른 품목 · 부른 로직 키
- [적용] · [삭제](옛 빼기 이름 바꿈)를 모달 머리 [닫기] 왼쪽으로 · [기초 빼기] · 별도계상은 고침 칸 아래 그대로
- 고침 칸이 있는 모달은 요소 단가 정보 칸(이름 · 키 · 값 · 출처 · 마스터 보기) 걷음 — 자재품목 물가 넷 · 후보 목록 · 한 줄 풀이는 그대로
- M01 단가산출 기초 상세 모달도 같은 꼴([적용] [닫기])
- 낡은 시험 고침: test_722 모달 edit 인자(close, head)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-02 22:10:18 +09:00
co-authored by Claude Sonnet 5.5
parent 94e330a5f3
commit 6af23d42e1
7 changed files with 53 additions and 20 deletions
@@ -93,6 +93,8 @@ export interface CoverFormOptions {
/** 「m02」 = 덮개 보관 안내 */
scope?: "m01" | "m02";
onApply: (cover: LineCover | null) => void;
/** 모달 머리 단추 자리(닫기 왼쪽 · 748-1) — 주면 [적용] 이 거기로 */
head?: HTMLElement;
}
const num = (raw: string): number | null => {
@@ -140,10 +142,17 @@ export function coverForm(o: CoverFormOptions): HTMLElement {
error.hidden = !bad;
if (!bad) o.onApply(Object.keys(next).length ? next : null);
};
const applyButton = createButton({
label: tc("Apply"),
variant: "filled",
size: 32,
onClick: apply,
});
o.head?.append(applyButton);
const actions = el("div", {
className: "m01lab-cover__actions",
children: [
createButton({ label: tc("Apply"), variant: "filled", size: 32, onClick: apply }),
...(o.head ? [] : [applyButton]),
...(o.cover
? [
createButton({
@@ -156,6 +165,7 @@ export function coverForm(o: CoverFormOptions): HTMLElement {
: []),
],
});
actions.hidden = !actions.childElementCount;
return el("section", {
className: "m01lab-cover",
attrs: { "data-cover-form": "" },