feat(M02 고르기 창 낱말): ★ 12 → 1 — 옵션 고치기 · 이 구조물에서 고치기 · 내 자료집에 복사 · 일위대가 금액 · 값 확인 전 · 면적산출 연결 칸 · 세부 구분 · 실무 엑셀 일위대가 · 옵션 머리 · 카드 · 목록 번호 숨김 (PLAN 707 ③)
- 남김 1 = 분류1~5(구조물집계표 층 이름 = 마스터 템플릿 자료 · 코드 밖) - ui_template 네 파일 글만(한시 브레인 승인) · 키 · 동작 그대로 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -132,10 +132,10 @@ export interface InputsValueHandle {
|
||||
const VALUE_TEXT = {
|
||||
title: "넣을 값",
|
||||
missing: "빠진 로직 {value}",
|
||||
edit: "넣을 값 수정",
|
||||
edit: "옵션 고치기",
|
||||
none: "넣을 값이 없음 — 단가산출 로직에 입력이 없음",
|
||||
auto: "자동값",
|
||||
unconfirmed: "확인 안 함",
|
||||
unconfirmed: "값 확인 전",
|
||||
confirmed: "✓ 확인함",
|
||||
confirmBox: "확인",
|
||||
summary: "넣을 값 {value}",
|
||||
|
||||
@@ -58,6 +58,7 @@ export const PART_WORD: Record<CardKind, string> = {
|
||||
const TEXT = {
|
||||
drawingInfo: "도면 정보",
|
||||
edit: "수정", // 카드 셋 같은 글(40-2) — 무엇을 고치는지는 툴팁
|
||||
editOptions: "옵션 고치기",
|
||||
noNumber: "도번 없음",
|
||||
noDrawing: "도면 없음",
|
||||
editTip: "{value} 수정 — 전체 편집 화면",
|
||||
@@ -108,6 +109,9 @@ export interface ItemCardsOptions {
|
||||
/** 일위대가 카드(39-5 · 몸 = 일위대가 상세 카드 갈래 `Labor_Detail` · 43-4) — 도면 다음 · 지금 층에서 읽음 ·
|
||||
* [일위대가 수정] = 이것(일위대가 상세) */
|
||||
labor?: () => void;
|
||||
/** 구조물 조합 고르기 창 · B08 도면 창(707) — 일위대가 카드 [수정] = 넣을 값만 → 글 「옵션 고치기」 ·
|
||||
* 카드 번호(SD · SU · SA) 숨김 */
|
||||
picker?: boolean;
|
||||
}
|
||||
|
||||
/** 카드 스프레드시트를 다루는 손잡이 — 알약이 씀 */
|
||||
@@ -191,6 +195,7 @@ export function createItemCards(opts: ItemCardsOptions): ItemCardsHandle {
|
||||
save: () => Promise<void>,
|
||||
) => {
|
||||
const no = createBadge("", "accent"); // 번호 = 배지 부품
|
||||
no.hidden = !!opts.picker;
|
||||
no.classList.add("m02-struct__no");
|
||||
const name = el("span", { className: "m02-struct__title" });
|
||||
const shell = cardShell({ title, body, sub: [no, name] });
|
||||
@@ -204,7 +209,7 @@ export function createItemCards(opts: ItemCardsOptions): ItemCardsHandle {
|
||||
);
|
||||
const help = helpButton(shell, title, CARD_HELP[kind]); // 제목 바로 옆(47-1)
|
||||
const edit = createButton({
|
||||
label: TEXT.edit,
|
||||
label: kind === "labor" && opts.picker ? TEXT.editOptions : TEXT.edit,
|
||||
variant: "ghost",
|
||||
size: "sm",
|
||||
});
|
||||
@@ -340,7 +345,7 @@ export function createItemCards(opts: ItemCardsOptions): ItemCardsHandle {
|
||||
const defaults: Record<CardKind, string> = {
|
||||
structure: TEXT.edit,
|
||||
area: TEXT.edit,
|
||||
labor: TEXT.edit,
|
||||
labor: opts.picker ? TEXT.editOptions : TEXT.edit,
|
||||
};
|
||||
|
||||
const root = el("div", {
|
||||
|
||||
@@ -56,7 +56,7 @@ export function openLaborInput(opt: LaborInputOptions): void {
|
||||
const draft: LaborValues = { ...kept };
|
||||
const bad = new Set<string>();
|
||||
openModal({
|
||||
title: fill(tc("In_Title"), opt.title),
|
||||
title: fill(tc("In_Title"), opt.title.replace(/^[A-Z]{2}\d{6}\s+/, "")), // 707 번호(GF …) 숨김
|
||||
closeLabel: tc("In_Close"),
|
||||
dialogClass: "m02-modal m02-labin",
|
||||
mount: (body, close, head) => {
|
||||
|
||||
@@ -40,8 +40,10 @@ import { createText } from "@ui/ui_template_text";
|
||||
|
||||
export { withHopyo } from "./M02_MasterTemplete_Hopyo_Pick";
|
||||
|
||||
/** 구분 보이는 글(707 낱말) — 값(저장 글)은 그대로 */
|
||||
const CLASS_TEXT: Record<string, string> = { 실무자료: "실무 엑셀 일위대가" };
|
||||
const opts = (values: string[]): { value: string; text: string }[] =>
|
||||
[L("M01_All"), ...values].map((v, i) => ({ value: i ? v : "", text: v }));
|
||||
[L("M01_All"), ...values].map((v, i) => ({ value: i ? v : "", text: CLASS_TEXT[v] ?? v }));
|
||||
|
||||
type Scope = Omit<LaborRef, "키">;
|
||||
/** 덧붙일 줄 하나 — kind = 종류 고르기 값 */
|
||||
@@ -215,7 +217,11 @@ export function openLogicPicker(
|
||||
key: x.row.이름,
|
||||
tag: tc(x.kind),
|
||||
name: x.row.제목 || x.row.이름,
|
||||
sub: [x.row.이름, `${x.row.구분 || tc("Lib_Unsorted")} ${x.row.상세구분 ?? ""}`.trim()]
|
||||
// 707 번호(SC · SP 키) 숨김 — 제목이 없을 때만 이름 자리에 씀
|
||||
sub: [
|
||||
x.row.제목 ? "" : x.row.이름,
|
||||
`${CLASS_TEXT[x.row.구분 ?? ""] ?? (x.row.구분 || tc("Lib_Unsorted"))} ${x.row.상세구분 ?? ""}`.trim(),
|
||||
]
|
||||
.filter(Boolean)
|
||||
.join(" · "),
|
||||
unit: x.row.단위 ?? "",
|
||||
|
||||
@@ -9,7 +9,7 @@ const TEXT = {
|
||||
Title: ["일위대가 조합", "Unit-price combination"],
|
||||
ReadOnly: ["읽기만 — 이 층은 고칠 수 없음", "Read only — this layer cannot be edited"],
|
||||
Sub: ["구분", "Category"],
|
||||
Detail: ["상세구분", "Detail"],
|
||||
Detail: ["세부 구분", "Detail"],
|
||||
All: ["전체", "All"],
|
||||
Empty: ["조합이 없음 — [새 조합]으로 만듦", "No combinations — press [New combination]"],
|
||||
New: ["새 조합", "New combination"],
|
||||
@@ -138,7 +138,7 @@ const TEXT = {
|
||||
Mark_Direct: ["직접계산", "Direct"],
|
||||
Mark_In: ["포함", "Included"],
|
||||
Mark_Out: ["미포함", "Excluded"],
|
||||
In_Title: ["넣을 값 — {value}", "Inputs — {value}"],
|
||||
In_Title: ["옵션 — {value}", "Inputs — {value}"],
|
||||
In_None: ["이 로직은 넣을 값이 없음", "This logic has no inputs"],
|
||||
In_Memo: ["메모", "Memo"],
|
||||
In_Layer: ["켜쌓기 적용율 (%)", "Layered-course rate (%)"],
|
||||
|
||||
Reference in New Issue
Block a user