feat: 엔티티 타입 컬럼 표시 설정을 화면 편집기로 이동
- 테이블 타입 관리에서 엔티티 타입의 표시 컬럼 설정 완전 제거 - 컬럼 설정 패널에서 엔티티 타입일 때 표시 컬럼 조합 선택 기능 추가 - 기본 테이블과 조인 테이블의 컬럼을 자유롭게 조합 가능 - 구분자 설정 및 실시간 미리보기 기능 포함 - 별도 모달 방식 제거하고 기존 컬럼 설정 패널에 통합
This commit is contained in:
@@ -20,7 +20,7 @@ export class EntityJoinService {
|
||||
* @param screenEntityConfigs 화면별 엔티티 설정 (선택사항)
|
||||
*/
|
||||
async detectEntityJoins(
|
||||
tableName: string,
|
||||
tableName: string,
|
||||
screenEntityConfigs?: Record<string, any>
|
||||
): Promise<EntityJoinConfig[]> {
|
||||
try {
|
||||
@@ -57,7 +57,7 @@ export class EntityJoinService {
|
||||
const screenConfig = screenEntityConfigs?.[column.column_name];
|
||||
let displayColumns: string[] = [];
|
||||
let separator = " - ";
|
||||
|
||||
|
||||
if (screenConfig && screenConfig.displayColumns) {
|
||||
// 화면에서 설정된 표시 컬럼들 사용
|
||||
displayColumns = screenConfig.displayColumns;
|
||||
@@ -66,8 +66,11 @@ export class EntityJoinService {
|
||||
// 기존 설정된 단일 표시 컬럼 사용
|
||||
displayColumns = [column.display_column];
|
||||
} else {
|
||||
// 기본값: reference_column 사용
|
||||
displayColumns = [column.reference_column];
|
||||
// 화면에서 설정하도록 빈 배열로 초기화 (테이블 타입 관리에서 표시 컬럼 설정 제거)
|
||||
displayColumns = [];
|
||||
console.log(
|
||||
`🎯 표시 컬럼을 화면에서 설정하도록 초기화: ${column.column_name} (테이블 타입 관리에서 표시 컬럼 설정 제거됨)`
|
||||
);
|
||||
}
|
||||
|
||||
// 별칭 컬럼명 생성 (writer -> writer_name)
|
||||
@@ -153,16 +156,18 @@ export class EntityJoinService {
|
||||
const joinColumns = joinConfigs
|
||||
.map((config) => {
|
||||
const alias = aliasMap.get(config.referenceTable);
|
||||
const displayColumns = config.displayColumns || [config.displayColumn];
|
||||
const displayColumns = config.displayColumns || [
|
||||
config.displayColumn,
|
||||
];
|
||||
const separator = config.separator || " - ";
|
||||
|
||||
|
||||
if (displayColumns.length === 1) {
|
||||
// 단일 컬럼인 경우
|
||||
return `COALESCE(${alias}.${displayColumns[0]}, '') AS ${config.aliasColumn}`;
|
||||
} else {
|
||||
// 여러 컬럼인 경우 CONCAT으로 연결
|
||||
const concatParts = displayColumns
|
||||
.map(col => `COALESCE(${alias}.${col}, '')`)
|
||||
.map((col) => `COALESCE(${alias}.${col}, '')`)
|
||||
.join(`, '${separator}', `);
|
||||
return `CONCAT(${concatParts}) AS ${config.aliasColumn}`;
|
||||
}
|
||||
@@ -236,7 +241,7 @@ export class EntityJoinService {
|
||||
const cachedData = await referenceCacheService.getCachedReference(
|
||||
config.referenceTable,
|
||||
config.referenceColumn,
|
||||
config.displayColumn
|
||||
config.displayColumn || config.displayColumns[0]
|
||||
);
|
||||
|
||||
return cachedData ? "cache" : "join";
|
||||
|
||||
Reference in New Issue
Block a user