9.17 枚举与全局设置
概述
本项目前端不引入 i18n(当前仅简体中文)。与"全局常量与设置"对应的体系是:enums/ 枚举常量 + settings/ 全局设置 + store/mutation-types 存储键。本节说明三者的组织与使用。
enums/ 枚举常量
| 文件 | 内容 |
|---|---|
| httpEnum.ts | RequestEnum(GET/POST…)、ResultEnum(SUCCESS=0/ERROR=1…)、ContentTypeEnum |
| pageEnum.ts | PageEnum(BASE_LOGIN 等页面路径常量) |
| cacheEnum.ts | 缓存键常量 |
| permissionsEnum.ts | 权限相关常量(如通配权限 *:*:*) |
| roleEnum.ts | 角色常量(ROLE_SUPER_ADMIN 等) |
| avatarEnum.ts / breakpointEnum.ts | 头像/断点枚举 |
ts
// 使用模式
import { ResultEnum } from '@/enums/httpEnum';
if (code === ResultEnum.SUCCESS) { ... }
import { ACCESS_TOKEN } from '@/store/mutation-types';前后端枚举对照:后端 consts(biz_err/log_type 等)定义真值,前端 enums 定义消费侧镜像——后端改枚举值须同步前端(破坏性变更流程)。
settings/ 全局设置
| 文件 | 内容 | 消费方 |
|---|---|---|
| projectSetting.ts | 布局模式/标签页/面包屑/水印等项目级设置 | layout |
| designSetting.ts | 主题色/暗黑/灰度/宽度等设计设置 | styles/主题 |
| componentSetting.ts | 分页 sizes 等组件默认 | components |
| animateSetting.ts | 页面动画 | layout/路由切换 |
设置经 Pinia store 持久化(用户偏好跨会话),部分可在系统设置页在线调整。
store/mutation-types(存储键)
text
ACCESS_TOKEN 令牌存储键
FIRST_ROUTE 首个路由标记
统一在 mutation-types.ts 定义——禁止散落魔法字符串为什么不用 i18n
text
当前版本仅服务简体中文场景:
* 后端 msg/字典文案均为中文
* 引入 vue-i18n 会带来文案键管理成本(25 表 + 字典 + 错误码全量翻译)
国际化演进方向(如需要):
1) 字典层天然支持多语言(dict_item 加 lang 维度或平行字典)
2) 前端引入 vue-i18n,UI 文案抽 key
3) 后端错误 msg 语义码化(前端按码翻译)
——属于大版本演进,当前文档不展开使用规约
- 常量优先放 enums/(跨页复用);仅页内用的常量放页内
- 后端枚举(log_type 41 值等)前端按值映射显示(映射表放 enums 或页内)
- 存储键统一 mutation-types(防拼写漂移)
- 设置项修改经 store action(勿直接改 settings 常量对象——它是默认值不是状态)
- 万能权限
*:*:*用 permissionsEnum 常量,勿硬编码字符串散落