[agent-pipeline] pipe-20260317054958-cypk round-1
This commit is contained in:
parent
4ba931dc70
commit
4db5d73817
|
|
@ -211,12 +211,11 @@ export const V2PropertiesPanel: React.FC<V2PropertiesPanelProps> = ({
|
||||||
// 현재 화면의 테이블명 가져오기
|
// 현재 화면의 테이블명 가져오기
|
||||||
const currentTableName = tables?.[0]?.tableName;
|
const currentTableName = tables?.[0]?.tableName;
|
||||||
|
|
||||||
// DB input_type 가져오기 (columnMetaCache에서 최신값 조회)
|
// DB input_type만 조회 (saved config와 분리하여 전달)
|
||||||
const colName = selectedComponent.columnName || currentConfig.fieldKey || currentConfig.columnName;
|
const colName = selectedComponent.columnName || currentConfig.fieldKey || currentConfig.columnName;
|
||||||
const tblName = selectedComponent.tableName || currentTable?.tableName || currentTableName;
|
const tblName = selectedComponent.tableName || currentTable?.tableName || currentTableName;
|
||||||
const dbMeta = colName && tblName && !colName.includes(".") ? columnMetaCache[tblName]?.[colName] : undefined;
|
const dbMeta = colName && tblName && !colName.includes(".") ? columnMetaCache[tblName]?.[colName] : undefined;
|
||||||
const dbInputType = dbMeta ? (() => { const raw = dbMeta.input_type || dbMeta.inputType; return raw === "direct" || raw === "auto" ? undefined : raw; })() : undefined;
|
const dbInputType = dbMeta ? (() => { const raw = dbMeta.input_type || dbMeta.inputType; return raw === "direct" || raw === "auto" ? undefined : raw; })() : undefined;
|
||||||
const inputType = dbInputType || currentConfig.inputType || currentConfig.webType || (selectedComponent as any).inputType;
|
|
||||||
|
|
||||||
// 컴포넌트별 추가 props
|
// 컴포넌트별 추가 props
|
||||||
const extraProps: Record<string, any> = {};
|
const extraProps: Record<string, any> = {};
|
||||||
|
|
@ -224,7 +223,8 @@ export const V2PropertiesPanel: React.FC<V2PropertiesPanelProps> = ({
|
||||||
const resolvedColumnName = selectedComponent.columnName || currentConfig.fieldKey || currentConfig.columnName;
|
const resolvedColumnName = selectedComponent.columnName || currentConfig.fieldKey || currentConfig.columnName;
|
||||||
|
|
||||||
if (componentId === "v2-input" || componentId === "v2-select") {
|
if (componentId === "v2-input" || componentId === "v2-select") {
|
||||||
extraProps.inputType = inputType;
|
extraProps.componentType = componentId;
|
||||||
|
extraProps.inputType = dbInputType;
|
||||||
extraProps.tableName = resolvedTableName;
|
extraProps.tableName = resolvedTableName;
|
||||||
extraProps.columnName = resolvedColumnName;
|
extraProps.columnName = resolvedColumnName;
|
||||||
extraProps.screenTableName = resolvedTableName;
|
extraProps.screenTableName = resolvedTableName;
|
||||||
|
|
|
||||||
|
|
@ -77,9 +77,9 @@ interface CategoryValueOption {
|
||||||
valueLabel: string;
|
valueLabel: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ─── 하위 호환: 기존 config에서 fieldType 추론 ───
|
// ─── 하위 호환: 기존 config에서 fieldType 추론 (우선순위: DB값 > 사용자 fieldType > 컴포넌트구조 > saved config > 기본값) ───
|
||||||
function resolveFieldType(config: Record<string, any>, componentType?: string, metaInputType?: string): FieldType {
|
function resolveFieldType(config: Record<string, any>, componentType?: string, metaInputType?: string): FieldType {
|
||||||
// DB input_type이 전달된 경우 (데이터타입관리에서 변경 시) 우선 적용
|
// (a) metaInputType: DB 전용 (undefined면 스킵, V2PropertiesPanel에서 dbInputType만 전달)
|
||||||
if (metaInputType && metaInputType !== "direct" && metaInputType !== "auto") {
|
if (metaInputType && metaInputType !== "direct" && metaInputType !== "auto") {
|
||||||
const dbType = metaInputType as FieldType;
|
const dbType = metaInputType as FieldType;
|
||||||
if (["text", "number", "textarea", "numbering", "select", "category", "entity"].includes(dbType)) {
|
if (["text", "number", "textarea", "numbering", "select", "category", "entity"].includes(dbType)) {
|
||||||
|
|
@ -87,9 +87,10 @@ function resolveFieldType(config: Record<string, any>, componentType?: string, m
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// (b) 사용자가 설정 패널에서 직접 선택한 fieldType
|
||||||
if (config.fieldType) return config.fieldType as FieldType;
|
if (config.fieldType) return config.fieldType as FieldType;
|
||||||
|
|
||||||
// v2-select 계열
|
// (c) v2-select 계열: componentType 또는 config.source 기반
|
||||||
if (componentType === "v2-select" || config.source) {
|
if (componentType === "v2-select" || config.source) {
|
||||||
const source = config.source === "code" ? "category" : config.source;
|
const source = config.source === "code" ? "category" : config.source;
|
||||||
if (source === "entity") return "entity";
|
if (source === "entity") return "entity";
|
||||||
|
|
@ -97,11 +98,13 @@ function resolveFieldType(config: Record<string, any>, componentType?: string, m
|
||||||
return "select";
|
return "select";
|
||||||
}
|
}
|
||||||
|
|
||||||
// v2-input 계열
|
// (d) saved config fallback (config.inputType / config.type)
|
||||||
const it = config.inputType || config.type;
|
const it = config.inputType || config.type;
|
||||||
if (it === "number") return "number";
|
if (it === "number") return "number";
|
||||||
if (it === "textarea") return "textarea";
|
if (it === "textarea") return "textarea";
|
||||||
if (it === "numbering") return "numbering";
|
if (it === "numbering") return "numbering";
|
||||||
|
|
||||||
|
// (e) 최종 기본값
|
||||||
return "text";
|
return "text";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue