feat: Update screen management service and UI components for main table handling
- Enhanced the `ScreenManagementService` to update the main table name in the database when saving layout data, improving data integrity and tracking. - Modified the `ScreenDesigner` component to include the main table name in the save request, ensuring the correct table is referenced. - Updated the `TablesPanel` to generate unique keys for join tables based on source columns, preventing key collisions and improving rendering performance. - Refactored the `TabsWidget` to streamline screen information loading and removed redundant screen info loading logic, enhancing efficiency and user experience.
This commit is contained in:
@@ -5177,8 +5177,18 @@ export class ScreenManagementService {
|
||||
throw new Error("이 화면의 레이아웃을 저장할 권한이 없습니다.");
|
||||
}
|
||||
|
||||
// 화면의 기본 테이블 업데이트 (테이블이 선택된 경우)
|
||||
const mainTableName = layoutData.mainTableName;
|
||||
if (mainTableName) {
|
||||
await query(
|
||||
`UPDATE screen_definitions SET table_name = $1, updated_date = NOW() WHERE screen_id = $2`,
|
||||
[mainTableName, screenId],
|
||||
);
|
||||
console.log(`✅ [saveLayoutV2] 화면 기본 테이블 업데이트: ${mainTableName}`);
|
||||
}
|
||||
|
||||
// 저장할 layout_data에서 레이어 메타 정보 제거 (순수 레이아웃만 저장)
|
||||
const { layerId: _lid, layerName: _ln, conditionConfig: _cc, ...pureLayoutData } = layoutData;
|
||||
const { layerId: _lid, layerName: _ln, conditionConfig: _cc, mainTableName: _mtn, ...pureLayoutData } = layoutData;
|
||||
const dataToSave = {
|
||||
version: "2.0",
|
||||
...pureLayoutData,
|
||||
|
||||
Reference in New Issue
Block a user