Skills — Online表单自动生成
1. 功能介绍
jeecg-onlform 是 Claude Code 的 AI Skill,能够将自然语言需求自动转换为 JeecgBoot Online 表单,完成从表单配置 → 同步数据库 → 生成菜单 SQL 的全流程自动化。
核心能力:
- 用自然语言描述表单需求,AI 自动推导字段类型和前端控件
- 自动创建 Online 表单配置(调用 addAll API)
- 自动同步数据库(调用 doDbSynch API)
- 自动生成菜单 SQL(可选执行)
- 支持对已有表单进行增量编辑(加字段/改字段/删字段)
- 智能匹配系统字典
不确定该用哪个 Skill?请查看 AI Skills 技能清单。
2. 前置条件
使用前需要准备两个信息:
| 信息 | 获取方式 | 示例 |
|---|---|---|
| API 地址 | JeecgBoot 后端服务地址 | https://boot3.jeecg.com/jeecgboot |
| X-Access-Token | 浏览器 F12 → Network → 任意请求的 Request Headers | eyJhbGciOiJIUzI1NiIs... |
获取 Token 步骤:
- 登录 JeecgBoot 后台管理系统
- 按 F12 打开浏览器开发者工具
- 切换到 Network(网络)面板
- 点击页面上任意操作触发一个请求
- 点击该请求,在 Request Headers 中找到
X-Access-Token的值并复制
3. 使用方式
在 Claude Code 中直接用自然语言描述需求即可。以下是触发关键词:
创建Online表单、创建online表、新建表单配置、online表单、
在线表单、低代码表单、配置表、建online表
4. 实战示例:创建物料表
4.1 第一步:描述需求
直接告诉 AI 你需要什么表:
创建一个Online物料表
AI 会根据"物料"这个业务语义,自动推导出合理的字段列表。
4.2 第二步:AI 展示配置摘要
AI 会展示完整的表结构摘要,包括 6 个标准系统字段 和推导出的业务字段,等待你确认:
## Online 表单配置摘要
- 表名:biz_material
- 表描述:物料表
- 表类型:单表
### 标准系统字段(6个,每个Online表必须包含)
| 序号 | 字段名 | 标签 | DB类型 | 说明 |
|------|--------------|---------|------------|---------------|
| 1 | id | 主键 | string(36) | 主键,自动生成 |
| 2 | create_by | 创建人 | string(50) | 系统自动填充 |
| 3 | create_time | 创建时间 | Datetime | 系统自动填充 |
| 4 | update_by | 更新人 | string(50) | 系统自动填充 |
| 5 | update_time | 更新时间 | Datetime | 系统自动填充 |
| 6 | sys_org_code | 所属部门 | string(50) | 系统自动填充 |
### 业务字段(11个)
| 序号 | 字段名 | 标签 | 控件类型 | DB类型 | 必填 | 查询 | 字典 |
|------|----------|---------|---------|-----------------|------|---------|-------------|
| 7 | code | 物料编码 | text | string(50) | 是 | 是(模糊) | - |
| 8 | name | 物料名称 | text | string(100) | 是 | 是(模糊) | - |
| 9 | category | 物料分类 | list | string(50) | 否 | 是(精确) | - |
| 10 | spec | 规格型号 | text | string(200) | 否 | 否 | - |
| 11 | unit | 计量单位 | text | string(20) | 否 | 否 | - |
| 12 | price | 单价 | text | BigDecimal(10,2)| 否 | 否 | - |
| 13 | stock_qty| 库存数量 | text | int(9) | 否 | 否 | - |
| 14 | supplier | 供应商 | text | string(200) | 否 | 否 | - |
| 15 | status | 状态 | radio | string(10) | 否 | 是(精确) | valid_status|
| 16 | image | 图片 | image | string(500) | 否 | 否 | - |
| 17 | remark | 备注 | textarea| string(500) | 否 | 否 | - |
合计:6 个标准字段 + 11 个业务字段 = 17 个字段
### 索引
| 索引名 | 字段 | 类型 |
|----------------|------|--------|
| idx_unique_code| code | unique |
确认以上配置?(y/n)
关于标准字段: 每个 Online 表都必须包含 6 个标准系统字段(id、create_by、create_time、update_by、update_time、sys_org_code),这些字段由系统自动维护,不在表单中显示,但在数据库表中必须存在。
4.3 第三步:提供 Token 并确认
确认配置后,提供 API 地址和 Token:
x-access-token
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.xxxxx
4.4 第四步:AI 自动执行
AI 会依次执行以下操作:
1. 调用 addAll API → 创建表单配置 ✓
2. 调用 head/list API → 获取 headId ✓
3. 调用 doDbSynch API → 同步数据库 ✓
4. 输出菜单 SQL → 供用户选择是否执行
4.5 第五步:查看结果
## Online 表单创建成功
- 表名:biz_material
- 表描述:物料表
- 字段数量:6 个标准字段 + 11 个业务字段 = 17 个字段
- 数据库同步:已完成 ✓
- headId:e38e235fca2241a8a7bc32c677ad9c81
### 菜单 SQL(可选)
INSERT INTO sys_permission(...)
VALUES ('e38e235f...', NULL, '物料表', '/online/cgformList/e38e235f...', ...);
### 后续操作
1. 点击「功能测试」预览表单效果
2. 如需配置菜单,执行上方 SQL 或在后台手动「添加菜单」
4.6 最终效果
在 JeecgBoot 后台 → Online表单开发 中可以看到刚创建的 biz_material 表:
- 点击 「功能测试」 即可预览完整的增删改查表单
- 点击 「添加菜单」 可将其加入系统左侧导航
- 点击 「编辑」 可手动调整字段配置
5. 更多使用场景
5.1 指定字段创建
可以在需求中详细描述字段:
创建一个Online请假申请表,包含以下字段:
- 姓名(必填,模糊查询)
- 请假类型(下拉选择,字典 leave_type,精确查询)
- 开始日期(日期选择,范围查询)
- 结束日期(日期选择)
- 请假天数(数字)
- 请假原因(多行文本)
- 附件(文件上传)
- 审批人(用户选择,精确查询)
5.2 给已有表单加字段
给 biz_material 表加一个"仓库"字段,下拉选择
AI 会:
- 查询已有表单配置
- 在现有字段基础上追加新字段
- 调用 editAll API 更新配置
- 自动同步数据库
5.3 创建主子表
创建一个Online采购订单主子表:
- 主表:采购订单(订单编号、供应商、采购日期、总金额、状态)
- 子表:采购明细(物料名称、规格、数量、单价、金额)
AI 会自动:
- 主表设置
tableType=2,subTableStr关联子表 - 子表设置
tableType=3,relationType=0(一对多),外键关联主表
5.4 创建树表
创建一个Online产品分类树表,包含分类名称、编码、排序号
AI 会自动:
- 设置
isTree='Y' - 添加
pid、has_child树形结构字段
6. 智能字段推导规则
AI 根据用户描述的语义关键词自动推导字段的数据库类型和前端控件:
| 语义关键词 | 控件类型 | DB 类型 | 说明 |
|---|---|---|---|
| 名称/标题/编码/文本 | text(单行文本) | string(100) | 默认文本输入 |
| 金额/价格/费用 | text | BigDecimal(10,2) | 数字精度2位 |
| 数量/个数/数目 | text | int(9) | 整数 |
| 状态/类型/级别 (单选) | radio(单选) | string(50) | 自动匹配字典 |
| 下拉/选择/类别 | list(下拉) | string(50) | 自动匹配字典 |
| 多选/标签/兴趣 | checkbox(多选) | string(200) | 字典多选 |
| 是否/开关/启用 | switch(开关) | string(50) | 布尔切换 |
| 日期/生日 | date(日期) | Date | 日期选择器 |
| 日期时间/下单时间 | datetime(日期时间) | Datetime | 日期时间选择器 |
| 备注/描述/说明 | textarea(多行文本) | string(500) | 文本域 |
| 富文本/内容/HTML | umeditor(富文本) | Text | 富文本编辑器 |
| 图片/头像/照片 | image(图片上传) | string(500) | 图片上传组件 |
| 文件/附件 | file(文件上传) | string(500) | 文件上传组件 |
| 用户/负责人/审批人 | sel_user(用户选择) | string(100) | 用户选择弹窗 |
| 部门/组织/所属部门 | sel_depart(部门选择) | string(100) | 部门选择弹窗 |
| 省市区/地区/地址 | pca(省市区) | string(100) | 省市区联动 |
| 分类/分类树 | cat_tree(分类树) | string(100) | 分类字典树 |
7. 涉及的 API 接口
| 接口 | 方法 | 路径 | 说明 |
|---|---|---|---|
| 创建表单 | POST | /online/cgform/api/addAll | 创建完整表单配置(head + fields + indexs) |
| 编辑表单 | PUT | /online/cgform/api/editAll | 编辑已有表单配置 |
| 查询表单详情 | GET | /online/cgform/api/getByHead?id={headId} | 获取完整配置(编辑时用) |
| 查询表单列表 | GET | /online/cgform/head/list?tableName={name} | 按表名搜索,获取 headId |
| 同步数据库 | POST | /online/cgform/api/doDbSynch/{headId}/{syncType} | normal=增量同步,force=强制重建 |
8. 常见问题
Token 过期怎么办?
API 返回 401 或认证失败时,需要重新登录 JeecgBoot 后台,从 F12 中获取新的 X-Access-Token。
表已存在怎么办?
如果数据库中已有同名表,addAll 会报错 "数据库表[xxx]已存在"。此时应使用编辑模式(先查询已有配置,再调用 editAll)。
同步数据库 normal 和 force 的区别?
| 模式 | 说明 | 数据安全 |
|---|---|---|
normal | 增量同步:新增字段、修改字段属性,不删除已有字段 | 安全,不丢数据 |
force | 强制同步:删除原表并重建 | 危险,所有数据丢失!仅开发环境使用 |
如何修改已创建的表单?
两种方式:
- 在 JeecgBoot 后台手动编辑:Online表单开发 → 找到表单 → 编辑
- 通过 AI 增量修改:告诉 AI "给 xxx 表加一个 xxx 字段",AI 会自动调用 editAll API
菜单 SQL 必须执行吗?
不是必须的。你也可以在 JeecgBoot 后台 → Online表单开发 → 找到表单 → 点击「添加菜单」按钮来手动配置菜单。SQL 方式适合批量部署或版本管理。