68 lines
2.6 KiB
Markdown
68 lines
2.6 KiB
Markdown
# 9.17 枚举与全局设置
|
||
|
||
:::tip 概述
|
||
本项目前端不引入 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 常量,勿硬编码字符串散落
|