feat(M01): 조달 찾기 확정 모양 · 품셈재료 가격 연결 · 건설노임 준용 직종 고르기
- 고르기 API GET /api/m01/pick (나라장터자재 · 시중물가 · 공표 직종) — 조달 찾기 옛 API 대체 - 시중물가 조달›출처 「나라장터:<열쇠>」 연결 · 끊기 뒤 변화 없음 · 조달 값·기준 칸 - 품셈재료 「가격 연결」 모달(이름·규격 미리 찾기 · 관급 표시 · 후보 조건 · 끊기) · 못 이은 줄만 보기 - 건설노임 미공표 줄 「준용」 직종 고르기 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
This commit is contained in:
@@ -83,8 +83,13 @@ export const fetchGroups = async (): Promise<GroupInfo[]> =>
|
||||
export const fetchFiles = async (group: string): Promise<FileInfo[]> =>
|
||||
(await get<{ files: FileInfo[] }>(`/groups/${encodeURIComponent(group)}/files`, {})).files;
|
||||
|
||||
export const fetchRows = (file: string, page: number, size: number, q: string): Promise<RowsPage> =>
|
||||
get<RowsPage>("/rows", { file, page, size, q });
|
||||
export const fetchRows = (
|
||||
file: string,
|
||||
page: number,
|
||||
size: number,
|
||||
q: string,
|
||||
unlinked = false,
|
||||
): Promise<RowsPage> => get<RowsPage>("/rows", { file, page, size, q, unlinked: unlinked ? 1 : 0 });
|
||||
|
||||
export const fetchTables = (
|
||||
file: string,
|
||||
@@ -108,13 +113,18 @@ export async function saveFiles(files: FileChanges[]): Promise<SaveResult> {
|
||||
return { status, detail: typeof detail === "string" ? detail : JSON.stringify(detail) };
|
||||
}
|
||||
|
||||
export interface ProcureItem {
|
||||
export type PickKind = "procure" | "price" | "job";
|
||||
|
||||
export interface PickItem {
|
||||
ref: string;
|
||||
이름: string;
|
||||
규격: string;
|
||||
단위: string;
|
||||
값: unknown;
|
||||
관급: boolean;
|
||||
}
|
||||
|
||||
export const fetchProcurement = (q: string): Promise<{ total: number; items: ProcureItem[] }> =>
|
||||
get("/procurement", { q, limit: 50 });
|
||||
export const fetchPick = (
|
||||
kind: PickKind,
|
||||
q: string,
|
||||
): Promise<{ total: number; items: PickItem[] }> => get("/pick", { kind, q, limit: 50 });
|
||||
|
||||
Reference in New Issue
Block a user