Skip to content

10.3 Web 管理界面 ​

概述

管理界面位于「工具 → 代码生成」(ui/src/views/tool/generator/):数据表清单分页浏览、代码预览、一键生成、批量生成。与 CLI 共用同一套生成核心。

页面功能 ​

功能接口权限
数据表清单GET /api/generator/pagesys:generator:page
代码预览POST /api/generator/previewsys:generator:generator
一键生成POST /api/generator/generatesys:generator:generator
批量生成POST /api/generator/batchGeneratesys:generator:batchGenerator

页面文件:ui/src/views/tool/generator/(index.vue / edit.vue / columns.ts / querySchemas.ts——页面自身也是三件套模式)。

使用流程 ​

text
1. 打开「工具 → 代码生成」→ 数据表清单(含表注释/行数/引擎)
2. 选择目标表 → 「预览」查看将产出的文件与内容(不落盘)
3. 确认 → 「生成」→ 结果报告:
   Generated[] / Skipped[] / Overwritten[] / Failed[]
   Menu{Success, MenuId, Message}
   Dict[]{Dict, Name, Items, Status}
   Route{Success, Message}
4. 后端 go build + 重启
5. 角色管理勾选新权限节点 → 访问新菜单验证

预览的价值 ​

text
preview 返回 List[]{Path, Content}(渲染结果全文,不落盘):
  * 生成前核对文件路径与命名(域名/驼峰是否符合预期)
  * 核对筛选字段/枚举识别是否正确
  * 作为 code review 的第一道关口
  * 对照学习生成模板的产出风格

批量生成报告 ​

text
BatchGenerate 返回 List[]{Table, Success, Generated, Skipped, Overwritten, Failed, Message, Menu, Dict, Route}
Message 格式:"生成 N,跳过 N,覆盖 N,失败 N"

批量语义:
  每表独立成败(一表失败不影响其他)
  幂等副作用逐表执行(菜单已存在则跳过)

权限与安全 ​

text
生成器权限码特例:sys:generator:generator | sys:generator:batchGenerator
(非 sys:generator:generate——注意拼写)
日志 logType=generate(19 代码生成)——生成操作全留痕
生成器写文件系统(api/controller/logic 等目录)——收紧 generator 相关权限,
非管理员不应授予

界面操作注意 ​

覆盖确认

generator.overwrite: true 时生成即覆盖同名文件(含手工修改过的)——批量覆盖前:

  1. 确认 config.yaml overwrite 设置
  2. 手工改动多的模块临时改回 false
  3. 或先 git 提交/备份再覆盖

排障 ​

症状原因
表清单为空database 连接错/无表;非 MySQL 时注释列为空属正常
预览报错模板渲染失败——查表结构特殊列(类型/注释)
生成成功但菜单没出现菜单创建成功但角色未勾选;或 parentMenuId 配置错(挂到了不存在的父级)
生成成功但路由 404router.go 注册行写入失败(看 Route.Message);或未重启
字典没创建枚举注释格式不对(须 字段:1-x 2-y);看 Dict 报告项状态

小蚂蚁云团队 · 提供技术支持