# 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 常量,勿硬编码字符串散落