fix: 분할 패널 좌측 테이블 등록 시 displayColumns만 사용하도록 수정
문제: - displayColumns가 비어있을 때 전체 컬럼을 보여주는 오류 - 화면에 설정된 컬럼만 표시되어야 함 해결: - displayColumns가 비어있으면 테이블을 등록하지 않음 - displayColumns에 설정된 컬럼만 검색 컴포넌트에 등록 - 화면 관리에서 설정한 컬럼 구성을 정확히 반영 테스트: - 거래처 관리 화면에서 좌측 테이블의 displayColumns(14개) 정상 표시 - 테이블 옵션/필터 설정/그룹 설정 버튼 정상 작동 - 우측 테이블은 검색 컴포넌트에서 제외
This commit is contained in:
parent
9cf9b87068
commit
2dcf2c4c8e
|
|
@ -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]);
|
||||
|
||||
// 우측 테이블은 검색 컴포넌트 등록 제외 (좌측 마스터 테이블만 검색 가능)
|
||||
|
|
|
|||
|
|
@ -76,7 +76,15 @@ export function TableSearchWidget({ component, screenId, onHeightChange }: Table
|
|||
useEffect(() => {
|
||||
const tables = Array.from(registeredTables.values());
|
||||
|
||||
console.log("🔍 [TableSearchWidget] 테이블 감지:", {
|
||||
tablesCount: tables.length,
|
||||
tableIds: tables.map(t => t.tableId),
|
||||
selectedTableId,
|
||||
autoSelectFirstTable,
|
||||
});
|
||||
|
||||
if (autoSelectFirstTable && tables.length > 0 && !selectedTableId) {
|
||||
console.log("✅ [TableSearchWidget] 첫 번째 테이블 자동 선택:", tables[0].tableId);
|
||||
setSelectedTableId(tables[0].tableId);
|
||||
}
|
||||
}, [registeredTables, selectedTableId, autoSelectFirstTable, setSelectedTableId]);
|
||||
|
|
|
|||
Loading…
Reference in New Issue