리피터 컨테이너 기능 추가: ScreenDesigner 컴포넌트에 리피터 컨테이너 내부 드롭 처리 로직을 추가하여, 드롭 시 새로운 자식 컴포넌트를 생성하고 레이아웃을 업데이트합니다. 또한, TableListComponent에서 리피터 컨테이너와 집계 위젯 연동을 위한 커스텀 이벤트를 발생시켜 데이터 변경 사항을 처리할 수 있도록 개선하였습니다.
This commit is contained in:
@@ -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 }) => {
|
||||
|
||||
Reference in New Issue
Block a user