fix: 화면 복제 기능 개선 및 관련 버그 수정
- 화면 복제 기능을 개선하여 DB 구조 개편 후의 효율적인 화면 관리를 지원합니다. - 그룹 복제 시 버튼의 `targetScreenId`가 새 화면으로 매핑되지 않는 버그를 수정하였습니다. - 관련된 서비스 및 쿼리에서 `table_type_columns`를 사용하여 라벨 정보를 조회하도록 변경하였습니다. - 여러 컨트롤러 및 서비스에서 `column_labels` 대신 `table_type_columns`를 참조하도록 업데이트하였습니다.
This commit is contained in:
@@ -105,18 +105,6 @@ export const screenApi = {
|
||||
return response.data;
|
||||
},
|
||||
|
||||
// 화면 수정 (이름, 설명 등)
|
||||
updateScreen: async (
|
||||
screenId: number,
|
||||
data: {
|
||||
screenName?: string;
|
||||
description?: string;
|
||||
tableName?: string;
|
||||
}
|
||||
): Promise<void> => {
|
||||
await apiClient.put(`/screen-management/screens/${screenId}`, data);
|
||||
},
|
||||
|
||||
// 화면 삭제 (휴지통으로 이동)
|
||||
deleteScreen: async (screenId: number, deleteReason?: string, force?: boolean): Promise<void> => {
|
||||
await apiClient.delete(`/screen-management/screens/${screenId}`, {
|
||||
@@ -195,17 +183,36 @@ export const screenApi = {
|
||||
},
|
||||
|
||||
// 화면 레이아웃 저장 (ScreenDesigner_new.tsx용)
|
||||
saveScreenLayout: async (screenId: number, layoutData: LayoutData): Promise<ApiResponse<void>> => {
|
||||
saveScreenLayout: async (screenId: number, layoutData: LayoutData): Promise<{ success: boolean; message?: string }> => {
|
||||
const response = await apiClient.post(`/screen-management/screens/${screenId}/layout`, layoutData);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
// 화면 레이아웃 조회
|
||||
// 화면 레이아웃 조회 (기존)
|
||||
getLayout: async (screenId: number): Promise<LayoutData> => {
|
||||
const response = await apiClient.get(`/screen-management/screens/${screenId}/layout`);
|
||||
return response.data.data;
|
||||
},
|
||||
|
||||
// 화면 레이아웃 조회 V1 (component_url + custom_config 기반)
|
||||
// 🔒 확정: component_url 필수, custom_config에 slot 포함, company_code 필터 적용
|
||||
getLayoutV1: async (screenId: number): Promise<LayoutData> => {
|
||||
const response = await apiClient.get(`/screen-management/screens/${screenId}/layout-v1`);
|
||||
return response.data.data;
|
||||
},
|
||||
|
||||
// 화면 레이아웃 조회 V2 (1 레코드 방식 - url + overrides)
|
||||
// 🔒 확정: 화면당 1개 레코드, layout_data JSON에 모든 컴포넌트 포함
|
||||
getLayoutV2: async (screenId: number): Promise<any> => {
|
||||
const response = await apiClient.get(`/screen-management/screens/${screenId}/layout-v2`);
|
||||
return response.data.data;
|
||||
},
|
||||
|
||||
// 화면 레이아웃 저장 V2 (1 레코드 방식 - url + overrides)
|
||||
saveLayoutV2: async (screenId: number, layoutData: any): Promise<void> => {
|
||||
await apiClient.post(`/screen-management/screens/${screenId}/layout-v2`, layoutData);
|
||||
},
|
||||
|
||||
// 연결된 모달 화면 감지
|
||||
detectLinkedModals: async (
|
||||
screenId: number,
|
||||
|
||||
Reference in New Issue
Block a user