Files
easygoadmin-wiki/EasyGoAdmin_GoFrame_AntdVue/zh/generator/web-ui.md
T
2026-10-20 21:53:26 +08:00

81 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 10.3 Web 管理界面
:::tip 概述
管理界面位于「工具 → 代码生成」(ui/src/views/tool/generator/):数据表清单分页浏览、代码预览、一键生成、批量生成。与 CLI 共用同一套生成核心。
:::
## 页面功能
| 功能 | 接口 | 权限 |
|------|------|------|
| 数据表清单 | GET /api/generator/page | sys:generator:page |
| 代码预览 | POST /api/generator/preview | sys:generator:generator |
| 一键生成 | POST /api/generator/generate | sys:generator:generator |
| 批量生成 | POST /api/generator/batchGenerate | sys: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 相关权限,
非管理员不应授予
```
## 界面操作注意
::: warning 覆盖确认
`generator.overwrite: true` 时生成即覆盖同名文件(含手工修改过的)——批量覆盖前:
1. 确认 config.yaml overwrite 设置
2. 手工改动多的模块临时改回 false
3. 或先 git 提交/备份再覆盖
:::
## 排障
| 症状 | 原因 |
|------|------|
| 表清单为空 | database 连接错/无表;非 MySQL 时注释列为空属正常 |
| 预览报错 | 模板渲染失败——查表结构特殊列(类型/注释) |
| 生成成功但菜单没出现 | 菜单创建成功但角色未勾选;或 parentMenuId 配置错(挂到了不存在的父级) |
| 生成成功但路由 404 | router.go 注册行写入失败(看 Route.Message);或未重启 |
| 字典没创建 | 枚举注释格式不对(须 `字段:1-x 2-y`);看 Dict 报告项状态 |