Merge branch 'main' into barcode

This commit is contained in:
kjs
2026-03-04 20:54:46 +09:00
41 changed files with 7560 additions and 475 deletions

View File

@@ -16,6 +16,7 @@ export const screenApi = {
size?: number;
companyCode?: string;
searchTerm?: string;
excludePop?: boolean;
}): Promise<PaginatedResponse<ScreenDefinition>> => {
const response = await apiClient.get("/screen-management/screens", { params });
const raw = response.data || {};
@@ -342,6 +343,59 @@ export const screenApi = {
return response.data.data;
},
// POP 화면 연결 분석 (다른 화면과의 참조 관계)
analyzePopScreenLinks: async (
screenId: number,
): Promise<{
linkedScreenIds: number[];
references: Array<{
componentId: string;
referenceType: string;
targetScreenId: number;
}>;
}> => {
const response = await apiClient.get(
`/screen-management/screens/${screenId}/pop-links`,
);
return response.data.data || { linkedScreenIds: [], references: [] };
},
// POP 화면 배포 (다른 회사로 복사)
deployPopScreens: async (data: {
screens: Array<{
sourceScreenId: number;
screenName: string;
screenCode: string;
}>;
targetCompanyCode: string;
groupStructure?: {
sourceGroupId: number;
groupName: string;
groupCode: string;
screenIds: number[];
children?: Array<{
sourceGroupId: number;
groupName: string;
groupCode: string;
screenIds: number[];
}>;
};
}): Promise<{
deployedScreens: Array<{
sourceScreenId: number;
newScreenId: number;
screenName: string;
screenCode: string;
}>;
createdGroups?: number;
}> => {
const response = await apiClient.post(
`/screen-management/deploy-pop-screens`,
data,
);
return response.data.data;
},
// 메인 화면 + 모달 화면들 일괄 복사
copyScreenWithModals: async (
sourceScreenId: number,

View File

@@ -115,12 +115,14 @@ export async function getScreenGroups(params?: {
page?: number;
size?: number;
searchTerm?: string;
excludePop?: boolean;
}): Promise<ApiResponse<ScreenGroup[]>> {
try {
const queryParams = new URLSearchParams();
if (params?.page) queryParams.append("page", params.page.toString());
if (params?.size) queryParams.append("size", params.size.toString());
if (params?.searchTerm) queryParams.append("searchTerm", params.searchTerm);
if (params?.excludePop) queryParams.append("excludePop", "true");
const response = await apiClient.get(`/screen-groups/groups?${queryParams.toString()}`);
return response.data;