代码生成(树表)
树表生成适用于部门、分类、区域、菜单等有父子层级的数据。RuoYi Office 代码生成器通过 CodegenTemplateTypeEnum.TREE 区分树表模式,并在生成时使用 ListReqVO 替代普通分页查询,减少不必要的 PageReqVO。
适用场景
| 场景 | 说明 |
|---|---|
| 分类管理 | 商品分类、产品分类、知识分类 |
| 组织结构 | 部门、区域、分组 |
| 菜单/目录 | 多级菜单、文档目录、权限树 |
生成前必须确认
- 父级字段:例如
parent_id,用于建立树结构。 - 名称字段:例如
name,用于前端树节点展示。 - 排序字段:建议保留
sort,便于同级排序。 - 根节点约定:明确根节点使用
0、null还是固定 ID。
生成链路
与单表的差异
| 项目 | 单表 | 树表 |
|---|---|---|
| 查询方式 | 分页查询 | 列表查询后前端/后端组树 |
| 请求 VO | PageReqVO | ListReqVO |
| 页面结构 | 表格分页 | 树形表格或树控件 |
| 删除校验 | 只校验当前记录 | 通常要校验子节点 |
二开建议
- 删除节点前检查是否存在子节点或被业务引用。
- 大树数据不要一次性加载全部,可按需改成懒加载。
- 树节点名称、编码、排序最好加唯一性或同级唯一校验。
- 如果涉及多租户,根节点初始化要按租户隔离。
排查清单
| 现象 | 优先检查 |
|---|---|
| 树不展示层级 | 父级字段是否配置正确;根节点值是否一致 |
| 删除父节点后数据异常 | 是否校验子节点;是否存在外键或业务引用 |
| 查询很慢 | 树数据量是否过大;是否需要懒加载或缓存 |
| 前端节点名称为空 | 名称字段是否选错;字段是否参与列表返回 |
