字段配置详解
本文档详细介绍字段的通用配置属性和高级功能,包括基本属性、验证规则、各类型字段的专属配置以及高级功能。各字段类型的完整配置请参考对应的类型文档。
概述
字段配置(详见 字段配置总览)分为三个层次:
- 基本属性:名称、编码、类型、描述、默认值;
- 验证属性:必填、长度限制、范围限制、正则校验、查重;
- 展示属性:列表显示、表单显示、只读、隐藏、占位符与各类渲染方式。
其中「名称 / 编码 / 类型 / 描述」等基本属性在字段配置菜单中设置;「必填 / 只读 / 隐藏 / 占位符 / 默认值」等展示与交互属性在表单配置与视图列表配置中按场景设置。
基本属性配置
通用基本属性
| 配置项 | 说明 | 配置建议 |
|---|---|---|
| 名称 | 字段显示名称 | 使用业务术语,简洁明了 |
| 编码 | 字段唯一标识 | 使用英文小写字母和下划线命名 |
| 类型 | 字段数据类型 | 根据业务需求选择合适类型 |
| 描述 | 字段说明 | 详细描述字段用途 |
| 默认值 | 新建记录时的默认值 | 可设置动态默认值 |
验证属性配置
通用验证规则
| 属性 | 说明 | 适用类型 |
|---|---|---|
| 是否必填 | 数据验证规则 | 所有类型 |
| 最小长度 | 文本最小长度限制 | 文本类型 |
| 最大长度 | 文本最大长度限制 | 文本类型 |
| 最小值 | 数字最小值 | 数字、货币类型 |
| 最大值 | 数字最大值 | 数字、货币类型 |
| 精度 | 小数位数(0-6位) | 数字、货币类型 |
| 正则验证 | 自定义验证规则 | 文本类型 |
展示属性配置
通用展示属性
| 属性 | 说明 |
|---|---|
| 列表显示 | 是否在列表视图列表中展示该字段 |
| 表单显示 | 是否在表单中展示该字段 |
| 只读模式 | 字段值不可编辑 |
| 隐藏字段 | 完全隐藏,通常用于存储计算值 |
| 占位符 | 输入提示,引导用户正确输入 |
各类型字段专属配置
每种字段类型都有独立的属性与配置方法,详见以下类型文档:
- 文本字段(
Text) - 日期时间字段(
DateTime) - 数字字段(
Number) - 货币字段(
Decimal) - 是否字段(
Boolean) - 文件上传字段(
FileUpload) - 人员选择字段(
UserSelect) - 组织选择字段(
OrganizationSelect) - 数据源字段(
DataSource)
下面汇总各类字段最常用的专属配置。
文本类型 (Text)
文本类型支持多种渲染形式:
渲染类型选项
| 渲染类型 | 说明 | 适用场景 |
|---|---|---|
| 单行文本 | 标准文本输入框 | 短文本输入 |
| 密码输入框 | 内容隐藏显示 | 密码等敏感信息 |
| 文本区 | 多行文本输入 | 长文本内容 |
| Markdown | Markdown 格式编辑器 | 富格式文档 |
| 富文本 | 富文本编辑器 | 复杂排版需求 |
文本专属配置
| 配置项 | 说明 | 范围 |
|---|---|---|
| 最小长度 | 文本最小字符数 | 0-100000 |
| 最大长度 | 文本最大字符数 | 0-100000 |
日期时间类型 (DateTime)
支持三种渲染模式,并可自定义日期和时间的显示格式:
渲染模式
| 渲染模式 | 说明 | 存储方式 | 格式配置 |
|---|---|---|---|
| 日期时间 | 包含日期和时间选择 | 完整的日期时间值 | 日期格式 + 时间格式 |
| 日期 | 仅日期选择 | 日期部分,时间归零 | 仅日期格式 |
| 时间 | 仅时间选择 | 基于 2000-01-01 的日期时间值 | 仅时间格式(日期格式不可见) |
Time 类型的存储机制
为什么使用 2000-01-01 作为基准日期?
时间类型字段(如"上班时间"、"会议时长")本质上不需要日期部分。为了保证:
- 搜索一致性:equal/ne 和 range 搜索都能正确工作
- 数据准确性:避免因随机日期导致的时间比较错误
- 跨时区兼容:统一基准日期确保时区转换的一致性
系统采用以下策略:
- 前端:用户选择时间(如 09:30),前端自动拼接基准日期
2000-01-01 09:30:00 - 后端:存储和查询时使用 UTC 格式的 ISO 字符串
- 搜索:所有时间比较都在同一基准日 期上进行,确保结果准确
示例:
- 用户输入:
09:30 - 前端处理:
2000-01-01 09:30:00 - 后端存储:
2000-01-01T01:30:00.000Z(UTC) - 搜索比较:所有时间值都转换为
2000-01-01基准,然后进行比较
🆕 日期/时间格式自定义配置
适用条件
当字段类型为日期时间时,可在字段编辑页面配置以下两项格式:
- 日期格式(DateTimeFormat):控制日期部分的显示方式
- 时间格式(TimeFormat):控制时间部分的显示方式
可见性规则:
| 渲染模式 | 日期格式配置 | 时间格式配置 |
|---|---|---|
| 日期时间 | ✓ 可见 | ✓ 可见 |
| 日期 | ✓ 可见 | ✗ 不可见 |
| 时间 | ✗ 不可见 | ✓ 可见 |
配置项说明
| 配置项 | 默认值 | 说明 | 可见条件 |
|---|---|---|---|
| 日期格式 | YYYY-MM-DD | 日期显示格式 | 渲染模式为"日期时间"或"日期" |
| 时间格式 | HH:mm | 时间显示格式 | 渲染模式为"日期时间"或"时间" |
常用格式示例
| 配置项 | 格式值 | 显示效果示例 | 适用场景 |
|---|---|---|---|
| 日期格式 | YYYY-MM-DD | 2026-06-14 | 标准日期(默认) |
YYYY/MM/DD | 2026/06/14 | 斜杠分隔 | |
DD-MM-YYYY | 14-06-2026 | 日-月-年顺序 | |
YYYY年MM月DD日 | 2026年06月14日 | 中文风格 | |
MM/DD/YYYY | 06/14/2026 | 美式日期 | |
MMM D, YYYY | Jun 14, 2026 | 英文缩写月份 | |
MMMM D, YYYY | June 14, 2026 | 英文完整月份 | |
| 时间格式 | HH:mm | 12:56 | 时:分(默认) |
HH:mm:ss | 12:56:31 | 时:分:秒 | |
H:mm | 12:56 | 非零填充小时 | |
h:mm A | 12:56 PM | 12小时制+AM/PM | |
hh:mm:ss A | 12:56:31 PM | 12小时制完整+AM/PM |
精度自动归零
系统会根据时间格式的精度自动处理用户输入的时间值:
| 时间格式精度 | 点击"此刻"/选择后效果 | 示例结果 |
|---|---|---|
仅小时 (H / HH) | 分、秒、毫秒自动归零 | 2026-06-14T12:00:00 |
到分钟 (HH:mm) | 秒、毫秒自动归零 | 2026-06-14T12:56:00 |
到秒 (HH:mm:ss) | 毫秒自动归零 | 2026-06-14T12:56:31 |
这确保了提交到服务端的时间值与用户配置的格式精度一致,避免因浏览器返回高精度时间导致的服务端处理问题。
完整组合示例
| 场景 | 渲染模式 | 日期格式 | 时间格式 | 最终显示效果 |
|---|---|---|---|---|
| 标准日期时间 | 日期时间 | YYYY-MM-DD | HH:mm | 2026-06-14 12:56 |
| 含秒的日期时间 | 日期时间 | YYYY-MM-DD | HH:mm:ss | 2026-06-14 12:56:31 |
| 中文日期+12小时制 | 日期时间 | YYYY年MM月DD日 | h:mm A | 2026年06月14日 12:56 PM |
| 英文风格 | 日期时间 | MMMM D, YYYY | h:mm:ss A | June 14, 2026 12:56:31 PM |
| 仅日期(Date 模式) | 日期 | YYYY-MM-DD | 不适用 | 2026-06-14 |
| 上班时间(Time 模式) | 时间 | 不适用 | HH:mm | 09:00 |
| 会议时长(含秒) | 时间 | 不适用 | HH:mm:ss | 01:30:00 |
Time 类型使用场景
适用场景:
- 固定时间点:上班打卡时间、会议开始时间、营业时间等
- 时间段记录:工作时长、会议时长、运动时长等
- 时间表管理:课程表、班次表、时刻表等
不适用场景:
- ❌ 需要记录具体日期的场景(如合同到期日)→ 使用 Date 模式
- ❌ 需要完整时间戳的场景(如创建时间、修改时间)→ 使用 DateTime 模式
典型应用示例:
| 业务场景 | 字段名称 | 渲染模式 | 时间格式 | 示例值 |
|---|---|---|---|---|
| 考勤打卡 | 上班时间 | 时间 | HH:mm | 09:00 |
| 会议安排 | 开始时间 | 时间 | HH:mm | 14:30 |
| 课程表 | 第一节课 | 时间 | HH:mm | 08:00 |
| 运动记录 | 运动时长 | 时间 | HH:mm:ss | 01:30:00 |
支持的格式化占位符
系统底层使用 day.js 进行日期格式化,以下占位符均可在配置中使用:
📖 完整文档参考:day.js 格式化占位符列表
日期占位符
| 占位符 | 输出示例 | 说明 |
|---|---|---|
| YY | 18 | 两位数的年份 |
| YYYY | 2018 | 四位数的年份 |
| M | 1-12 | 月份,从1开始 |
| MM | 01-12 | 月份,两位数 |
| MMM | Jan-Dec | 缩写的月份名称 |
| MMMM | January-December | 完整的月份名称 |
| D | 1-31 | 月份里的一天 |
| DD | 01-31 | 月份里的一天,两位数 |
| d | 0-6 | 一周中的一天,星期天是0 |
| dd | Su-Sa | 最简写的星期几 |
| ddd | Sun-Sat | 简写的星期几 |
| dddd | Sunday-Saturday | 星期几 |
时间占位符
| 占位符 | 输出示例 | 说明 |
|---|---|---|
| H | 0-23 | 小时(24小时制) |
| HH | 00-23 | 小时,两位数(24小时制) |
| h | 1-12 | 小时(12小时制) |
| hh | 01-12 | 小时,两位数(12小时制) |
| m | 0-59 | 分钟 |
| mm | 00-59 | 分钟,两位数 |
| s | 0-59 | 秒 |
| ss | 00-59 | 秒,两位数 |
| SSS | 000-999 | 毫秒,三位数 |
| Z | +05:00 | UTC偏移量,±HH:mm |
| ZZ | +0500 | UTC偏移量,±HHmm |
| A | AM PM | 上午/下午标识(大写) |
| a | am pm | 上午/下午标识(小写) |
本地化格式
需要启用 LocalizedFormat 插件后可用的本地化格式:
| 占位符 | 示例输出 | 说明 |
|---|---|---|
| LT | 8:02 PM | 时:分 AM/PM |
| LTS | 8:02:18 PM | 时:分:秒 AM/PM |
| L | 08/16/2018 | 月/日/年 |
| LL | August 16, 2018 | 月 日, 年 |
| LLL | August 16, 2018 8:02 PM | 月 日, 年 时:分 AM/PM |
| LLLL | Thursday, August 16, 2018 8:02 PM | 星期几, 月 日, 年 时:分 AM/PM |
| l | 8/16/2018 | 月/日/年(简化) |
| ll | Aug 16, 2018 | 月 日, 年(简化) |
| lll | Aug 16, 2018 8:02 PM | 月 日, 年 时:分 AM/PM(简化) |
| llll | Thu, Aug 16, 2018 8:02 PM | 星期几, 月 日, 年 时:分 AM/PM(简化) |
是否类型 (Boolean)
Boolean 类型字段支持自定义显示文案:
| 配置项 | 说明 | 默认值 |
|---|---|---|
| 是值显示文案 | true 时显示的文本 | "是" |
| 否值显示文案 | false 时显示的文本 | "否" |
| null值显示文案 | null 时显示的文本 | - |
适用场景:
- 状态标记
- 开关控制
- 二元选择
数字类型 (Number)
数字类型支持多种渲染形式:
渲染类型选项
| 渲染类型 | 说明 | 适用场景 |
|---|---|---|
| 数字输入 | 标准数字输入框 | 常规数值输入 |
| 评分 | 星级评分组件 | 评分、满意度等 |
| 滑动条 | 通过滑动条选择数值 | 范围选择、音量调节等 |
| 进度条 | 以进度条展示数值(只读) | 进度展示、完成率等 |
数字专属配置
| 配置项 | 说明 | 适用渲染类型 |
|---|---|---|
| 精度 | 小数位数(0-6) | 数字输入 |
| 最小值 | 允许的最小数值 | 数字输入、滑动条 |
| 最大值 | 允许的最大数值 | 数字输入、滑动条 |
| 滑动步长 | 滑动条每次移动的步长 | 滑动条模式 |
货币类型 (Currency)
货币类型是高精度数字类型,适用于金额等需要精确计算的场景。
特点:
- 更高的精度保证
- 避免浮点数误差
- 支持最小值/最大值/精度配置
适用场景:金额、价格、汇率等。
文件上传类型 (FileUpload)
用于文件附件或图片上传,支持以下配置:
| 配置项 | 说明 | 选项范围 |
|---|---|---|
| 文件数量限制 | 单次可上传的文件数 | 1-10 个 |
| 单文件大小限制 | 每个文件的大小上限 | 1-50 MB |
| 文件格式限制 | 允许的文件格式 | 采用 HTML input accept 标准 |
文件格式限制示例:
.pdf,.doc,.docx,.xls,.xlsx
image/*,video/*
.mp3,.mp4,.avi
人员选择类型 (UserSelect)
员工选择控件,支持以下特性:
基础配置
| 配置项 | 说明 |
|---|---|
| 选择模式 | 单选或多选 |
| 数据源 | 选择数据来源(系统内置或自定义数据源) |
| Lookup 关联 | 关联其他对象的数据 |