편집 시 기존 세팅 가져오는 로직 구현
This commit is contained in:
parent
711f2670de
commit
216e1366ef
|
|
@ -67,12 +67,51 @@ export default function HierarchyConfigPanel({
|
||||||
const [loadingColumns, setLoadingColumns] = useState(false);
|
const [loadingColumns, setLoadingColumns] = useState(false);
|
||||||
const [columnsCache, setColumnsCache] = useState<{ [tableName: string]: string[] }>({});
|
const [columnsCache, setColumnsCache] = useState<{ [tableName: string]: string[] }>({});
|
||||||
|
|
||||||
// 외부에서 변경된 경우 동기화
|
// 외부에서 변경된 경우 동기화 및 컬럼 자동 로드
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (hierarchyConfig) {
|
if (hierarchyConfig) {
|
||||||
setLocalConfig(hierarchyConfig);
|
setLocalConfig(hierarchyConfig);
|
||||||
|
|
||||||
|
// 저장된 설정의 테이블들에 대한 컬럼 자동 로드
|
||||||
|
const loadSavedColumns = async () => {
|
||||||
|
const tablesToLoad: string[] = [];
|
||||||
|
|
||||||
|
// 창고 테이블
|
||||||
|
if (hierarchyConfig.warehouse?.tableName) {
|
||||||
|
tablesToLoad.push(hierarchyConfig.warehouse.tableName);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 계층 레벨 테이블들
|
||||||
|
hierarchyConfig.levels?.forEach((level) => {
|
||||||
|
if (level.tableName) {
|
||||||
|
tablesToLoad.push(level.tableName);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 자재 테이블
|
||||||
|
if (hierarchyConfig.material?.tableName) {
|
||||||
|
tablesToLoad.push(hierarchyConfig.material.tableName);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 중복 제거 후 로드
|
||||||
|
const uniqueTables = [...new Set(tablesToLoad)];
|
||||||
|
for (const tableName of uniqueTables) {
|
||||||
|
if (!columnsCache[tableName]) {
|
||||||
|
try {
|
||||||
|
const columns = await onLoadColumns(tableName);
|
||||||
|
setColumnsCache((prev) => ({ ...prev, [tableName]: columns }));
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`컬럼 로드 실패 (${tableName}):`, error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if (externalDbConnectionId) {
|
||||||
|
loadSavedColumns();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}, [hierarchyConfig]);
|
}, [hierarchyConfig, externalDbConnectionId]);
|
||||||
|
|
||||||
// 테이블 선택 시 컬럼 로드
|
// 테이블 선택 시 컬럼 로드
|
||||||
const handleTableChange = async (tableName: string, type: "warehouse" | "material" | number) => {
|
const handleTableChange = async (tableName: string, type: "warehouse" | "material" | number) => {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue