fix: 분할 패널 좌측 테이블 등록 시 displayColumns만 사용하도록 수정
문제: - displayColumns가 비어있을 때 전체 컬럼을 보여주는 오류 - 화면에 설정된 컬럼만 표시되어야 함 해결: - displayColumns가 비어있으면 테이블을 등록하지 않음 - displayColumns에 설정된 컬럼만 검색 컴포넌트에 등록 - 화면 관리에서 설정한 컬럼 구성을 정확히 반영 테스트: - 거래처 관리 화면에서 좌측 테이블의 displayColumns(14개) 정상 표시 - 테이블 옵션/필터 설정/그룹 설정 버튼 정상 작동 - 우측 테이블은 검색 컴포넌트에서 제외
This commit is contained in:
@@ -289,29 +289,32 @@ export const SplitPanelLayoutComponent: React.FC<SplitPanelLayoutComponentProps>
|
||||
if (!leftTableName || isDesignMode) return;
|
||||
|
||||
const leftTableId = `split-panel-left-${component.id}`;
|
||||
const leftColumns = componentConfig.leftPanel?.displayColumns || [];
|
||||
// 화면에 표시되는 컬럼만 사용 (displayColumns)
|
||||
const displayColumns = componentConfig.leftPanel?.displayColumns || [];
|
||||
|
||||
// displayColumns가 없으면 등록하지 않음 (화면에 표시되는 컬럼만 설정 가능)
|
||||
if (displayColumns.length === 0) return;
|
||||
|
||||
if (leftColumns.length > 0) {
|
||||
registerTable({
|
||||
tableId: leftTableId,
|
||||
label: `${component.title || "분할 패널"} (좌측)`,
|
||||
tableName: leftTableName,
|
||||
columns: leftColumns.map((col: string) => ({
|
||||
columnName: col,
|
||||
columnLabel: leftColumnLabels[col] || col,
|
||||
inputType: "text",
|
||||
visible: true,
|
||||
width: 150,
|
||||
sortable: true,
|
||||
filterable: true,
|
||||
})),
|
||||
onFilterChange: setLeftFilters,
|
||||
onGroupChange: setLeftGrouping,
|
||||
onColumnVisibilityChange: setLeftColumnVisibility,
|
||||
});
|
||||
// 테이블명이 있으면 등록
|
||||
registerTable({
|
||||
tableId: leftTableId,
|
||||
label: `${component.title || "분할 패널"} (좌측)`,
|
||||
tableName: leftTableName,
|
||||
columns: displayColumns.map((col: string) => ({
|
||||
columnName: col,
|
||||
columnLabel: leftColumnLabels[col] || col,
|
||||
inputType: "text",
|
||||
visible: true,
|
||||
width: 150,
|
||||
sortable: true,
|
||||
filterable: true,
|
||||
})),
|
||||
onFilterChange: setLeftFilters,
|
||||
onGroupChange: setLeftGrouping,
|
||||
onColumnVisibilityChange: setLeftColumnVisibility,
|
||||
});
|
||||
|
||||
return () => unregisterTable(leftTableId);
|
||||
}
|
||||
return () => unregisterTable(leftTableId);
|
||||
}, [component.id, componentConfig.leftPanel?.tableName, componentConfig.leftPanel?.displayColumns, leftColumnLabels, component.title, isDesignMode]);
|
||||
|
||||
// 우측 테이블은 검색 컴포넌트 등록 제외 (좌측 마스터 테이블만 검색 가능)
|
||||
|
||||
Reference in New Issue
Block a user