diff --git a/M01_MasterData/M01_MasterData_UI_Logic_Wizard_Model.ts b/M01_MasterData/M01_MasterData_UI_Logic_Wizard_Model.ts index feb7180c..c49b7c1e 100644 --- a/M01_MasterData/M01_MasterData_UI_Logic_Wizard_Model.ts +++ b/M01_MasterData/M01_MasterData_UI_Logic_Wizard_Model.ts @@ -153,7 +153,8 @@ export const qtyPlain = (q: Qty): string => export function condChoices(table: string, cond: string): (string | number)[] | undefined { const info = tableInfo.get(table); if (!info || info.조건?.[cond] !== "고르기") return undefined; - return [...new Set((info.줄 ?? []).map((r) => r[cond] as string | number))]; + const seen = (info.줄 ?? []).map((r) => r[cond] as string | number | undefined | null); + return [...new Set(seen.filter((v): v is string | number => v !== undefined && v !== null))]; } /** 만드는 중인 것이 모든 식에서 받는 설계 입력 이름들(등장 차례) — 이름 · 모양 */ diff --git a/resources/master_data/_화면_계약.md b/resources/master_data/_화면_계약.md index 79467c42..2620298b 100644 --- a/resources/master_data/_화면_계약.md +++ b/resources/master_data/_화면_계약.md @@ -36,6 +36,7 @@ - `elements` = 요소 찾기 창 — 그룹 전체에서 `q` 찾기 · `ref` = 식에 넣는 키 · 표형 그룹은 `값칸` 이 옴. - `materials` = 재료 고르기 단계 — 로직 재료 줄 `요소` 가 조건 `{구분, 상세구분, 규격}` 이면 이 API 로 후보(방식 A·B·C 가 부품 `M01_MasterData_UI_Test_Pick.ts` 하나를 같이 씀 · 구분 → 상세구분 → 후보 순으로 좁힘). `값` 이 비어 있어도 후보로 둠. 옛 재료 줄(품셈재료 키)은 품셈재료 이름(없으면 이름 첫 낱말)으로 `pick?kind=price` 후보. 후보 글 = 이름 규격 · 값 있는 열 전부(물가자료 · 유통물가 …). 멈춤 까닭 `입력 「X」 없음` · `맞는 줄 0개` 는 방식 A·B·C 가 쉬운 말로 바꿔 보임(`plainReason`) · 빈 수 칸은 「값을 넣어 주세요」 안내 글. - 소요량·계수 표의 `용도`({공종, 대상, 로직키}) = 방식 B 원문 표 미리보기 머리에 안내 · 칸이 없으면 안 보임 · `/tables` 는 `usage` 로 `용도.대상` 거름(기계 `sub`·`detail` 은 인력과 같이 구분 → 상세구분). +- 「새로 만들기」 모달(`M01_MasterData_UI_Logic_Wizard*.ts`) — 읽기는 기존 길만 씀: 원문 절 = `/tables`(`group` 소요량·계수 · `q` 절 번호)를 책·원문번호로 거름 · 표 조건 값 목록 = `/table` 줄에서 화면이 뽑음 · 인력 = `/pick?kind=job` · 재료 = `/pick?kind=price` 로 찾아 구분·상세구분 조건 묶음으로 넣음 · 기계 = `/elements` · 다른 로직 = `/logics?q`. 시험 계산 = `/calc` `row`+`file`(키 "") · 저장 = `/save` `add` — 파일 이름에 「자체」 가 든 로직 파일이 있어야 저장 단추가 열림. - `pick` = 고르기 창 — `price` = `재료_자재품목.json`(값 = 값 열 다섯 가운데 낮은 값 · `관급` = 관급 값 있음) ref 키 · `job` = `인력.json` 값 있는 공표 직종(구분 「미확보」 빼고) ref 키. ## 3. 시험 계산