签入版本
This commit is contained in:
@@ -1,84 +1,39 @@
|
||||
# I. 前端 Enums 速查
|
||||
# J. 前端枚举速查
|
||||
|
||||
:::tip 概述
|
||||
前端枚举定义在 `ui/src/enums/` 目录下,用于统一管理常量值。
|
||||
:::tip 说明
|
||||
`ui/src/enums` 枚举常量速查。统一 `as const` + 类型导出,禁止散落裸字符串常量。
|
||||
:::
|
||||
|
||||
## httpEnum
|
||||
## 枚举清单
|
||||
|
||||
**文件**:`enums/httpEnum.ts`
|
||||
|
||||
```typescript
|
||||
// 请求方法
|
||||
export enum RequestEnum {
|
||||
GET = 'GET',
|
||||
POST = 'POST',
|
||||
PUT = 'PUT',
|
||||
DELETE = 'DELETE',
|
||||
}
|
||||
|
||||
// 响应状态码
|
||||
export enum ResultEnum {
|
||||
SUCCESS = 0, // 业务成功
|
||||
FAIL = 1, // 业务失败
|
||||
}
|
||||
|
||||
// 内容类型
|
||||
export enum ContentTypeEnum {
|
||||
JSON = 'application/json',
|
||||
FORM_URLENCODED = 'application/x-www-form-urlencoded',
|
||||
}
|
||||
```
|
||||
|
||||
## pageEnum
|
||||
|
||||
**文件**:`enums/pageEnum.ts`
|
||||
|
||||
```typescript
|
||||
export enum PageEnum {
|
||||
// 登录页
|
||||
BASE_LOGIN = '/login',
|
||||
// 首页
|
||||
BASE_HOME = '/dashboard',
|
||||
// 错误页
|
||||
BASE_ERROR_LOG = '/exception/404',
|
||||
REDIRECT = '/redirect',
|
||||
}
|
||||
```
|
||||
| 文件 | 内容 | 典型消费方 |
|
||||
|---|---|---|
|
||||
| pageEnum.ts | 页面路径常量(BASE_LOGIN 等) | 路由守卫、登录跳转 |
|
||||
| httpEnum.ts | HTTP 常量(结果类型、超时、重试) | http 拦截器 |
|
||||
| permissionsEnum.ts | 权限相关常量 | usePermission、指令 |
|
||||
| roleEnum.ts | 角色常量 | 超管判定展示 |
|
||||
| cacheEnum.ts | 缓存键常量 | Storage 相关 |
|
||||
| breakpointEnum.ts | 响应式断点 | 布局、侧边栏折叠 |
|
||||
| avatarEnum.ts | 头像相关常量 | 个人中心 |
|
||||
|
||||
## 使用示例
|
||||
|
||||
```typescript
|
||||
import { ResultEnum } from '@/enums/httpEnum';
|
||||
import { PageEnum } from '@/enums/pageEnum';
|
||||
|
||||
// 判断响应是否成功
|
||||
if (response.code === ResultEnum.SUCCESS) {
|
||||
// 处理成功
|
||||
}
|
||||
|
||||
// 跳转登录页
|
||||
router.push(PageEnum.BASE_LOGIN);
|
||||
|
||||
// 判断请求方法
|
||||
if (method === RequestEnum.POST) {
|
||||
// POST 请求
|
||||
}
|
||||
const loginPath = PageEnum.BASE_LOGIN;
|
||||
```
|
||||
|
||||
## 自定义枚举
|
||||
## 与后端常量的关系
|
||||
|
||||
```typescript
|
||||
// 添加新枚举时,在 enums/ 目录下创建文件
|
||||
// ui/src/enums/statusEnum.ts
|
||||
前后端共享语义的值(如超管通配权限码 `*:*:*`、数据范围档位 1–4)两端各自有常量定义——修改任一侧必须同步另一侧,并更新本速查。
|
||||
|
||||
export enum UserStatus {
|
||||
ENABLE = 1,
|
||||
DISABLE = 2,
|
||||
}
|
||||
## 编写规约
|
||||
|
||||
export enum ArticleStatus {
|
||||
DRAFT = 0,
|
||||
PUBLISHED = 1,
|
||||
}
|
||||
```
|
||||
- 键名大写下划线,字符串值为主
|
||||
- 带类型导出(`typeof Xxx` / 联合类型)
|
||||
- 新枚举先确认无既有文件覆盖该域
|
||||
|
||||
## 相关
|
||||
|
||||
- [9.18 Hooks 与枚举](/zh/frontend/hooks-enums.html)
|
||||
|
||||
Reference in New Issue
Block a user