Merge remote-tracking branch 'origin/dev' into main_desktop_1

# Conflicts:
#	M01_MasterData/M01_MasterData_UI_LogicLab.ts
#	M01_MasterData/M01_MasterData_UI_LogicLab_Style.css
#	M01_MasterData/M01_MasterData_UI_Logic_Api.ts
#	resources/master_data/ref/_검증_별칭_복사.md
This commit is contained in:
2026-09-21 21:37:11 +09:00
18 changed files with 1300 additions and 99 deletions
@@ -267,3 +267,66 @@ export const previewLogicFormula = (
로직: LogicRow,
별칭: FormulaAlias[],
): Promise<{ logic: LogicRow }> => request("/logic/formula/preview", { 로직, 별칭 });
/* ── 식으로 새 로직 만들기(계약 7장) ── */
export interface DraftFind {
표: string;
값칸: string;
조건: Record<string, string>;
}
/** 변수마다 정한 것 */
export interface DraftDecided {
무엇?: string;
단위?: string;
비목?: string;
요소?: string;
찾기?: DraftFind;
값?: string;
설명?: string;
}
export interface DraftVar {
이름: string;
처음: number;
갈래: "정의됨" | "미정" | "비목합";
정의줄: number | null;
쓰임: number[];
무엇: string | null;
단위: string | null;
비목: string | null;
정할것: string[];
}
export interface DraftProblem {
줄: number | null;
자리: number | null;
갈래: string;
말: string;
}
export interface DraftAnswer {
줄: { 줄: number; 이름: string; 식: string; 앞: number }[];
변수: DraftVar[];
결과: string;
문제: DraftProblem[];
다됨: boolean;
logic: LogicRow | null;
/** 저장했을 때만 */
file?: string;
version?: string;
key?: string;
}
export interface DraftHead {
이름: string;
결과단위: string;
원문번호?: string;
출처?: string;
비고?: string;
끝수?: string;
}
/** 검사·미리보기 · `save` 면 자체 로직(키 `GX`)으로 저장 — 문제가 있으면 422 */
export const draftLogic = (body: {
text: string;
decided: Record<string, DraftDecided>;
head?: DraftHead;
save?: boolean;
owner?: string;
}): Promise<DraftAnswer> => request("/logic/draft", body);