safety-eval-service-frontend/.cursor/skills/specs/03-项目页面结构/09-枚举值使用规范/SKILL.md

2.0 KiB
Raw Blame History

name description
jjb-enum-usage 定义 JJB 项目枚举值使用规范。在维护 src/enumerate/enum、使用枚举值替代硬编码或创建接口时识别枚举字段时使用。

项目页面结构

枚举值使用规范

  • 强制要求:后端返回数据中包含的枚举值字段(如 siteRedirectEnumstatusEnum 等),必须统一维护到 src/enumerate/enum/index.js 文件中

  • 禁止行为:禁止在代码中直接硬编码枚举值进行判断比较

  • 枚举值定义示例(在 src/enumerate/enum/index.js 中):

    // 站点跳转类型枚举
    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',
    };
    
  • 使用示例

    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. 识别数据中的枚举值字段(通常字段名包含 EnumTypeStatus 等关键词)
      2. 在创建接口定义的同时,在 src/enumerate/enum/index.js 中创建对应的枚举值定义
      3. 在代码中使用枚举值而非硬编码字符串