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

57 lines
2.0 KiB
Markdown
Raw Normal View History

2026-08-14 16:54:03 +08:00
---
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. 在代码中使用枚举值而非硬编码字符串