import{_ as i,o as a,c as n,a2 as h}from"./chunks/framework.BbmSSMjL.js";const E=JSON.parse('{"title":"I. 前端 Enums 速查","description":"","frontmatter":{},"headers":[],"relativePath":"zh/appendix/enums.md","filePath":"zh/appendix/enums.md"}'),t={name:"zh/appendix/enums.md"};function k(p,s,l,e,d,r){return a(),n("div",null,[...s[0]||(s[0]=[h(`
概述
前端枚举与常量定义在 ui/src/enums/ 目录下,全局存储键名在 ui/src/store/mutation-types.ts。
文件:ui/src/enums/httpEnum.ts
/**
* @description: 请求结果集
*/
export enum ResultEnum {
SUCCESS = 0, // 本项目成功码(统一响应 code=0)
ERROR = 1, // 业务失败
TIMEOUT = 401, // Token 过期
TYPE = 'success',
}
/**
* @description: 请求方法
*/
export enum RequestEnum {
GET = 'GET',
POST = 'POST',
PATCH = 'PATCH',
PUT = 'PUT',
DELETE = 'DELETE',
}
/**
* @description: 常用的 contentType 类型
*/
export enum ContentTypeEnum {
JSON = 'application/json;charset=UTF-8',
TEXT = 'text/plain;charset=UTF-8',
FORM_URLENCODED = 'application/x-www-form-urlencoded;charset=UTF-8',
FORM_DATA = 'multipart/form-data;charset=UTF-8',
}文件:ui/src/enums/pageEnum.ts
export enum PageEnum {
// 登录
BASE_LOGIN = '/login',
BASE_LOGIN_NAME = 'Login',
// 重定向
REDIRECT = '/redirect',
REDIRECT_NAME = 'Redirect',
// 首页
BASE_HOME = '/dashboard',
// 首页跳转默认路由
BASE_HOME_REDIRECT = '/dashboard/console',
// 错误
ERROR_PAGE_NAME = 'ErrorPage',
}| 文件 | 导出 | 说明 |
|---|---|---|
avatarEnum.ts | avatarEnum | 默认头像资源路径(avatar-1 ~ 6) |
breakpointEnum.ts | sizeEnum / screenEnum / screenMap | 响应式断点(XS 480 ~ XXL 1600) |
cacheEnum.ts | TOKEN_KEY、USER_INFO_KEY、ROLES_KEY 等 | 本地缓存键名常量 |
permissionsEnum.ts | PermissionsEnum(interface) | 权限项类型 { value, label } |
roleEnum.ts | RoleEnum | 角色(admin / normal) |
文件:ui/src/store/mutation-types.ts — Storage / Pinia 使用的全局键名:
export const ACCESS_TOKEN = 'ACCESS-TOKEN'; // 用户 token
export const CURRENT_USER = 'CURRENT-USER'; // 当前用户信息
export const IS_LOCKSCREEN = 'IS-LOCKSCREEN'; // 是否锁屏
export const TABS_ROUTES = 'TABS-ROUTES'; // 标签页
export const FIRST_ROUTE = 'FIRST-ROUTE'; // 菜单第一个路由import { ResultEnum } from '@/enums/httpEnum';
import { PageEnum } from '@/enums/pageEnum';
import { ACCESS_TOKEN } from '@/store/mutation-types';
// 判断响应是否成功
if (code === ResultEnum.SUCCESS) { ... }
// 跳转登录页
router.push(PageEnum.BASE_LOGIN);
// 读取 token
const token = storage.get(ACCESS_TOKEN, '');新增业务枚举放在 ui/src/enums/ 下,文件名以 Enum 结尾(如 statusEnum.ts),导出 enum 或常量对象:
// ui/src/enums/statusEnum.ts
export enum UserStatus {
ENABLE = 1,
DISABLE = 2,
}