13 Commits

Author SHA1 Message Date
charilezhou
2aa992c88d docs(plop): 更新 README 文档
新增内容:
- 服务类型说明(CrudService/RelationCrudService/ManyToManyCrudService)
- 关系配置 DSL 语法(一对多/多对一/多对多)
- 种子脚本生成和执行说明
- 权限控制说明(@RequirePermission + PermissionGuard)
- 新增模板文件(page.hbs、module-seed.hbs)
- Helpers 完整列表(含 openBrace/closeBrace)
- FAQ 扩展(QueryDto 生成、JSX 花括号、种子脚本)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 20:46:50 +08:00
charilezhou
695f34bc3d refactor(plop): QueryDto 始终生成并在 controller 中使用
- dto.hbs: 移除 hasQueryDto 条件,始终生成 QueryDto 类
- controller.hbs: 始终导入使用 QueryDto 而非 PaginationQueryDto
- hasQueryDto 现只控制是否提取查询字段,不影响类型声明

便于后续扩展查询参数,无需修改 controller 导入

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 20:39:33 +08:00
charilezhou
1d204647fd feat(plop): 代码生成器改进
- Table 模板添加 error 状态渲染支持
- Controller 模板统一使用 PATCH 方法(update 和 restore)
- 修复 edit-dialog 模板花括号输出问题,添加 openBrace/closeBrace helper
- 简化 Table 模板的 refetch 逻辑

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 20:28:39 +08:00
charilezhou
c37ee29071 feat(plop): 生成的模块自动应用权限控制
后端 Controller:
- 添加 PermissionGuard 守卫
- 每个接口添加 @RequirePermission 装饰器
- 权限格式: {module}:create/read/update/delete

前端 Table:
- 使用 PermissionGuard 组件进行权限控制
- 新建按钮根据 create 权限显示/隐藏
- 编辑/删除/恢复按钮根据对应权限显示/隐藏
- 整个操作菜单根据 update/delete 权限显示/隐藏

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 19:57:28 +08:00
charilezhou
ed901250bd feat(plop): 添加菜单/权限种子脚本生成功能
- 新增种子脚本模板 module-seed.hbs
- 生成器新增「菜单/权限种子脚本」选项
- 添加菜单图标和排序的提示问题
- 生成的脚本包含 4 个 CRUD 权限和 1 个菜单项
- 支持独立运行或被主 seed.ts 导入调用
- 修复 ESM 模块导入路径(添加 .ts 扩展名)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 19:42:11 +08:00
charilezhou
331142d87a fix(plop): 修复 edit-dialog 模板 Handlebars 解析错误
使用 {{"{"}} 输出 JSX 花括号字面量,避免与三重大括号语法冲突

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 17:38:32 +08:00
charilezhou
3119460f13 feat(plop): 优化生成器支持 Prisma 关联关系
- 支持一对多/多对一关系定义并生成到 Prisma schema
- 简化流程:查询关联配置根据关系自动预填
- 修复 Handlebars 模板 HTML 转义导致的乱码问题
- 修复 controller 模板缺少 Prisma 导入的问题
- 新增页面模板 (page.hbs) 生成前端页面
- 添加 FindAllParams/PaginationQueryDto 索引签名修复类型兼容

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 17:30:18 +08:00
charilezhou
e5b3285519 fix(plop): 修复生成文件路径和 app.module.ts 正则
- 添加 --dest . 参数确保文件生成到项目根目录
- 修复 app.module.ts 导入语句和 imports 数组的正则匹配

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 16:19:54 +08:00
charilezhou
8c904c419a feat(plop): 关联配置支持从 Schema 选择模型和字段
- 新增 schema-parser.ts 解析 Prisma schema 文件
- 关联关系先选择模型,再编辑预填的配置
- 多对多关系自动推断中间表配置
- 可用字段作为注释显示,方便用户参考

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 16:14:48 +08:00
charilezhou
31598d79ae fix(plop): 修复模板文件路径
模板路径应相对于 plopfile 所在目录,移除多余的 plop/ 前缀

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 16:11:46 +08:00
charilezhou
f492e7c172 feat(plop): 模板支持关联关系和多对多生成
- service.hbs: 支持三种服务类型,生成 @CrudOptions 关联配置和 DTO 转换方法
- dto.hbs: 生成 BriefDto、DetailResponseDto、AssignDto
- controller.hbs: 支持关联查询端点和多对多分配端点
- types.hbs: 添加关联类型接口定义

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 16:03:12 +08:00
charilezhou
f126e03cf1 feat(plop): 代码生成器支持 CrudService 分层架构
- 新增 relation-parser.ts 关联关系 DSL 解析器
- 生成器支持三种服务类型选择:CrudService/RelationCrudService/ManyToManyCrudService
- 添加关联关系、多对多关系、统计关系配置问题
- 修复 helpers 导入路径扩展名问题

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 16:02:48 +08:00
charilezhou
473c2c1510 feat: 添加 plop 代码生成器模板
添加组件和模块的代码生成器模板,提高开发效率。

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 14:08:56 +08:00