공통코드 계층구조 구현

This commit is contained in:
kjs
2025-12-23 09:31:18 +09:00
parent b85b888007
commit 5f406fbe88
32 changed files with 3673 additions and 478 deletions

View File

@@ -166,4 +166,62 @@ export const commonCodeApi = {
return response.data;
},
},
// 계층구조 코드 API
hierarchy: {
/**
* 계층구조 코드 조회
* @param categoryCode 카테고리 코드
* @param parentCodeValue 부모 코드값 (빈 문자열이면 최상위 코드)
* @param depth 특정 깊이만 조회 (선택)
* @param menuObjid 메뉴 OBJID (선택)
*/
async getHierarchicalCodes(
categoryCode: string,
parentCodeValue?: string | null,
depth?: number,
menuObjid?: number
): Promise<ApiResponse<CodeInfo[]>> {
const searchParams = new URLSearchParams();
if (parentCodeValue !== undefined && parentCodeValue !== null) {
searchParams.append("parentCodeValue", parentCodeValue);
}
if (depth !== undefined) searchParams.append("depth", depth.toString());
if (menuObjid !== undefined) searchParams.append("menuObjid", menuObjid.toString());
const queryString = searchParams.toString();
const url = `/common-codes/categories/${categoryCode}/hierarchy${queryString ? `?${queryString}` : ""}`;
const response = await apiClient.get(url);
return response.data;
},
/**
* 코드 트리 조회 (전체 계층구조)
*/
async getCodeTree(
categoryCode: string,
menuObjid?: number
): Promise<ApiResponse<{ flat: CodeInfo[]; tree: CodeInfo[] }>> {
const searchParams = new URLSearchParams();
if (menuObjid !== undefined) searchParams.append("menuObjid", menuObjid.toString());
const queryString = searchParams.toString();
const url = `/common-codes/categories/${categoryCode}/tree${queryString ? `?${queryString}` : ""}`;
const response = await apiClient.get(url);
return response.data;
},
/**
* 자식 코드 존재 여부 확인
*/
async hasChildren(categoryCode: string, codeValue: string): Promise<ApiResponse<{ hasChildren: boolean }>> {
const response = await apiClient.get(
`/common-codes/categories/${categoryCode}/codes/${codeValue}/has-children`
);
return response.data;
},
},
};