feat(804-8): M02 단가산출 수식 탭 = M01 과 같은 단추 · 저장 한 번 · 머리 단추 줄바꿈 막음(요구 689)
- 공용 줄 쌓기 화면: 페이지가 저장을 맡는 꼴(`page`)을 M02 단가산출 화면에도 — 탭 위 [고침 버림] · [수식 저장] 걷음 · M02 사본 [단가 갱신] · [재생성] · 「M01 새 판」 배지는 그대로 · 「줄 쌓기에서 못 고치는 칸」 안내 줄 걷음(금액 줄 기호 = 율 줄이 앞 줄 금액을 부르는 속 이름 · 화면에서 고칠 값 아님 · 보존 그대로) - M02 머리 단추 = [초기화] · [삭제] · [되돌림] · [저장] — 단가산출 상세는 [새로고침] 숨김 · [되돌림] · [저장] = 고침 있을 때만(기본정보 + 수식) · [저장] 한 번 = 수식 먼저 저장(새 판 · 수식 칸 받음) → 단가산출 문서 저장 · [되돌림] · 버리고 떠남 = 수식 캐시도 비움 - 보기 고르기(수식 · 단가산출 상세) = M01 처럼 머리 줄 · [항목 추가] · [율 줄 추가] 걷음(줄 더하기 = 수식 탭 [+] 단가산출 · 일위대가 복사) · 일위대가 줄 모달 안 상세는 그대로 - 머리 단추 줄 맞춤(부품 상자 `fitButtonRow`): 단추가 아래로 떨어지거나 제목이 여러 줄이면 아이콘 단추는 아이콘만(글 = 풍선 도움말) · M01 단추 다섯 · M02 단추 넷 아이콘 · 단가산출 상세 긴 이름은 제목 안에서 줄바꿈 - 사본 할일 막힘 알림 글 = [저장] 또는 [되돌림] 먼저 - 시험: test_804_7 에 M02 단추 · 저장 한 번 · 줄 맞춤 지킴 더함 · test_804_4 권한 시험에 수식 저장 판 = 페이지 저장 판 이어 씀 확인 더함 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -39,6 +39,7 @@ import { isPrecombo } from "./M02_MasterTemplete_UI_Side_Precombo";
|
||||
import type { SpreadsheetHandle } from "../A00_Common/spreadsheet/spreadsheet";
|
||||
import type { LinkOptions } from "../A00_Common/spreadsheet/spreadsheet_links";
|
||||
import { createEmpty } from "@ui/ui_template_empty";
|
||||
import { fitButtonRow } from "@ui/ui_template_button";
|
||||
import { createMainActions } from "./M02_MasterTemplete_Main_Actions";
|
||||
export interface Selection {
|
||||
layer: Layer;
|
||||
@@ -140,8 +141,8 @@ export function createMain(
|
||||
extras: MainExtras = {},
|
||||
): MainHandle {
|
||||
const title = el("h2", { className: "m02-main__title", text: L("M02_PickTemplate") });
|
||||
const reload = createButton({ label: L("M02_Reload"), variant: "ghost" });
|
||||
const save = createButton({ label: L("M02_Save"), variant: "filled" });
|
||||
const reload = createButton({ label: L("M02_Reload"), variant: "ghost", iconStart: "refresh" });
|
||||
const save = createButton({ label: L("M02_Save"), variant: "filled", iconStart: "check" });
|
||||
// 단가산출 · 일위대가 상세 [초기화] [삭제](740-2 · 738-2) — 차례 … [초기화] [삭제] [저장]
|
||||
const actions = createMainActions({
|
||||
sel: () => sel,
|
||||
@@ -150,6 +151,7 @@ export function createMain(
|
||||
confirmLeave: () => confirmLeave(),
|
||||
open: (at) => open(at),
|
||||
changed: () => onSaved?.(),
|
||||
page: { reload, save },
|
||||
});
|
||||
// 구조물 도면 · 일위대가 · 면적산출 상세 화면 → 구조물집계표(그 열 고른 채) · 일반 단추(43-5 · 알약 · ghost 아님)
|
||||
const back = createButton({ label: L("M02_Back") });
|
||||
@@ -183,6 +185,7 @@ export function createMain(
|
||||
reload,
|
||||
actions.reset,
|
||||
actions.del,
|
||||
actions.undo,
|
||||
save,
|
||||
...(extras.newItem ? [extras.newItem] : []),
|
||||
],
|
||||
@@ -193,6 +196,7 @@ export function createMain(
|
||||
],
|
||||
});
|
||||
const root = column;
|
||||
fitButtonRow(column.querySelector<HTMLElement>(".m02-main__head")!); // 넘치면 단추 글 대신 아이콘(804-8)
|
||||
const isCombo = (at: Selection | null): boolean =>
|
||||
!!at && at.kind === "table" && at.name === STRUCTURE_TABLE && at.layer !== "project";
|
||||
// 「새 항목」 · 표 접기(제목)는 「구조물 조합」일 때만
|
||||
@@ -373,10 +377,10 @@ export function createMain(
|
||||
host.replaceChildren();
|
||||
if (at.kind === "sangeun") {
|
||||
const { mountSangeunView } = await import("./M02_MasterTemplete_Sangeun_View"); // 717-2a
|
||||
const onChanged = (d: boolean): boolean => (dirty = d && !readOnly);
|
||||
const onChanged = (d: boolean): void => actions.dim((dirty = d && !readOnly));
|
||||
const onVersion = (v: string): string => (version = v); // 수식 탭 저장(802-4b-2)
|
||||
if (mine === seq)
|
||||
editor = mountSangeunView(host, doc, { ...at, readOnly, onChanged, onVersion });
|
||||
editor = mountSangeunView(host, doc, { ...at, readOnly, onChanged, onVersion, slot });
|
||||
return;
|
||||
}
|
||||
if (at.kind === "table") {
|
||||
@@ -601,7 +605,7 @@ export function createMain(
|
||||
);
|
||||
version = info.판;
|
||||
loaded = doc;
|
||||
dirty = false;
|
||||
actions.dim((dirty = false));
|
||||
toDrawing.drop(); // 놓기 기다림 · 보내기 취소는 이 저장으로 끝
|
||||
// 구조물집계표 — 서버가 새 열 파일 · 번호를 만듦 · 번호를 다시 받아 도면 줄 · 카드를 새로
|
||||
// (안 하면 새 열은 다시 열 때까지 「도면 없음」 · 번호 빈칸)
|
||||
|
||||
Reference in New Issue
Block a user