插件开发代码生成工具 - 使用文档

插件开发代码生成工具


功能特点

  • 代码更改差异化对比:生成代码前可预览差异,对比本地文件与生成代码的差异
  • 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

典型流程(推荐):

  1. 准备表结构:在数据库创建业务表(或维护 local.sql)。
    表名规范:sa_插件标识符_分组名称_业务名称
    示例:sa_addondev_test_categorysa_addondev_user_login
  2. 装载数据表:在插件项目生成代码中装载表结构到生成器配置。
  3. 字段配置:检查每个字段的 view_typeoptions 是否符合预期(见下文“生成规范”)。
  4. 预览:先预览确认生成文件内容,也可以选择性选择覆盖的文件。
  5. SQL 预览与更新菜单:在插件项目中,可通过 SQL 预览功能更新菜单。菜单生成通过扫描插件目录下控制器中的权限注解自动生成。菜单中的图标、标题、排序不会覆盖原有的,除非删除菜单。
  6. 生成到项目 / 下载:生成到项目或下载 zip,再根据实际业务微调。

SQL 注意事项(生成 SQL / 应用 SQL / 更新菜单)

1) 插件 SQL 文件职责

  • local.sql:业务表结构源文件。
    生成时按类型过滤:
    • install:仅保留 CREATE TABLE IF NOT EXISTS ...
    • update:排除建表语句,保留其他变更 SQL
    • uninstall:解析表名生成 DROP TABLE IF EXISTS ...
  • install.sql:安装 SQL(表结构 + 菜单 + 追加 SQL)
  • uninstall.sql:卸载/回滚 SQL
  • update.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: datetimequery_type: between
任意任意date-日期选择器mode: datequery_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
*_iduser_id / admin_id / category_idint/bigint-动态下拉框关联单选;dataSource 指向接口
*_idsuser_ids / admin_ids / category_idsvarchar/text-动态下拉多选框关联多选;dataMaxSelectLimit 可控
weigh / sortweigh / sortint-数字输入框排序字段
*timecreate_time / update_timedatetime/timestamp-日期选择器mode: datetime
*imageavatar / cover_imagevarchar/text-动态图片上传单图;multiple: false
*imagesimages / galleryvarchar/text-动态图片上传多图;multiple: truelimit 默认 10
*filefile / attachmentvarchar/text-动态文件上传单文件
*filesfiles / attachmentsvarchar/text-动态文件上传多文件;multiple: true
*contentcontent / descriptiontext/mediumtext/longtext-富文本编辑器富文本
*switchstatus / is_enabledtinyint-开关开关
*rangedate_range / time_rangedatetime/timestamp-日期选择器isRange: true
*tag / *tagstag / tagsvarchar/text-标签输入框标签输入
*table / *tablestable_id / table_idsvarchar/text-动态表格选择器表格选择;dataSource 指向接口

请参考 local.sql 的示例


组件参数规范

各组件参数可通过控件配置进行设置,包括数据源、字段映射、上传限制、日期格式等。详细参数说明可在代码生成页面的字段配置中查看。


插件 SQL 规范总结

文件用途生成逻辑
local.sql业务表结构源文件后台预览/生成时写入,不覆盖已有内容
install.sql安装脚本local.sql 提取建表语句 + 菜单 + 追加 test.sql
uninstall.sql卸载脚本自动解析 local.sql 中的表名生成 DROP
update.sql升级脚本手动维护,生成时不覆盖
test.sql测试数据生成 install 时自动追加到末尾

演示站信息