타입 관리 개선 및 화면 비율조정 중간커밋
This commit is contained in:
@@ -351,71 +351,12 @@ const DataTableConfigPanelComponent: React.FC<DataTableConfigPanelProps> = ({
|
||||
[tables, onUpdateComponent, localValues.tableName],
|
||||
);
|
||||
|
||||
// 컬럼 타입 추론
|
||||
// 컬럼 타입 추론 (통합 매핑 시스템 사용)
|
||||
const getWidgetTypeFromColumn = (column: ColumnInfo): WebType => {
|
||||
const type = column.dataType?.toLowerCase() || "";
|
||||
const name = column.columnName.toLowerCase();
|
||||
// 통합 자동 매핑 유틸리티 사용
|
||||
const { inferWebTypeFromColumn } = require("@/lib/utils/dbTypeMapping");
|
||||
|
||||
console.log("🔍 웹타입 추론:", {
|
||||
columnName: column.columnName,
|
||||
dataType: column.dataType,
|
||||
type,
|
||||
name,
|
||||
});
|
||||
|
||||
// 숫자 타입
|
||||
if (type.includes("int") || type.includes("integer") || type.includes("bigint") || type.includes("smallint")) {
|
||||
return "number";
|
||||
}
|
||||
if (
|
||||
type.includes("decimal") ||
|
||||
type.includes("numeric") ||
|
||||
type.includes("float") ||
|
||||
type.includes("double") ||
|
||||
type.includes("real")
|
||||
) {
|
||||
return "decimal";
|
||||
}
|
||||
|
||||
// 날짜/시간 타입
|
||||
if (type.includes("timestamp") || type.includes("datetime")) {
|
||||
return "datetime";
|
||||
}
|
||||
if (type.includes("date")) {
|
||||
return "date";
|
||||
}
|
||||
if (type.includes("time")) {
|
||||
return "datetime";
|
||||
}
|
||||
|
||||
// 불린 타입
|
||||
if (type.includes("bool") || type.includes("boolean")) {
|
||||
return "checkbox";
|
||||
}
|
||||
|
||||
// 컬럼명 기반 추론
|
||||
if (name.includes("email") || name.includes("mail")) return "email";
|
||||
if (name.includes("phone") || name.includes("tel") || name.includes("mobile")) return "tel";
|
||||
if (name.includes("url") || name.includes("link")) return "text";
|
||||
if (name.includes("password") || name.includes("pwd")) return "text";
|
||||
|
||||
// 파일 타입 추론
|
||||
if (
|
||||
name.includes("file") ||
|
||||
name.includes("attach") ||
|
||||
name.includes("upload") ||
|
||||
name.includes("document") ||
|
||||
name.includes("docs") ||
|
||||
name.includes("image") ||
|
||||
name.includes("photo") ||
|
||||
name.includes("picture") ||
|
||||
name.includes("media")
|
||||
) {
|
||||
return "file";
|
||||
}
|
||||
|
||||
// 텍스트 타입 (기본값)
|
||||
return "text";
|
||||
return inferWebTypeFromColumn(column.dataType || "text", column.columnName);
|
||||
};
|
||||
|
||||
// 컬럼 업데이트
|
||||
|
||||
Reference in New Issue
Block a user