表单设计 ★
一句话:低代码表单的登记与生命周期管理——在这里新建并进入设计器、发布(首次发布自动创建运行时菜单与 7 个按钮权限)、看版本与回滚、下线回收菜单;「草稿 / 已发布 / 已发布有改动」三个状态直接告诉你线上跑的是不是最新配置。
功能在哪
- 菜单路径:基础设施 → 在线开发 → 表单设计
- 地址栏路由:
/infra/online/list - 主要权限:
infra:form-design:query(列表/版本)、:create(新增/复制)、:update(设计)、:delete(删除)、:publish(发布/下线)、:rollback(版本回滚)

界面认识
查询条件(名称与编码为模糊匹配,输入框回车即搜索):
| 条件 | 可选项 |
|---|---|
| 表单名称 / 表单编码 | 模糊匹配 |
| 分类 | 字典「表单设计分类」:业务表单(蓝)/ 基础数据(绿)/ 统计报表(橙)/ 其他(灰);未设置显示「-」 |
| 表单类型 | 纯表单(只有填写页)/ 表单+列表(额外生成列表页) |
| 状态 | 草稿 / 已发布 / 已发布有改动 |
列表列:序号、表单名称、表单编码、分类、表单类型、绑定主表(未绑定时显示灰色小字「未绑定」)、状态(草稿=灰、已发布=绿、已发布有改动=橙)、线上版本(发布过显示 vN,否则「-」)、创建时间、操作。
行内操作:设计、发布、版本,其余折进「更多」下拉(复制、下线、删除,删除项上方有分隔线)。
三个状态在说什么
- 草稿:从未发布,只在设计器里存在,运行时查不到这张表单;
- 已发布:草稿与线上一致,改配置会立刻变成下一态;
- 已发布有改动:草稿已被改动、与线上版本不一致,需重新发布才生效——橙色标签就是提醒你现在线上跑的还是旧配置。
发布按钮任何状态都能点:草稿首次发布、已发布再发布都是「出一个新版本」。
常用操作
新建一张表单
- 工具栏「新增」→ 直接进入表单设计器(不带参数,新建草稿);编辑已有的点行内「设计」(带表单编号进入);
- 在设计器里走完「基础设置 → 数据绑定 → 表单设计 → 列表设计」四步并保存,回到本页就能发布;
- 新建时的默认值:表单类型=表单+列表、数据源=0(主库)、主键列=
id、主键策略=雪花算法、扩展模式=前端脚本、提交钩子超时动作=阻断提交。
为什么主键默认雪花而不是自增
自增主键在分库分表、数据迁移、多环境同步时会冲突;选雪花时主键列必须是 bigint——19 位 Long 塞进 int 列会溢出,发布校验会拦住这种组合。
发布(首次发布会自动建菜单)
- 行内「发布」→「发布表单」对话框;
- 首次发布顶部蓝色提示条:「首次发布需要选择上级菜单,发布后会自动创建运行时菜单与按钮权限。」,此时必须选「上级菜单」(不选提示「请选择上级菜单」)并可填「菜单排序」;
- 再次发布提示条变为:「该表单已发布过,本次发布只更新配置与版本,不会重建菜单。」,只需填「变更说明」(占位「简述本次发布改了什么,会记入版本历史」);
- 「确认发布」→ 成功提示:首次为 「发布成功,已创建菜单与按钮权限(版本 v{N})」,再次为 「发布成功(版本 v{N})」。

发布时自动创建的 7 个按钮权限
首次发布会在该表单的运行时菜单下挂 7 个按钮:{表单名}查询 / 新增 / 修改 / 删除 / 导出 / 导入 / 被引用,权限串形如 infra:form-design-run:{表单编码}:query。之后给角色授权时勾这些按钮,就能精确控制谁能在这张表单上增删改查——「被引用」控制的是别的表单通过关联字段取它的数据。
发布前会做全量体检
点「确认发布」后后端会真去核实表结构(绑定的表/列是否还在、列长度够不够、字典是否有效等),所有问题一次性列全再拒绝;提示是一串以「;」拼接的清单。想提前自查,进设计器点「体 检」——体检与发布走同一份校验,体检通过就一定发得出去。
版本与回滚
行内「版本」→ 右侧「版本历史」抽屉,顶部说明原文:「每个表单最多保留最新 100 个版本。回滚只把配置写回草稿,线上版本不变,需再点发布才生效。」
抽屉里是时间线(按版本号倒序):每条显示 vN、等于当前线上版本时带绿色「当前线上」标签、链接「预览」与「回滚到此版本」、变更说明(没填显示「无变更说明」)、发布人与时间。从未发布过则显示「还没有发布过,暂无版本历史」。

