diff --git a/M01_MasterData/M01_MasterData_UI_LogicLab_Text.ts b/M01_MasterData/M01_MasterData_UI_LogicLab_Text.ts index 91943b63..e884f5eb 100644 --- a/M01_MasterData/M01_MasterData_UI_LogicLab_Text.ts +++ b/M01_MasterData/M01_MasterData_UI_LogicLab_Text.ts @@ -25,7 +25,7 @@ const TEXT = { Formula_Slot: ["시험 계산을 누르면 식이 글로 나옴", "Run the trial calc to see the formula"], Calc_Title: ["시험 계산", "Trial calculation"], G_labor: ["인력", "Labor"], - G_material: ["자재", "Material"], + G_material: ["재료", "Material"], G_cost: ["경비", "Expense"], G_other: ["그 밖 (인력·자재·경비 어디에도 안 맞는 줄)", "Other (fits none of the three)"], Tag_Table: ["표", "Table"], diff --git a/M01_MasterData/M01_MasterData_UI_Logic_List.ts b/M01_MasterData/M01_MasterData_UI_Logic_List.ts index 6f41ab8c..334592c0 100644 --- a/M01_MasterData/M01_MasterData_UI_Logic_List.ts +++ b/M01_MasterData/M01_MasterData_UI_Logic_List.ts @@ -37,7 +37,7 @@ export interface ListHandle { export const logicId = (sub: string, key: string): string => `${sub}\n${key}`; const SIZE = 30; -const COLS = ["키", "원문번호", "구분", "상세구분", "이름", "결과단위", "출처", ""] as const; +const COLS = ["키", "원문번호", "구분", "상세구분", "이름", "결과 단위", "출처", ""] as const; export function buildList(onOpen: (item: ListItem) => void): ListHandle { let items: ListItem[] = []; diff --git a/M01_MasterData/M01_MasterData_UI_Logic_Text.ts b/M01_MasterData/M01_MasterData_UI_Logic_Text.ts index 2aa6ae68..97a7b0c1 100644 --- a/M01_MasterData/M01_MasterData_UI_Logic_Text.ts +++ b/M01_MasterData/M01_MasterData_UI_Logic_Text.ts @@ -26,7 +26,7 @@ const TEXT = { Head_Key: ["키", "Key"], Head_Number: ["원문번호", "Source no."], Head_Name: ["이름", "Name"], - Head_Unit: ["결과단위", "Result unit"], + Head_Unit: ["결과 단위", "Result unit"], Head_Source: ["출처", "Source"], Head_Owner: ["소유", "Owner"], Head_Note: ["비고", "Note"], @@ -125,16 +125,6 @@ const TEXT = { Edit_AddMiddle: ["표 찾기 더하기", "Add table lookup"], Edit_AddExtra: ["덧줄 더하기", "Add extra line"], Edit_Qty: ["수량 식", "Qty formula"], - Edit_OwnOnly: [ - "정본 로직은 여기서 못 고침 — 「본떠 만들기」 로 내 것을 만든 뒤 고침", - "Master logics are read-only here — use “Copy as mine” first", - ], - Edit_Copy: ["본떠 만들기", "Copy as mine"], - Edit_Copied: ["내 로직 「{v}」 을 만들었음 — 여기서 고치면 됨", "Made your logic “{v}”"], - Edit_CopySoon: [ - "복제 길(API)이 아직 없음 — 서버가 준비되면 여기서 바로 됨", - "The copy API is not ready yet", - ], /* ── 멈춘 까닭을 설계자 말로 ── */ Stop_Missing: [ "「{name}」 값을 아직 안 넣었습니다 — 값을 넣으면 계산됩니다", diff --git a/resources/master_data/ref/_검증_화면글.md b/resources/master_data/ref/_검증_화면글.md index 7ebe361e..8940a389 100644 --- a/resources/master_data/ref/_검증_화면글.md +++ b/resources/master_data/ref/_검증_화면글.md @@ -35,3 +35,23 @@ ## 일감19·20·23 범위와 안 겹침 이번 점검은 화면 글(`*_Text.ts`·`ui_template_locale_m1.ts`)만 봄 — 로직 데이터·엔진 글(`master_formula.py` 의 `FormulaError` 메시지 등)은 안 봄(다른 일감 범위). + +## 고친 뒤 (2026-09-22 일감30) + +브레인 판정대로 **사용자 확정 필요 없는 것만** 고침 — 「단가산출 상세」 대 「호표」·「키」는 그대로 둠. + +- ① 「자재」 → 「재료」(`M01_MasterData_UI_LogicLab_Text.ts` `G_material`). +- ② 「결과단위」 → 「결과 단위」 — 점검 때 적은 `Head_Unit`(`M01_MasterData_UI_Logic_Text.ts`) 말고, 화면을 열어 실제로 보이는 표 머리글이 **`M01_MasterData_UI_Logic_List.ts` 의 `COLS` 하드코딩 글자**(`Head_Unit` 을 안 쓰고 따로 적은 글)인 것을 찾아 같이 고침 — 점검 문서에서 못 찾았던 자리. +- ③ 죽은 글 지움 — `ui_template_locale_m1.ts` `M01_GroupTest` · `M01_MasterData_UI_Logic_Text.ts` `Edit_OwnOnly`·`Edit_Copy`·`Edit_Copied`·`Edit_CopySoon`(API 라는 프로그래머 말이 든 것 포함, 한 무리라 같이 지움 — 전부 부르는 화면 코드가 없음을 grep 으로 재확인 뒤 지움). +- ④ 오타·버튼 이름 어긋남 — 점검 때 못 찾음(고칠 것 없음). `Pill_NoPick`·`Pill_NoValue` 할 일 안내 부족은 브레인이 승인한 목록에 없어(「사용자 확정 필요 없는 것만」 은 이 넷을 가리킨 것으로 보고) 이번엔 안 건드림. + +**typecheck** — `tsc --noEmit` 고치기 전·후 둘 다 0건. + +**화면 확인(ORCA, http://localhost:5174/m01-master-data)** — 로그인 상태로 열어 확인: +- 왼쪽 패널 그룹 이름에 죽은 「단가산출 로직 테스트」 안 보임(②③ 확인). +- 「단가산출 로직」 목록 표 머리글 「결과 단위」 띄어 보임(②, `COLS` 쪽). +- 로직 상세 폼의 「결과 단위」 칸 이름도 띄어 보임(②, `Head_Unit` 쪽). +- GF000159(철근 현장가공 및 조립) 상세 — 「단가산출 상세」 안 갈래 이름이 「인력·재료·경비」 로 보임(①, 자재→재료). +- 로직개선시험 화면의 「본떠 만들기」 버튼은 그대로 살아 있음(지운 것은 로직 화면 쪽 안 쓰이던 같은 이름 글 — 서로 다른 기능이라 하나만 지움, 헷갈림 없음). + +**390px 확인 — 못 함**: ORCA CLI 에 실제 뷰포트(기기 폭)를 바꾸는 명령이 없음(`tab create`·`eval`·`screenshot` 뿐, resize 류 없음). `window.resizeTo()` 는 이 창에서 안 먹힘(outerWidth 만 잠깐 바뀌고 되돌아감) · `html/body` 에 CSS 로 폭만 강제하면 `@media (max-width: …)` 쿼리가 실제 뷰포트 폭을 보고 안 걸려 레이아웃이 깨진 화면만 나옴(참값 아님) — 그래서 안 씀. 대신 고친 글자 수를 견줌: 「재료」(2자)는 「자재」(2자)보다 안 길어짐 · 「결과 단위」는 「결과단위」보다 빈칸 1개만 늘어 줄바꿈 위험이 낮음 — 줄바꿈 걱정 없다고 보고 넘어감. 실제 390px 확인은 화면 담당 창이나 사용자가 할 것. diff --git a/ui_template/ui_template_locale_m1.ts b/ui_template/ui_template_locale_m1.ts index 5eaef3b9..bb250757 100644 --- a/ui_template/ui_template_locale_m1.ts +++ b/ui_template/ui_template_locale_m1.ts @@ -72,5 +72,4 @@ export const ui_locales_m1 = { M01_GroupExchange: ["환율", "Exchange rates"], M01_GroupRate: ["요율", "Rates"], M01_GroupLogic: ["단가산출 로직", "Unit-price logic"], - M01_GroupTest: ["단가산출 로직 테스트", "Logic test"], } as const;