feat(m01): 마스터 요소 상세 일곱 화면 머리를 단가산출 로직과 같은 공용 조각으로(제목 18px · 단추 줄 · 찾기 줄)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EauA2ATmqNRbeV48s9CcBr
This commit is contained in:
2026-10-02 09:42:34 +09:00
co-authored by Claude Sonnet 5.5
parent af201fbbd3
commit 65c2de2e9c
6 changed files with 75 additions and 17 deletions
+6 -3
View File
@@ -23,6 +23,7 @@ import { navigateTo } from "../A00_Common/router";
import { fetchSessionUser } from "../A06_Login/A06_Login_Api_Fetch";
import { saveFiles, type FileInfo } from "./M01_MasterData_Api_Fetch";
import { discard, isStale, onDraftChange, payload, totalCount } from "./M01_MasterData_Draft";
import { buildHeadBar, buildHeadFilters } from "./M01_MasterData_UI_Head";
import { renderRows } from "./M01_MasterData_UI_Rows";
import {
buildSide,
@@ -62,7 +63,7 @@ function buildPage(): HTMLElement {
let logicMounted = false;
/* --- 우측: 머리(제목·찾기·저장) + 알림 + 본문 --- */
const title = el("h2", { className: "m01-master__title", text: L("M01_PickFile") });
const title = el("h2", { text: L("M01_PickFile") });
const searchField = createInputField({ type: "search", placeholder: L("M01_Search") });
const search = searchField.input;
const summary = el("span", { className: "m01-master__summary" });
@@ -70,9 +71,11 @@ function buildPage(): HTMLElement {
const drop = createButton({ label: L("M01_Discard"), variant: "ghost" });
const notice = el("div", { className: "m01-master__notice", attrs: { hidden: "" } });
const body = el("div", { className: "m01-master__body" });
// 제목 줄 · 찾기 줄 = 「단가산출 로직」 화면과 같은 공용 조각
const headBar = buildHeadBar({ title, status: [summary], buttons: [drop, save] });
const head = el("div", {
className: "m01-master__head",
children: [title, searchField.root, summary, drop, save],
className: "m01-master__headbox",
children: [headBar.root, buildHeadFilters([searchField.root])],
});
const logicHost = el("div", { className: "m01-master__logic", attrs: { hidden: "" } });
const elementView = el("div", {