엔티티 타입 다중 표시 컬럼 기능 구현
Frontend: - EntityTypeConfig 인터페이스에 displayColumns 배열 추가 - EntityTypeConfigPanel에서 여러 표시 컬럼 선택 UI 구현 - 구분자 설정 기능 추가 - 하위 호환성을 위한 displayColumn 유지 Backend: - EntityJoinConfig에 displayColumns 배열 지원 - 화면별 엔티티 설정을 전달받는 API 확장 - CONCAT을 사용한 다중 컬럼 표시 SQL 생성 - 기존 단일 컬럼과의 호환성 유지 이제 화면마다 다른 표시 컬럼 조합을 설정할 수 있음 예: 한 화면에서는 '이름'만, 다른 화면에서는 '이름 - 부서명' 표시
This commit is contained in:
@@ -26,6 +26,7 @@ export class EntityJoinController {
|
||||
sortOrder = "asc",
|
||||
enableEntityJoin = true,
|
||||
additionalJoinColumns, // 추가 조인 컬럼 정보 (JSON 문자열)
|
||||
screenEntityConfigs, // 화면별 엔티티 설정 (JSON 문자열)
|
||||
userLang, // userLang은 별도로 분리하여 search에 포함되지 않도록 함
|
||||
...otherParams
|
||||
} = req.query;
|
||||
@@ -65,6 +66,21 @@ export class EntityJoinController {
|
||||
}
|
||||
}
|
||||
|
||||
// 화면별 엔티티 설정 처리
|
||||
let parsedScreenEntityConfigs: Record<string, any> = {};
|
||||
if (screenEntityConfigs) {
|
||||
try {
|
||||
parsedScreenEntityConfigs =
|
||||
typeof screenEntityConfigs === "string"
|
||||
? JSON.parse(screenEntityConfigs)
|
||||
: screenEntityConfigs;
|
||||
logger.info("화면별 엔티티 설정 파싱 완료:", parsedScreenEntityConfigs);
|
||||
} catch (error) {
|
||||
logger.warn("화면별 엔티티 설정 파싱 오류:", error);
|
||||
parsedScreenEntityConfigs = {};
|
||||
}
|
||||
}
|
||||
|
||||
const result = await tableManagementService.getTableDataWithEntityJoins(
|
||||
tableName,
|
||||
{
|
||||
@@ -79,6 +95,7 @@ export class EntityJoinController {
|
||||
enableEntityJoin:
|
||||
enableEntityJoin === "true" || enableEntityJoin === true,
|
||||
additionalJoinColumns: parsedAdditionalJoinColumns,
|
||||
screenEntityConfigs: parsedScreenEntityConfigs,
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user