--- name: jjb-enum-usage description: 定义 JJB 项目枚举值使用规范。在维护 src/enumerate/enum、使用枚举值替代硬编码或创建接口时识别枚举字段时使用。 --- # 项目页面结构 ## 枚举值使用规范 - **强制要求**:后端返回数据中包含的枚举值字段(如 `siteRedirectEnum`、`statusEnum` 等),必须统一维护到 `src/enumerate/enum/index.js` 文件中 - **禁止行为**:禁止在代码中直接硬编码枚举值进行判断比较 - **枚举值定义示例**(在 `src/enumerate/enum/index.js` 中): ```javascript // 站点跳转类型枚举 export const SITE_REDIRECT_ENUM = { // 站内跳转 SITE_REDIRECT_IN: 'SITE_REDIRECT_IN', // 站外跳转 SITE_REDIRECT_OUT: 'SITE_REDIRECT_OUT', }; // 用户状态枚举 export const USER_STATUS_ENUM = { // 启用 ENABLED: 'ENABLED', // 禁用 DISABLED: 'DISABLED', // 待审核 PENDING: 'PENDING', }; ``` - **使用示例**: ```javascript import { SITE_REDIRECT_ENUM } from '~/enumerate/enum'; // ✅ 正确:使用枚举值进行比较 if (record.siteRedirectEnum === SITE_REDIRECT_ENUM.SITE_REDIRECT_IN) { // 站内跳转逻辑 } // ❌ 错误:禁止硬编码枚举值 // if (record.siteRedirectEnum === 'SITE_REDIRECT_IN') { // // 错误做法 // } ``` - **AI 接口创建流程**: - **一般情况**:当用户要求新增接口时,AI **必须** 反问用户:"请提供接口返回的数据格式(JSON 示例)" - **例外情况**:如果提示语中明确要求使用【gen-api-code】工具生成接口文件,则无需询问接口数据格式,直接使用工具生成即可 - 根据用户提供的数据格式(或工具生成的结果),AI 需要: 1. 识别数据中的枚举值字段(通常字段名包含 `Enum`、`Type`、`Status` 等关键词) 2. 在创建接口定义的同时,在 `src/enumerate/enum/index.js` 中创建对应的枚举值定义 3. 在代码中使用枚举值而非硬编码字符串