데이터전달 모달열기 액션에 컬럼 매핑기능 추가
This commit is contained in:
@@ -59,6 +59,7 @@ export interface ButtonActionConfig {
|
||||
popupWidth?: number;
|
||||
popupHeight?: number;
|
||||
dataSourceId?: string; // 🆕 modalDataStore에서 데이터를 가져올 ID (openModalWithData용)
|
||||
fieldMappings?: Array<{ sourceField: string; targetField: string }>; // 🆕 필드 매핑 (openModalWithData용)
|
||||
|
||||
// 확인 메시지
|
||||
confirmMessage?: string;
|
||||
@@ -1548,10 +1549,27 @@ export class ButtonActionExecutor {
|
||||
}
|
||||
|
||||
// 🆕 부모 화면의 선택된 데이터 가져오기 (excludeFilter에서 사용)
|
||||
const parentData = dataRegistry[dataSourceId]?.[0]?.originalData || dataRegistry[dataSourceId]?.[0] || {};
|
||||
const rawParentData = dataRegistry[dataSourceId]?.[0]?.originalData || dataRegistry[dataSourceId]?.[0] || {};
|
||||
|
||||
// 🆕 필드 매핑 적용 (소스 컬럼 → 타겟 컬럼)
|
||||
let parentData = { ...rawParentData };
|
||||
if (config.fieldMappings && Array.isArray(config.fieldMappings) && config.fieldMappings.length > 0) {
|
||||
console.log("🔄 [openModalWithData] 필드 매핑 적용:", config.fieldMappings);
|
||||
|
||||
config.fieldMappings.forEach((mapping: { sourceField: string; targetField: string }) => {
|
||||
if (mapping.sourceField && mapping.targetField && rawParentData[mapping.sourceField] !== undefined) {
|
||||
// 타겟 필드에 소스 필드 값 복사
|
||||
parentData[mapping.targetField] = rawParentData[mapping.sourceField];
|
||||
console.log(` ✅ ${mapping.sourceField} → ${mapping.targetField}: ${rawParentData[mapping.sourceField]}`);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
console.log("📦 [openModalWithData] 부모 데이터 전달:", {
|
||||
dataSourceId,
|
||||
parentData,
|
||||
rawParentData,
|
||||
mappedParentData: parentData,
|
||||
fieldMappings: config.fieldMappings,
|
||||
});
|
||||
|
||||
// 🆕 전역 모달 상태 업데이트를 위한 이벤트 발생 (URL 파라미터 포함)
|
||||
|
||||
Reference in New Issue
Block a user