|
1 | 1 | /** |
2 | 2 | * 项目常量统一管理 |
3 | | - * |
4 | | - * 存储键命名规范: |
5 | | - * - 使用小写 + 冒号分隔 + 名称空间 |
6 | | - * - 格式:myapp:user:token |
7 | | - * - 便于清理和避免冲突 |
8 | | - * - 当需要版本升级、兼容旧数据,可在 key 中加入版本如 myapp:v2:user:token。 |
| 3 | + * 存储键命名规范:{prefix}:{namespace}:{key} |
9 | 4 | */ |
10 | 5 |
|
11 | | -// 🏷️ 应用前缀常量 |
12 | 6 | export const APP_PREFIX = "vea"; |
13 | 7 |
|
14 | | -// 📦 存储键统一管理 |
15 | 8 | export const STORAGE_KEYS = { |
16 | | - // 🔐 用户认证相关 |
17 | | - ACCESS_TOKEN: `${APP_PREFIX}:auth:access_token`, // JWT 访问令牌,用于 API 请求认证 |
18 | | - REFRESH_TOKEN: `${APP_PREFIX}:auth:refresh_token`, // JWT 刷新令牌,用于获取新的访问令牌 |
19 | | - REMEMBER_ME: `${APP_PREFIX}:auth:remember_me`, // 记住登录状态,控制登录持久化 |
20 | | - |
21 | | - // 🏗️ 系统核心相关 |
22 | | - DICT_CACHE: `${APP_PREFIX}:system:dict_cache`, // 字典数据缓存,存储系统字典配置信息 |
23 | | - |
24 | | - // 🎨 系统设置相关 |
25 | | - SHOW_TAGS_VIEW: `${APP_PREFIX}:ui:show_tags_view`, // 是否显示标签页视图 |
26 | | - SHOW_APP_LOGO: `${APP_PREFIX}:ui:show_app_logo`, // 是否显示应用 Logo |
27 | | - SHOW_WATERMARK: `${APP_PREFIX}:ui:show_watermark`, // 是否显示水印 |
28 | | - LAYOUT: `${APP_PREFIX}:ui:layout`, // 布局模式:vertical(垂直) | horizontal(水平) | mix(混合) |
29 | | - SIDEBAR_COLOR_SCHEME: `${APP_PREFIX}:ui:sidebar_color_scheme`, // 侧边栏颜色方案:light(浅色) | dark(深色) |
30 | | - THEME: `${APP_PREFIX}:ui:theme`, // 主题模式:light(浅色) | dark(深色) | auto(自动) |
31 | | - THEME_COLOR: `${APP_PREFIX}:ui:theme_color`, // 主题色,用于自定义主题色彩 |
32 | | - |
33 | | - // 📱 应用状态相关 |
34 | | - DEVICE: `${APP_PREFIX}:app:device`, // 设备类型:desktop(桌面) | mobile(移动端) | tablet(平板) |
35 | | - SIZE: `${APP_PREFIX}:app:size`, // 屏幕尺寸:large(大) | medium(中) | small(小) |
36 | | - LANGUAGE: `${APP_PREFIX}:app:language`, // 应用语言:zh-CN(中文) | en-US(英文) 等 |
37 | | - SIDEBAR_STATUS: `${APP_PREFIX}:app:sidebar_status`, // 侧边栏状态:opened(展开) | closed(收起) |
| 9 | + // 用户认证相关 |
| 10 | + ACCESS_TOKEN: `${APP_PREFIX}:auth:access_token`, // JWT访问令牌 |
| 11 | + REFRESH_TOKEN: `${APP_PREFIX}:auth:refresh_token`, // JWT刷新令牌 |
| 12 | + REMEMBER_ME: `${APP_PREFIX}:auth:remember_me`, // 记住登录状态 |
| 13 | + |
| 14 | + // 系统核心相关 |
| 15 | + DICT_CACHE: `${APP_PREFIX}:system:dict_cache`, // 字典数据缓存 |
| 16 | + |
| 17 | + // UI设置相关 |
| 18 | + SHOW_TAGS_VIEW: `${APP_PREFIX}:ui:show_tags_view`, // 显示标签页视图 |
| 19 | + SHOW_APP_LOGO: `${APP_PREFIX}:ui:show_app_logo`, // 显示应用Logo |
| 20 | + SHOW_WATERMARK: `${APP_PREFIX}:ui:show_watermark`, // 显示水印 |
| 21 | + LAYOUT: `${APP_PREFIX}:ui:layout`, // 布局模式 |
| 22 | + SIDEBAR_COLOR_SCHEME: `${APP_PREFIX}:ui:sidebar_color_scheme`, // 侧边栏配色方案 |
| 23 | + THEME: `${APP_PREFIX}:ui:theme`, // 主题模式 |
| 24 | + THEME_COLOR: `${APP_PREFIX}:ui:theme_color`, // 主题色 |
| 25 | + |
| 26 | + // 应用状态相关 |
| 27 | + DEVICE: `${APP_PREFIX}:app:device`, // 设备类型 |
| 28 | + SIZE: `${APP_PREFIX}:app:size`, // 屏幕尺寸 |
| 29 | + LANGUAGE: `${APP_PREFIX}:app:language`, // 应用语言 |
| 30 | + SIDEBAR_STATUS: `${APP_PREFIX}:app:sidebar_status`, // 侧边栏状态 |
38 | 31 | ACTIVE_TOP_MENU_PATH: `${APP_PREFIX}:app:active_top_menu_path`, // 当前激活的顶部菜单路径 |
39 | 32 | } as const; |
40 | 33 |
|
41 | | -// 🎯 功能分组的键映射对象(向后兼容) |
42 | | -// 这些分组对象提供了按功能分类的存储键访问方式,便于在特定场景下批量操作 |
43 | | - |
44 | | -// 👤 用户角色相关 |
45 | | -export const ROLE_ROOT = "ROOT"; // 超级管理员角色标识 |
| 34 | +export const ROLE_ROOT = "ROOT"; // 超级管理员角色 |
46 | 35 |
|
47 | | -// 🔐 认证相关键集合 |
48 | | -// 包含所有与用户认证、授权相关的存储键 |
| 36 | +// 分组键集合(便于批量操作) |
49 | 37 | export const AUTH_KEYS = { |
50 | | - ACCESS_TOKEN: STORAGE_KEYS.ACCESS_TOKEN, // JWT 访问令牌 |
51 | | - REFRESH_TOKEN: STORAGE_KEYS.REFRESH_TOKEN, // JWT 刷新令牌 |
52 | | - REMEMBER_ME: STORAGE_KEYS.REMEMBER_ME, // 记住登录状态 |
| 38 | + ACCESS_TOKEN: STORAGE_KEYS.ACCESS_TOKEN, |
| 39 | + REFRESH_TOKEN: STORAGE_KEYS.REFRESH_TOKEN, |
| 40 | + REMEMBER_ME: STORAGE_KEYS.REMEMBER_ME, |
53 | 41 | } as const; |
54 | 42 |
|
55 | | -// 🏗️ 系统核心相关键集合 |
56 | | -// 包含系统核心功能相关的存储键 |
57 | 43 | export const SYSTEM_KEYS = { |
58 | | - DICT_CACHE: STORAGE_KEYS.DICT_CACHE, // 字典数据缓存 |
| 44 | + DICT_CACHE: STORAGE_KEYS.DICT_CACHE, |
59 | 45 | } as const; |
60 | 46 |
|
61 | | -// 🎨 设置相关键集合 |
62 | | -// 包含所有用户界面设置和主题相关的存储键 |
63 | 47 | export const SETTINGS_KEYS = { |
64 | | - SHOW_TAGS_VIEW: STORAGE_KEYS.SHOW_TAGS_VIEW, // 是否显示标签页视图 |
65 | | - SHOW_APP_LOGO: STORAGE_KEYS.SHOW_APP_LOGO, // 是否显示应用 Logo |
66 | | - SHOW_WATERMARK: STORAGE_KEYS.SHOW_WATERMARK, // 是否显示水印 |
67 | | - SIDEBAR_COLOR_SCHEME: STORAGE_KEYS.SIDEBAR_COLOR_SCHEME, // 侧边栏颜色方案 |
68 | | - LAYOUT: STORAGE_KEYS.LAYOUT, // 布局模式 |
69 | | - THEME_COLOR: STORAGE_KEYS.THEME_COLOR, // 主题色 |
70 | | - THEME: STORAGE_KEYS.THEME, // 主题模式 |
| 48 | + SHOW_TAGS_VIEW: STORAGE_KEYS.SHOW_TAGS_VIEW, |
| 49 | + SHOW_APP_LOGO: STORAGE_KEYS.SHOW_APP_LOGO, |
| 50 | + SHOW_WATERMARK: STORAGE_KEYS.SHOW_WATERMARK, |
| 51 | + SIDEBAR_COLOR_SCHEME: STORAGE_KEYS.SIDEBAR_COLOR_SCHEME, |
| 52 | + LAYOUT: STORAGE_KEYS.LAYOUT, |
| 53 | + THEME_COLOR: STORAGE_KEYS.THEME_COLOR, |
| 54 | + THEME: STORAGE_KEYS.THEME, |
71 | 55 | } as const; |
72 | 56 |
|
73 | | -// 📱 应用状态相关键集合 |
74 | | -// 包含应用运行时状态相关的存储键 |
75 | 57 | export const APP_KEYS = { |
76 | | - DEVICE: STORAGE_KEYS.DEVICE, // 设备类型 |
77 | | - SIZE: STORAGE_KEYS.SIZE, // 屏幕尺寸 |
78 | | - LANGUAGE: STORAGE_KEYS.LANGUAGE, // 应用语言 |
79 | | - SIDEBAR_STATUS: STORAGE_KEYS.SIDEBAR_STATUS, // 侧边栏状态 |
80 | | - ACTIVE_TOP_MENU_PATH: STORAGE_KEYS.ACTIVE_TOP_MENU_PATH, // 当前激活的顶部菜单路径 |
| 58 | + DEVICE: STORAGE_KEYS.DEVICE, |
| 59 | + SIZE: STORAGE_KEYS.SIZE, |
| 60 | + LANGUAGE: STORAGE_KEYS.LANGUAGE, |
| 61 | + SIDEBAR_STATUS: STORAGE_KEYS.SIDEBAR_STATUS, |
| 62 | + ACTIVE_TOP_MENU_PATH: STORAGE_KEYS.ACTIVE_TOP_MENU_PATH, |
81 | 63 | } as const; |
82 | 64 |
|
83 | | -// 📦 所有存储键的统一集合 |
84 | | -// 包含所有存储键的完整映射,用于批量操作或遍历 |
85 | 65 | export const ALL_STORAGE_KEYS = { |
86 | | - ...AUTH_KEYS, // 认证相关键 |
87 | | - ...SYSTEM_KEYS, // 系统核心键 |
88 | | - ...SETTINGS_KEYS, // 设置相关键 |
89 | | - ...APP_KEYS, // 应用状态键 |
| 66 | + ...AUTH_KEYS, |
| 67 | + ...SYSTEM_KEYS, |
| 68 | + ...SETTINGS_KEYS, |
| 69 | + ...APP_KEYS, |
90 | 70 | } as const; |
91 | 71 |
|
92 | | -// 🔧 类型定义 |
93 | 72 | export type StorageKey = (typeof STORAGE_KEYS)[keyof typeof STORAGE_KEYS]; |
94 | | - |
95 | | -// 🧹 存储清理工具 |
96 | | -export const STORAGE_UTILS = { |
97 | | - // 清理所有项目相关的存储 |
98 | | - clearAll: () => { |
99 | | - const keys = Object.values(STORAGE_KEYS); |
100 | | - keys.forEach((key) => { |
101 | | - localStorage.removeItem(key); |
102 | | - sessionStorage.removeItem(key); |
103 | | - }); |
104 | | - }, |
105 | | - |
106 | | - // 清理特定分类的存储 |
107 | | - clearByCategory: (category: "auth" | "system" | "ui" | "app") => { |
108 | | - const prefix = `${APP_PREFIX}:${category}:`; |
109 | | - const keys = Object.values(STORAGE_KEYS).filter((key) => key.startsWith(prefix)); |
110 | | - keys.forEach((key) => { |
111 | | - localStorage.removeItem(key); |
112 | | - sessionStorage.removeItem(key); |
113 | | - }); |
114 | | - }, |
115 | | - |
116 | | - // 获取所有项目相关的存储键 |
117 | | - getAllKeys: () => Object.values(STORAGE_KEYS), |
118 | | -} as const; |
0 commit comments