插件开发代码生成工具 - 使用文档
插件开发代码生成工具
功能特点
- 代码更改差异化对比:生成代码前可预览差异,对比本地文件与生成代码的差异
- CRUD 日志:记录所有代码生成操作,便于追踪历史记录
- 支持还原历史记录:可还原到之前的生成记录,避免误操作
- 回收站:支持软删除,可恢复误删除的记录
- 选项卡:支持选项卡筛选功能,便于数据分类管理
- SQL 预览:支持预览安装、卸载、升级 SQL,确认无误后再执行
- 菜单自动生成:通过扫描控制器中的权限注解自动生成菜单,支持多级目录结构
- 菜单更新:菜单中的图标、标题、排序不会覆盖原有设置,除非删除菜单
- 表格配置:支持操作栏固定、操作栏宽度(默认或根据按钮样式自动计算)、表格高度(自适应/屏幕可见/固定)
- 表单配置:支持弹出方式(对话框/抽屉)、表单宽度、表单高度(自动撑开/屏幕高度/自定义)、显示全屏图标
- 字段配置:支持表单宽度类型(固定/默认)、编辑时是否禁止、列表宽度类型(固定/最小/默认)
插件创建功能说明
1) 创建插件后会生成哪些文件
从插件项目中创建插件后,后端会在 server/plugin/{namespace}/ 生成/维护以下文件:
info.ini:插件基础信息(从插件项目中创建)local.sql:业务表结构源文件(用于生成 install/update/uninstall)install.sql:安装 SQL(可自动生成/写入)uninstall.sql:卸载 SQL(可自动生成/写入)update.sql:升级 SQL(按需维护)test.sql:测试数据(可选)
2) info.ini 字段约定
可通过可视化界面创建/编辑。
插件生成功能说明(代码生成)
待测兼容提示:以下功能目前处于待测试状态,使用时请注意:
- EloquentORM
- 模型关联
- 树形CURD
典型流程(推荐):
- 准备表结构:在数据库创建业务表(或维护
local.sql)。
表名规范:sa_插件标识符_分组名称_业务名称
示例:sa_addondev_test_category、sa_addondev_user_login - 装载数据表:在插件项目 → 生成代码中装载表结构到生成器配置。
- 字段配置:检查每个字段的
view_type与options是否符合预期(见下文“生成规范”)。 - 预览:先预览确认生成文件内容,也可以选择性选择覆盖的文件。
- SQL 预览与更新菜单:在插件项目中,可通过 SQL 预览功能更新菜单。菜单生成通过扫描插件目录下控制器中的权限注解自动生成。菜单中的图标、标题、排序不会覆盖原有的,除非删除菜单。
- 生成到项目 / 下载:生成到项目或下载 zip,再根据实际业务微调。
SQL 注意事项(生成 SQL / 应用 SQL / 更新菜单)
1) 插件 SQL 文件职责
local.sql:业务表结构源文件。
生成时按类型过滤:- install:仅保留
CREATE TABLE IF NOT EXISTS ... - update:排除建表语句,保留其他变更 SQL
- uninstall:解析表名生成
DROP TABLE IF EXISTS ...
- install:仅保留
install.sql:安装 SQL(表结构 + 菜单 + 追加 SQL)uninstall.sql:卸载/回滚 SQLupdate.sql:升级增量 SQL(建议配合版本管理)test.sql:测试数据(可选)
2) test.sql 追加规则
- 生成 install 类型 SQL 时,若
test.sql存在且非空,会被追加到末尾。 - 默认不保证幂等(多次执行可能主键冲突)。如需幂等,请使用
INSERT ... ON DUPLICATE KEY UPDATE或先清理再插入。
字段 → 组件映射(核心对照表)
| 字段 | 字段名称 | 字段类型 | 字段说明 | 组件 | 关键参数/说明 |
|---|---|---|---|---|---|
| 任意 | 任意 | int/integer/tinyint/smallint/mediumint/bigint | - | 数字输入框 | step 默认 1 |
| 任意 | 任意 | float/double/decimal | - | 数字输入框 | step 按小数位自动计算 |
| 任意 | 任意 | text/mediumtext/longtext | - | 文本域 | rows 可选;query_type: like |
| 任意 | 任意 | datetime/timestamp | - | 日期选择器 | mode: datetime;query_type: between |
| 任意 | 任意 | date | - | 日期选择器 | mode: date;query_type: between |
| 任意 | 任意 | enum / varchar | 值1=标签1,值2=标签2 | 动态单选框 / 动态下拉框 | 需 dataSource(枚举值),dataField/dataPrimaryKey注释格式: 字段注释:值1=标签1,值2=标签2示例: 状态:0=隐藏,1=正常,2=推荐 |
| 任意 | 任意 | set / varchar | 值1=标签1,值2=标签2 | 动态复选框 / 动态下拉多选框 | dataSource 必填;query_type: find_in_set注释格式: 字段注释:值1=标签1,值2=标签2示例: 静态复选框:a=选项A,b=选项B,c=选项C |
| *_id | user_id / admin_id / category_id | int/bigint | - | 动态下拉框 | 关联单选;dataSource 指向接口 |
| *_ids | user_ids / admin_ids / category_ids | varchar/text | - | 动态下拉多选框 | 关联多选;dataMaxSelectLimit 可控 |
| weigh / sort | weigh / sort | int | - | 数字输入框 | 排序字段 |
| *time | create_time / update_time | datetime/timestamp | - | 日期选择器 | mode: datetime |
| *image | avatar / cover_image | varchar/text | - | 动态图片上传 | 单图;multiple: false |
| *images | images / gallery | varchar/text | - | 动态图片上传 | 多图;multiple: true,limit 默认 10 |
| *file | file / attachment | varchar/text | - | 动态文件上传 | 单文件 |
| *files | files / attachments | varchar/text | - | 动态文件上传 | 多文件;multiple: true |
| *content | content / description | text/mediumtext/longtext | - | 富文本编辑器 | 富文本 |
| *switch | status / is_enabled | tinyint | - | 开关 | 开关 |
| *range | date_range / time_range | datetime/timestamp | - | 日期选择器 | isRange: true |
| *tag / *tags | tag / tags | varchar/text | - | 标签输入框 | 标签输入 |
| *table / *tables | table_id / table_ids | varchar/text | - | 动态表格选择器 | 表格选择;dataSource 指向接口 |
请参考
local.sql的示例
组件参数规范
各组件参数可通过控件配置进行设置,包括数据源、字段映射、上传限制、日期格式等。详细参数说明可在代码生成页面的字段配置中查看。
插件 SQL 规范总结
| 文件 | 用途 | 生成逻辑 |
|---|---|---|
local.sql | 业务表结构源文件 | 后台预览/生成时写入,不覆盖已有内容 |
install.sql | 安装脚本 | 从 local.sql 提取建表语句 + 菜单 + 追加 test.sql |
uninstall.sql | 卸载脚本 | 自动解析 local.sql 中的表名生成 DROP |
update.sql | 升级脚本 | 手动维护,生成时不覆盖 |
test.sql | 测试数据 | 生成 install 时自动追加到末尾 |
演示站信息
- 地址:http://43.142.105.109:8787/index.html
- 账号:
admin - 密码:
123456