回滚会二次确认:「确认回滚到版本 v{N} 吗?回滚只影响草稿,线上仍是 v{M},需要重新发布才会生效。」,成功提示「回滚成功,配置已写回草稿」。
回滚 ≠ 线上回退
回滚只把那份配置写回草稿,线上版本不动——回滚完必须再点一次「发布」,线上才变成回滚后的样子。表单编码也不回滚:运行时与菜单都通过它引用本表单。版本超过 100 个时自动物理删除最老的。
下线(回收菜单与按钮权限)
只有已关联菜单的行在「更多」里才有「下线」;确认文案:「确认下线表单「{名称}」吗?会删除它生成的菜单与按钮权限,表单状态回到草稿。」,成功提示「下线成功」。
下线是全站动作
下线会删掉这张表单的运行时菜单与那 7 个按钮权限,已授权的角色会立刻失去入口;表单回到草稿、线上版本清零。若菜单回收失败,会明确提示:「表单已下线,但菜单回收失败:请到「系统管理 → 菜单管理」手工删除「{名称}」及其按钮权限」——按提示去收拾即可,不会留静默的孤儿菜单。
复制与删除
- 复制:确认文案 「确认复制表单「{名称}」吗?副本为草稿状态,不会继承菜单与版本历史。」;副本名称加后缀「(副本)」,编码依次尝试
{编码}_copy、_copy2、_copy3……直到不冲突; - 删除:分三种情形——
- 草稿行:通用确认「是否删除所选中数据?」;
- 已发布但未关联菜单:确认 「表单「{名称}」已发布(未关联菜单),删除会同时清除它的版本历史,确认删除吗?」;
- 已关联菜单:不给删,弹警告并指路——「表单「{名称}」已发布并关联菜单,不能直接删除。请先在「更多」中执行「下线」回收菜单与按钮权限,再删除表单」。


字段说明(列表列)
| 列 | 显示规则 |
|---|---|
| 分类 | 字典标签带色;未设置显示「-」 |
| 表单类型 | 纯表单 / 表单+列表;认不出的值显示「-」 |
| 绑定主表 | 设计器「数据绑定」里选的主表;没绑显示灰字「未绑定」 |
| 状态 | 草稿(灰)/ 已发布(绿)/ 已发布有改动(橙) |
| 线上版本 | 发布过显示 vN;从未发布显示「-」 |
| 创建时间 | YYYY-MM-DD HH:mm:ss |
「更多」里的三项(复制/下线/删除)刻意不做前端权限门控,由后端接口权限兜底(复制=创建、下线=发布、删除=删除);一行按钮全被权限滤掉时操作列显示「-」。
视角对照
| 视角 | 看到什么 |
|---|---|
超管 admin / 租户管理员 docadmin | 全部表单,可新增、设计、发布、回滚、下线、删除 |
只授 query 的角色 | 能看列表与版本,「新增」「设计」「发布」按钮不显示 |
| 套餐未含「表单设计」菜单的租户 | 侧边栏「在线开发」下没有本页 |
| 普通员工 | 无此菜单;他们用的是发布后生成的运行时菜单页 |
进阶
- 改完没生效先别慌:看状态列是不是「已发布有改动」——是的话重新发布即可,配置不会丢;
- 编码是这张表单的身份:发布后编码在设计器里直接置灰,提示原文「表单已发布,编码不可修改 —— 运行时与菜单都通过它引用本表单。」确需换编码只能新建;
- 两人同时改一张表单:保存/发布/回滚带乐观锁,撞上会提示 「这张表单在你编辑期间已被他人修改,你的修改没有保存。请刷新后在最新数据上重新修改 —— 直接覆盖会把对方的改动悄悄抹掉」;
- 发布被拒先读清单:报错是一串以「;」拼接的问题清单(表不存在、列被删、字典停用、文件列太短……),逐条改完再发;设计器里的「体 检」按钮能在保存后随时做同一份校验;
- 表单与「表单构建」「流程表单」是三个东西:本页是独立低代码表单模块(配置落库、运行时渲染);「表单构建」只产出代码不落库,「流程表单」仅供工作流使用,三者互不相通。
常见问题
Q:在设计器里改完保存了,为什么运行时还是旧样子? A:保存只改草稿。看状态列:「已发布有改动」说明还没发布,点「发布」出新版本后才生效。
Q:点删除提示要先「下线」? A:已关联菜单的表单,菜单与按钮权限只能由「下线」流程回收。先在「更多」里执行下线,再删除。
Q:发布时报一大串问题? A:那是发布校验的汇总清单,一次把所有问题列全(与「体检」同一份校验)。按清单逐条修;多数是绑定的表/列被改名删除、字典被停用、文件列长度不够这类。
Q:回滚到 v2 了,线上怎么还是 v3? A:回滚只写回草稿,线上不变。回滚后再点一次「发布」,线上才切到回滚后的配置。
Q:复制出来的表单去哪找? A:列表里名称带「(副本)」的新草稿行;它不带菜单、不带版本历史,需要自己发布。
Q:「绑定主表」显示「未绑定」能发布吗? A:不能,发布校验会报「请先绑定主表」。先去设计器「数据绑定」步骤选主表。
Q:列表里为什么没有日期范围查询? A:本页查询区只有名称/编码/分类/类型/状态五项,创建时间只作展示列,不提供区间筛选。
