리피터 컨테이너 기능 추가: ScreenDesigner 컴포넌트에 리피터 컨테이너 내부 드롭 처리 로직을 추가하여, 드롭 시 새로운 자식 컴포넌트를 생성하고 레이아웃을 업데이트합니다. 또한, TableListComponent에서 리피터 컨테이너와 집계 위젯 연동을 위한 커스텀 이벤트를 발생시켜 데이터 변경 사항을 처리할 수 있도록 개선하였습니다.

This commit is contained in:
kjs
2026-01-16 15:12:22 +09:00
parent 28f67cb0b6
commit 9d74baf60a
8 changed files with 1859 additions and 2 deletions

View File

@@ -2074,6 +2074,19 @@ export const TableListComponent: React.FC<TableListComponentProps> = ({
});
}
// 🆕 리피터 컨테이너/집계 위젯 연동용 커스텀 이벤트 발생
if (typeof window !== "undefined") {
const event = new CustomEvent("tableListDataChange", {
detail: {
componentId: component.id,
tableName: tableConfig.selectedTable,
data: selectedRowsData,
selectedRows: Array.from(newSelectedRows),
},
});
window.dispatchEvent(event);
}
// 🆕 modalDataStore에 선택된 데이터 자동 저장 (테이블명 기반 dataSourceId)
if (tableConfig.selectedTable && selectedRowsData.length > 0) {
import("@/stores/modalDataStore").then(({ useModalDataStore }) => {
@@ -2112,6 +2125,19 @@ export const TableListComponent: React.FC<TableListComponentProps> = ({
});
}
// 🆕 리피터 컨테이너/집계 위젯 연동용 커스텀 이벤트 발생
if (typeof window !== "undefined") {
const event = new CustomEvent("tableListDataChange", {
detail: {
componentId: component.id,
tableName: tableConfig.selectedTable,
data: filteredData,
selectedRows: Array.from(newSelectedRows),
},
});
window.dispatchEvent(event);
}
// 🆕 modalDataStore에 전체 데이터 저장
if (tableConfig.selectedTable && filteredData.length > 0) {
import("@/stores/modalDataStore").then(({ useModalDataStore }) => {
@@ -2135,6 +2161,19 @@ export const TableListComponent: React.FC<TableListComponentProps> = ({
onFormDataChange({ selectedRows: [], selectedRowsData: [] });
}
// 🆕 리피터 컨테이너/집계 위젯 연동용 커스텀 이벤트 발생 (선택 해제)
if (typeof window !== "undefined") {
const event = new CustomEvent("tableListDataChange", {
detail: {
componentId: component.id,
tableName: tableConfig.selectedTable,
data: [],
selectedRows: [],
},
});
window.dispatchEvent(event);
}
// 🆕 modalDataStore 데이터 제거
if (tableConfig.selectedTable) {
import("@/stores/modalDataStore").then(({ useModalDataStore }) => {