跳到主要内容

Skills — 设计器表单自动生成

1. 功能介绍

jeecg-desform 是 Claude Code 的 AI Skill,能够将自然语言的表单需求描述自动转换为 JeecgBoot 设计器表单(desform),完成从需求解析 → JSON 生成 → API 创建的全流程自动化。

核心能力:

  • 用自然语言描述表单需求,AI 自动推导控件类型和配置
  • 自动生成完整的 desformDesignJson(表单设计 JSON)
  • 通过 API 自动创建表单并保存设计
  • 支持 30+ 种控件类型(文本、日期、选择、上传、子表、关联、公式等)
  • 支持系统字典和静态选项两种数据源
  • 支持编辑已有表单

不确定该用哪个 Skill?请查看 AI Skills 技能清单

2. 前置条件

使用前需要准备两个信息:

信息获取方式示例
API 地址JeecgBoot 后端服务地址https://boot3.jeecg.com/jeecgboot
X-Access-Token浏览器 F12 → Network → 任意请求的 Request HeaderseyJhbGciOiJIUzI1NiIs...

获取 Token 步骤:

  1. 登录 JeecgBoot 后台管理系统
  2. 按 F12 打开浏览器开发者工具
  3. 切换到 Network(网络)面板
  4. 点击页面上任意操作触发一个请求
  5. 点击该请求,在 Request Headers 中找到 X-Access-Token 的值并复制

3. 使用方式

在 Claude Code 中直接用自然语言描述需求即可。以下是触发关键词:

AI设计表单、AI生成表单、自动创建表单、智能表单、
生成一个表单、帮我设计表单、创建表单、新建表单、做一个表单

4. 实战示例:创建请假申请表

4.1 第一步:描述需求

帮我设计一个请假申请表单,包含:
- 姓名(必填,标题字段)
- 请假类型(下拉选择:事假/病假/年假/调休)
- 开始日期和结束日期
- 请假天数(整数,必填)
- 请假原因(多行文本)
- 附件(文件上传)

4.2 第二步:AI 展示摘要

AI 会根据描述自动推导控件类型,展示摘要等待确认:

## 表单摘要

- 表单名称:请假申请
- 表单编码:qing_jia_shen_qing
- 目标环境:https://boot3.jeecg.com/jeecgboot

### 字段列表

| 序号 | 字段名称 | 控件类型 | 必填 | 说明 |
|------|----------|----------------------|------|--------------------------|
| 1 | 姓名 | input (单行文本) || 标题字段 |
| 2 | 请假类型 | select (下拉选择) || 选项:事假/病假/年假/调休 |
| 3 | 开始日期 | date (日期) || |
| 4 | 结束日期 | date (日期) || |
| 5 | 请假天数 | integer (整数) || |
| 6 | 请假原因 | textarea (多行文本) || |
| 7 | 附件 | file-upload (文件上传) || |

确认以上信息正确?(y/n)

4.3 第三步:提供 Token 并确认

确认。
API地址:https://boot3.jeecg.com/jeecgboot
x-access-token: eyJhbGciOiJIUzI1NiIs...

4.4 第四步:AI 自动执行

AI 会自动执行三步操作:

1. POST /desform/add → 创建空表单 ✓
2. GET /desform/queryByCode → 获取表单 ID 和 updateCount ✓
3. PUT /desform/edit → 保存表单设计 JSON

技术说明: POST /desform/add 返回的 resultnull,这是正常行为。AI 会自动通过 queryByCode 查询获取表单 ID。

4.5 第五步:查看结果

## 表单创建成功

- 表单ID:abc123def456
- 表单名称:请假申请
- 表单编码:qing_jia_shen_qing
- 字段数量:7
- 目标环境:https://boot3.jeecg.com/jeecgboot

请在表单设计器中查看:
JeecgBoot 后台 → 表单设计器 → 找到该表单

AI 还会输出菜单 SQL(可选执行),将表单加入系统左侧菜单:

INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, ...)
VALUES ('{menuId}', NULL, '请假申请',
'/online/desform/list/qing_jia_shen_qing',
'super/online/desform/auto/AutoDesformDataList',
'AutoDesformDataList', ...);

创建成功后,可以在 JeecgBoot 后台的表单设计器中看到该表单,支持:

  • 拖拽调整字段位置和布局
  • 可视化修改控件属性
  • 预览表单效果
  • 绑定流程作为审批表单

5. 支持的控件类型

5.1 基础控件

用户描述关键词控件类型说明
名称/标题/姓名/文本input单行文本输入
描述/备注/原因/多行textarea多行文本输入
数量/数字/金额(无单位)number数字输入
整数/个数/天数integer整数输入
金额/费用/价格money金额(带元单位)
手机/电话/手机号phone手机号输入
邮箱/Emailemail邮箱输入

5.2 选择控件

用户描述关键词控件类型说明
单选/性别/是否/状态radio单选框组
多选/标签/兴趣checkbox多选框组
下拉/选择/类型/类别select下拉选择框
开关/启用/是否激活switch开关切换
评分/星级/打分rate评分组件
颜色color颜色选择器
滑块/进度/百分比slider滑块组件

5.3 日期时间控件

用户描述关键词控件类型说明
日期/生日/入职日期date日期选择器
时间/几点time时间选择器

5.4 上传控件

用户描述关键词控件类型说明
图片/照片/头像imgupload图片上传
附件/文件/上传file-upload文件上传

5.5 高级控件

用户描述关键词控件类型说明
富文本/HTML内容editor富文本编辑器
MarkdownmarkdownMarkdown 编辑器
省市/地区/地址选择area-linkage省市级联动
地图/位置map地图组件
定位/GPSlocation定位组件
条码/二维码barcode条码组件
自动编号/流水号auto-number自动编号
手写签名/签字hand-sign手写签名
大写金额/中文大写capital-money金额转大写

