# 前端约定 ## 优先参考的代码来源 - `ruoyi-modules/ruoyi-gen/src/main/resources/fm//*.ftl` - 默认 Vue 模板在 `fm/vue`,React 模板在 `fm/react` - 前端工程中与目标模块最接近的现有页面 当前 boot4 仓库通常只含后端与 generator 前端模板;如果前端工程不在当前仓库根目录,先以 generator 模板约定为准,再对照用户提供的前端工程或官方前端分支: - Vue 前端:`https://gitee.com/JavaLionLi/plus-ui/tree/6.X-Vue` - React 前端:`https://gitee.com/JavaLionLi/plus-ui/tree/6.X-React` ## 前端模板选择规则 - `gen_table.frontend_type` 存字符串,值直接对应 `fm` 下的模板目录,例如 `vue`、`react`。 - 生成器按 `fm//api.ts.ftl`、`types.ts.ftl`、`index.*.ftl`、`index-tree.*.ftl` 查找模板。 - 页面输出后缀由页面模板文件名决定:`index.vue.ftl` 输出 `index.vue`,`index.tsx.ftl` 输出 `index.tsx`。 - 新增其他前端时优先只新增 `fm/` 目录和对应 FTL 文件,不在 Java 代码里增加数字枚举或硬编码分支。 ## API 文件规则 - Vue 模板从 `@/utils/request` 引入 `request`,从 `@/utils/api-types` 引入 `AxiosPromise`,从 `@/api/types` 引入 `PageResult`。 - React 模板从 `@/api/request` 引入 `request`,从 `@/api/types` 引入 `R`、`PageResult`。 - 本模块类型:Vue 模板从 `@/api///types` 引入,React 模板从 `./types` 引入。 - Vue 列表接口通常返回 `AxiosPromise>`;React 列表接口通常返回 `request>>(...)`。 - 常规接口命名和路由保持: `listXxx` -> `GET ///list` `getXxx` -> `GET ///{id}` `addXxx` -> `POST //` `updateXxx` -> `PUT //` `delXxx` -> `DELETE ///{id or ids}` ## 类型文件规则 - 定义 `VO`、`Form`、`Query`。 - `Form` 通常继承 `BaseEntity`。 - 非树表页面的 `Query` 通常继承 `PageQuery`。 - 各类 ID 字段通常用 `string | number`。 - Java 数值类型通常映射为 `number`。 - Boolean 映射为 `boolean`。 - 其他生成字段默认多为 `string`。 - 存在日期范围查询时保留 `params`:Vue 模板通常是 `params?: any`,React 模板通常是 `params?: Record`。 ## Vue 页面规则 - 使用 `