Files
Aislo/M02_MasterTemplete/DataFlow/M02_DF_Api.ts
T
eomsangdonandClaude Opus 5.5 6015525efd feat(842-2): 기계 비활성 — M01 기계 목록 「사용」 스위치 · 끈 기계는 찾기 · 고르기 · 잇기에서 뺌 · 해상 기계 79 대 끔
- 표지 = 기계 줄 맨 위 칸 `비활성: true`(없음 = 켜짐 · 값 묶음 밖) · 틀 검사 = 기계 줄에만 true(check_master OFF)
- M01 기계 목록 = 끝 열 「사용」 스위치(초안 → 페이지 [저장] · 자동저장 없음) · 끈 줄 흐림 · 머리 「비활성 같이 보기」(끄면 서버 rows state 「켜짐」)
- 뺌 = 요소 찾기 창(elements · 찾아 넣기 · 단가산출 기계 창) · logic-lib rows · M01 시험 계산 기계 고르기 표 · 내 기계 「비슷한 기계에서 시작」 ·
  불러오기 기계 잇기(M02_Machine_Find 표) · 기계경비식 「기계」 옵션(새 GET /api/m02/df/machine-off · 고른 값은 남기고 「· 비활성 기계」 꼬리)
- 셈 길은 그대로 — 끈 기계를 쓰던 단가산출 · 사본 값 같음
- 자료 = 해상장비 79 대(펌프 준설선 13 · 그래브 준설선 10 · 하천골재채취선 7 · 기중기선 5 · 예선 9 · 양묘선 11 · 토운선 6 · 이우선 2 · 대선 16) 끔
- 시험 = test_842_2_machine_off 새로 · test_804_10 옵션 글 단언을 새 글로 고침(끈 기계 거름이 들어간 줄)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-15 18:29:05 +09:00

37 lines
1.8 KiB
TypeScript

/* =============================================================================
* M02_DF_Api.ts
* 단위 · 금액 표준 표 읽기 — 서버 `GET /api/m02/df/standards`(`M02_DF_Router.py`)
* 부르는 곳 = 단위 고르기(`M02_DF_UnitPick`) · 끝수 표준(`M02_DF_Round`) · 옵션 기계 이름(`formula_doc_options`)
* ========================================================================== */
import { API_BASE_URL } from "@config/config_frontend";
/** 단위 · 금액 표준 표 */
export interface CfStandards {
unit: { 이름: string; 줄: Record<string, unknown>[]; [k: string]: unknown };
money: { 이름: string; 줄: Record<string, unknown>[]; [k: string]: unknown };
saved: boolean;
}
export async function cfStandards(): Promise<CfStandards> {
const response = await fetch(`${API_BASE_URL}/m02/df/standards`, { credentials: "include" });
if (!response.ok) throw new Error(`표준 표 읽기 실패 (${response.status})`);
return (await response.json()) as CfStandards;
}
let machineNames: Promise<Record<string, string>> | null = null;
/** 기계 원문번호 → 「이름 규격」 — 한 번 받아 둠(못 받으면 빈 표 · 다음에 다시) */
export function cfMachineNames(): Promise<Record<string, string>> {
machineNames ??= fetch(`${API_BASE_URL}/m02/df/machine-names`, { credentials: "include" })
.then((r) => (r.ok ? (r.json() as Promise<Record<string, string>>) : Promise.reject()))
.catch(() => ((machineNames = null), {}));
return machineNames;
}
/** 끈 기계 원문번호(842-2) — 이름과 함께 한 번 받아 둠(못 받으면 빈 목록) */
export const cfMachineOff = (): Promise<string[]> =>
fetch(`${API_BASE_URL}/m02/df/machine-off`, { credentials: "include" })
.then((r) => (r.ok ? (r.json() as Promise<string[]>) : []))
.catch(() => []);