- M01 왼쪽 단가산출 로직 칸 아래 구조물 옵션 정의 칸 · 본 칸 셋째 모드(저장 안 한 고침 물음) - M02 옛 open=옵션 주소 = 시스템 관리자면 M01 로 돌려보냄 - settingLinks = 대시보드 칸별 줄(group · ?open=) · pageLinks = ☰ 페이지 둘 - 새 글 키 덧만: B01_Dashboard_CardLogic · CardStructOptionDef · CardPrecombo Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
29 lines
1.9 KiB
TypeScript
29 lines
1.9 KiB
TypeScript
/* =============================================================================
|
|
* B01_Dashboard_UI_View_SysDefaults.ts
|
|
* 시스템 관리 › 설계 기본값(549-2 · 716-2) — 마스터 데이터(마스터 요소 · 단가산출 로직 · 구조물 옵션 정의) ·
|
|
* 마스터 템플릿(일위대가 · 구조물 조합 · 도면 양식) · 계산 자리. 칸마다 한 줄(누르면 그 칸을 고른 채 열림 · `?open=`).
|
|
* 줄 · 묶음 규칙은 `settingLinks` 한 벌(334) — 여기는 모양만(묶음 제목 + 둥근 상자 안 줄) · 계산 자리 = 창(504-2).
|
|
* ========================================================================== */
|
|
|
|
import { createButton } from "@ui/ui_template_elements";
|
|
import { settingLinks, type SettingLink } from "../A00_Common/m_settings_nav";
|
|
import { navigateTo } from "../A00_Common/router";
|
|
import { openCalcSitesDialog } from "./B01_Dashboard_UI_CalcSites";
|
|
import { pageFrame, settingCard, settingRow } from "./B01_Dashboard_UI_PageKit";
|
|
import { group } from "./B01_Dashboard_UI_View_Parts";
|
|
import type { ViewCtx } from "./B01_Dashboard_UI_Views";
|
|
|
|
const open = (link: SettingLink): void =>
|
|
link.key === "calcSites" ? void openCalcSitesDialog() : navigateTo(link.route, link.query);
|
|
|
|
export function mountSysDefaults(host: HTMLElement, ctx: ViewCtx): void {
|
|
const groups = new Map<string, HTMLElement[]>();
|
|
for (const link of settingLinks(ctx.me, ctx.companyId)) {
|
|
const title = link.group ?? "그 밖";
|
|
const openBtn = createButton({ label: "열기", variant: "ghost", onClick: () => open(link) });
|
|
groups.set(title, [...(groups.get(title) ?? []), settingRow(link.title, link.desc, openBtn)]);
|
|
}
|
|
const page = pageFrame(host, "설계 기본값", "새 프로젝트가 처음 받는 마스터 값을 관리합니다.");
|
|
page.body.append(...[...groups].map(([title, rows]) => group(title, settingCard(rows))));
|
|
}
|