Skip to content

9.17 枚举与全局设置 ​

概述

本项目前端不引入 i18n(当前仅简体中文)。与"全局常量与设置"对应的体系是:enums/ 枚举常量 + settings/ 全局设置 + store/mutation-types 存储键。本节说明三者的组织与使用。

enums/ 枚举常量 ​

文件内容
httpEnum.tsRequestEnum(GET/POST…)、ResultEnum(SUCCESS=0/ERROR=1…)、ContentTypeEnum
pageEnum.tsPageEnum(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 常量,勿硬编码字符串散落

小蚂蚁云团队 · 提供技术支持