内置字段类型
Entity Engine 为您提供了完整的字段类型支持,涵盖文本、数字、日期、文件等常见数据类型。每种字段类型都自动配置了合适的输入组件和验证规则,让您可以快速构建表单和数据模型。
在定义模型字段时,只需指定字段类型,引擎会自动选择最佳的输入组件和验证方式。您也可以通过字段配置来自定义显示效果和验证规则。
文本字段 (string)
用于处理各种文本内容,从简单的用户名到长篇文章都可以处理。文本字段会根据内容长度自动选择单行或多行输入框。
// 基础文本字段
{
name: 'title',
title: '标题',
type: 'string',
isRequired: true
}
// 多行文本字段
{
name: 'description',
title: '描述',
type: 'string',
config: {
multiline: true,
rows: 4
}
}
// 邮箱字段(自动邮箱格式验证)
{
name: 'email',
title: '邮箱地址',
type: 'string',
config: {
format: 'email'
}
}
文本字段支持多种格式验证,包括邮箱、URL、电话号码等。您可以设置最大长度、最小长度,以及自定义的正则表达式验证。
数字字段 (number)
处理各种数值数据,支持整数和小数。数字字段会自动提供数字键盘(移动端)和数值验证。
// 基础数字字段
{
name: 'price',
title: '价格',
type: 'number',
isRequired: true
}
// 带范围限制的数字
{
name: 'age',
title: '年龄',
type: 'number',
config: {
min: 0,
max: 150
}
}
// 货币字段
{
name: 'salary',
title: '薪资',
type: 'number',
config: {
currency: 'CNY',
precision: 2
}
}
数字字段可以设置最小值、最大值、小数位数等限制。对于货币金额,可以指定货币类型和精度。
布尔字段 (boolean)
用于是/否、开/关等二选一的场景。布尔字段通常显示为开关按钮或复选框。
// 基础布尔字段
{
name: 'isActive',
title: '激活状态',
type: 'boolean',
defaultValue: false
}
// 同意条款字段
{
name: 'agreeToTerms',
title: '我同意服务条款',
type: 'boolean',
isRequired: true
}
布尔字段非常适合用于状态标记、功能开关、同意确认等场景。
日期字段 (date)
处理日期和时间数据,支持多种日期格式和时区设置。日期字段会自动提供日期选择器组件。
// 基础日期字段
{
name: 'birthDate',
title: '出生日期',
type: 'date'
}
// 日期时间字段
{
name: 'eventTime',
title: '活动时间',
type: 'date',
config: {
includeTime: true
}
}
// 仅时间字段
{
name: 'openTime',
title: '营业时间',
type: 'date',
config: {
timeOnly: true
}
}
日期字段可以配置为仅显示日期、仅显示时间,或者同时显示日期和时间。
枚举字段 (enum)
用于有限选项的选择,比如状态、分类、优先级等。枚举字段会显示为下拉选择框或单选按钮组。
// 状态枚举
{
name: 'status',
title: '状态',
type: 'enum',
options: [
{ label: '草稿', value: 'draft' },
{ label: '已发布', value: 'published' },
{ label: '已归档', value: 'archived' }
],
defaultValue: 'draft'
}
// 优先级枚举
{
name: 'priority',
title: '优先级',
type: 'enum',
options: [
{ label: '低', value: 'low' },
{ label: '中', value: 'medium' },
{ label: '高', value: 'high' }
]
}
枚举字段需要定义所有可选的选项,每个选项包含显示标签和实际存储值。
数组字段 (array)
存储多个值的列表,比如标签、技能、分类等。数组字段通常显示为标签组或多选框。
// 标签数组
{
name: 'tags',
title: '标签',
type: 'array',
itemType: 'string'
}
// 技能数组
{
name: 'skills',
title: '技能',
type: 'array',
itemType: 'string',
config: {
allowCustom: true,
suggestions: ['JavaScript', 'Python', 'React', 'Vue']
}
}
数组字段可以设置元素类型、允许自定义输入、提供选项建议等配置。
JSON 字段 (json)
存储复杂的结构化数据,比如配置信息、元数据等。JSON 字段会提供代码编辑器来输入和编辑 JSON 数据。
// 配置信息字段
{
name: 'config',
title: '配置信息',
type: 'json'
}
// 联系人信息
{
name: 'contactInfo',
title: '联系方式',
type: 'json',
config: {
schema: {
phone: { type: 'string', title: '电话' },
address: { type: 'string', title: '地址' }
}
}
}
JSON 字段可以定义数据结构模式来提供更好的编辑体验。
文件字段 (binary)
处理文件上传和存储,支持图片、文档、视频等各种文件类型。
// 头像图片字段
{
name: 'avatar',
title: '头像',
type: 'binary',
config: {
accept: 'image/*',
maxSize: '2MB'
}
}
// 文档字段
{
name: 'document',
title: '附件',
type: 'binary',
config: {
accept: '.pdf,.doc,.docx',
maxSize: '10MB'
}
}
文件字段可以限制文件类型、大小,以及设置上传的各种参数。
关系字段
Entity Engine 提供了完整的关系字段支持,让您可以轻松建立模型间的关联关系。
多对一关系 (many_to_one)
多个记录指向同一个记录,比如多个文章属于同一个作者:
// 文章的作者字段
{
name: 'author',
title: '作者',
type: 'many_to_one',
referenceTo: 'User'
}
一对多关系 (one_to_many)
一个记录关联多个记录,比如一个用户有多篇文章:
// 用户的文章字段
{
name: 'articles',
title: '文章',
type: 'one_to_many',
referenceTo: 'Article',
referenceBy: 'author'
}
一对一关系 (one_to_one)
两个记录之间的唯一关联,比如用户和用户详情:
// 用户详情字段
{
name: 'profile',
title: '个人资料',
type: 'one_to_one',
referenceTo: 'UserProfile'
}
多对多关系 (many_to_many)
多个记录可以关联多个记录,比如文章和标签的关系:
// 文章的标签字段
{
name: 'tags',
title: '标签',
type: 'many_to_many',
referenceTo: 'Tag'
}
关系字段会自动处理数据的关联查询和显示,让您可以轻松在界面中选择和展示相关记录。
使用字段类型的最佳实践
选择合适的字段类型
根据数据的性质和用途选择最合适的字段类型:
- 用户输入的文本内容选择
string
类型 - 计算和统计数据选择
number
类型 - 有限的选项使用
enum
类型 - 时间相关数据使用
date
类型 - 开关状态使用
boolean
类型
合理配置字段选项
为字段设置适当的验证规则和显示选项:
// 好的实践:为字段提供清晰的配置
{
name: 'email',
title: '邮箱地址',
type: 'string',
isRequired: true,
config: {
format: 'email',
placeholder: '请输入您的邮箱地址'
}
}
提供合理的默认值
为字段设置合适的默认值,提升用户体验:
// 为状态字段提供默认值
{
name: 'status',
title: '状态',
type: 'enum',
options: statusOptions,
defaultValue: 'draft'
}
使用描述信息
为复杂的字段提供描述信息,帮助用户理解字段用途:
{
name: 'config',
title: '高级配置',
type: 'json',
description: '请输入JSON格式的配置信息,用于自定义组件行为'
}
通过合理使用这些内置字段类型,您可以快速构建出功能完整、用户体验良好的数据模型和表单界面。
下一步
了解内置字段类型后,您可能想要: