ConnectionSetupModal 및 RelationshipListModal에서 설정 로드 로직 개선: data-save 연결의 다양한 구조 지원 및 임시 관계 우선 로드 추가
This commit is contained in:
parent
e572374116
commit
5fc7dd095b
|
|
@ -84,9 +84,20 @@ export const ConnectionSetupModal: React.FC<ConnectionSetupModalProps> = ({
|
|||
setSimpleKeySettings({
|
||||
notes: settings.notes as string,
|
||||
});
|
||||
} else if (connectionType === "data-save" && settings.actions) {
|
||||
// data-save 설정 로드 - 안전하게 처리
|
||||
const actionsData = Array.isArray(settings.actions) ? settings.actions : [];
|
||||
} else if (connectionType === "data-save") {
|
||||
// data-save 설정 로드 - 안전하게 처리 (다양한 구조 지원)
|
||||
let actionsData: Record<string, unknown>[] = [];
|
||||
|
||||
if (Array.isArray((settings as any).actions)) {
|
||||
// 직접 actions 배열이 있는 경우
|
||||
actionsData = (settings as any).actions;
|
||||
} else if ((settings as any).plan && Array.isArray((settings as any).plan.actions)) {
|
||||
// plan 객체 안에 actions가 있는 경우
|
||||
actionsData = (settings as any).plan.actions;
|
||||
} else if (Array.isArray(settings)) {
|
||||
// settings 자체가 actions 배열인 경우
|
||||
actionsData = settings as Record<string, unknown>[];
|
||||
}
|
||||
setDataSaveSettings({
|
||||
actions: actionsData.map((action: Record<string, unknown>) => ({
|
||||
id: (action.id as string) || `action-${Date.now()}`,
|
||||
|
|
@ -118,12 +129,19 @@ export const ConnectionSetupModal: React.FC<ConnectionSetupModalProps> = ({
|
|||
})),
|
||||
});
|
||||
|
||||
// 전체 실행 조건 로드
|
||||
if (settings.control) {
|
||||
const controlSettings = settings.control as { conditionTree?: ConditionNode[] };
|
||||
if (Array.isArray(controlSettings.conditionTree)) {
|
||||
setConditions(controlSettings.conditionTree || []);
|
||||
}
|
||||
// control 설정도 로드 (전체 실행 조건)
|
||||
if (
|
||||
(settings as any).control &&
|
||||
(settings as any).control.conditionTree &&
|
||||
Array.isArray((settings as any).control.conditionTree)
|
||||
) {
|
||||
const conditionTree = (settings as any).control.conditionTree as ConditionNode[];
|
||||
setConditions(
|
||||
conditionTree.map((condition) => ({
|
||||
...condition,
|
||||
operator: condition.operator || "=", // 기본값 보장
|
||||
})),
|
||||
);
|
||||
}
|
||||
} else if (connectionType === "external-call") {
|
||||
setExternalCallSettings({
|
||||
|
|
|
|||
|
|
@ -49,9 +49,15 @@ export const RelationshipListModal: React.FC<RelationshipListModalProps> = ({
|
|||
}
|
||||
onSetSelectedColumns(newSelectedColumns);
|
||||
|
||||
// 🔥 수정: 데이터베이스에서 관계 설정 정보 로드
|
||||
// 🔥 수정: 관계 설정 정보 로드 (임시 관계 우선, 없으면 데이터베이스에서)
|
||||
let relationshipSettings = {};
|
||||
if (diagramId && diagramId > 0) {
|
||||
|
||||
// 1. 먼저 임시 관계의 settings 사용 (메모리에 있는 데이터)
|
||||
if (relationship.settings && Object.keys(relationship.settings).length > 0) {
|
||||
relationshipSettings = relationship.settings;
|
||||
}
|
||||
// 2. 임시 settings가 없고 저장된 관계도인 경우 데이터베이스에서 로드
|
||||
else if (diagramId && diagramId > 0) {
|
||||
try {
|
||||
const jsonDiagram = await DataFlowAPI.getJsonDataFlowDiagramById(diagramId, companyCode);
|
||||
if (jsonDiagram && relationship.connectionType === "data-save") {
|
||||
|
|
|
|||
Loading…
Reference in New Issue