5.6 组织架构控件

用户描述关键词控件类型说明
选人/审批人/负责人select-user用户选择组件
部门/选部门select-depart部门选择组件
岗位/选岗位select-depart-post岗位选择组件
分类树/树选择select-tree下拉树组件

5.7 关联和计算控件

用户描述关键词控件类型说明
表字典/弹窗选择table-dict表字典(popup 或模糊查询)
关联记录/引用link-record关联其他表单的记录
他表字段/自动填充link-field显示关联记录的字段值
公式/自动计算formula公式计算(求和/均值/自定义)
文本组合text-compose多字段值拼接显示

5.8 布局和子表

用户描述关键词控件类型说明
分隔符/分区divider表单区域分隔线
子表/明细/清单sub-table-design子表(行内可编辑明细表)

6. 字典数据源

对于 radioselectcheckbox 控件,支持两种数据源方式:

6.1 静态选项(默认)

用户直接描述选项值:

请假类型(下拉选择:事假/病假/年假/调休)

AI 自动生成静态选项配置。

6.2 系统字典

用户提到字典编码:

性别(单选,使用字典 sex)
优先级(下拉,字典 priority)

AI 自动配置字典数据源,运行时从系统字典表动态加载选项。

常用 JeecgBoot 系统字典:

字典编码说明典型值
sex性别1=男, 2=女
priority优先级L=低, M=中, H=高
valid_status有效状态0=无效, 1=有效
yn是否Y=是, N=否

7. 更多使用场景

7.1 带子表的表单

创建一个采购申请表单:
- 申请人(选人控件)
- 申请日期(日期)
- 采购明细子表:
- 物料名称
- 规格
- 数量(整数)
- 单价(金额)
- 小计(公式:数量×单价)

AI 会自动创建 sub-table-design 子表控件,子表内嵌入各字段控件。

7.2 带关联记录的表单

创建一个报销表单:
- 关联采购申请(关联记录,引用采购申请表单)
- 采购金额(他表字段,自动填充关联记录的总金额)
- 报销金额(金额,必填)
- 报销说明(多行文本)

AI 会自动配置 link-record 关联控件和 link-field 他表字段控件。

7.3 带分区布局的表单

创建员工信息表单:
--- 基本信息 ---
- 姓名、性别、手机号
--- 工作信息 ---
- 部门(选部门)、岗位、入职日期
--- 其他 ---
- 备注、附件

AI 会使用 divider 分隔线控件划分表单区域。

7.4 编辑已有表单

修改表单 qing_jia_shen_qing,加一个"审批意见"多行文本字段

AI 会查询已有表单设计 JSON,在现有字段基础上追加新字段,然后调用 PUT /desform/edit 保存。

8. 涉及的 API 接口

接口方法路径说明
创建表单POST/desform/add创建空表单(返回 result 为 null)
查询表单GET/desform/queryByCode?desformCode={code}按编码查询表单详情
保存设计PUT/desform/edit保存表单设计 JSON(需传 updateCount)

API 调用注意事项:

  1. POST /desform/add 返回的 resultnull,需要再调用 queryByCode 获取表单 ID
  2. PUT /desform/editupdateCount 必须传当前数据库中的值(不要 +1),后端会自动递增
  3. Windows 环境下必须使用 Python 调用 API(不要用 curl),避免中文编码问题

9. 菜单 SQL 模板

将设计器表单配置为系统菜单,使用户可以在左侧菜单中直接访问表单的数据列表页。

INSERT INTO sys_permission(
id, parent_id, name, url, component, component_name, redirect,
menu_type, perms, perms_type, sort_no, always_show, icon,
is_route, is_leaf, keep_alive, hidden, hide_tab,
description, status, del_flag, rule_flag,
create_by, create_time, update_by, update_time, internal_or_external
) VALUES (
'{menuId}', -- 菜单ID
NULL, -- 父菜单ID(NULL=一级菜单)
'{desformName}', -- 菜单名称(表单名称)
'/online/desform/list/{desformCode}', -- 路由URL(固定格式,用表单编码)
'super/online/desform/auto/AutoDesformDataList', -- 组件路径(固定值)
'AutoDesformDataList', -- 组件名(固定值)
NULL, 0, NULL, '1', 0.00, 0, NULL,
0, 1, 0, 0, 0, NULL, '1', 0, 0,
'admin', now(), NULL, NULL, 0
);

与 Online 表单菜单 SQL 的区别:

字段设计器表单 (desform)Online 表单
url/online/desform/list/{desformCode}/online/cgformList/{headId}
componentsuper/online/desform/auto/AutoDesformDataList1
component_nameAutoDesformDataListOnlineAutoList
路由标识使用表单编码(desformCode)使用配置ID(headId)

10. 常见问题

「该 code 已存在」怎么办?

表单编码重复。AI 会自动先查询是否已存在,如果存在则直接更新设计。

「当前版本已过时,请刷新重试」怎么办?

updateCount 传值错误。必须传 queryByCode 查到的当前值,不要手动 +1。

表单创建成功但看不到字段?

检查 desformDesignJson 是否正确保存到 edit 接口。add 只创建空表单,设计 JSON 需要通过 edit 单独保存。

设计器表单和 Online 表单有什么区别?

特性设计器表单 (desform)Online 表单
存储方式JSON 配置数据库元数据
渲染方式前端 JSON 渲染引擎后端自动生成 CRUD 页面
适用场景数据采集、审批表单、复杂布局管理后台标准 CRUD
是否建表自动建表(desform_data 存储)需要同步数据库建表
流程集成天然支持绑定工作流需要额外配置
控件丰富度30+ 种(含签名、公式、关联等)20+ 种(侧重数据展示)