签入版本

This commit is contained in:
2026-09-29 09:49:04 +08:00
commit 04eec2664c
210 changed files with 37515 additions and 0 deletions
@@ -0,0 +1,131 @@
# H. 前端 Store 速查
:::tip 概述
前端使用 Pinia 进行全局状态管理,核心 Store 定义在 `ui/src/store/modules/` 目录下。
:::
## userStore
**文件**:`store/modules/user.ts`
### 状态
| 字段 | 类型 | 说明 |
|------|------|------|
| `token` | string | JWT Token |
| `username` | string | 用户名 |
| `avatar` | string | 头像 URL |
| `permissions` | string[] | 权限列表 |
| `info` | object | 用户信息 |
### Actions
| Action | 说明 | 返回 |
|--------|------|------|
| `login(userInfo)` | 登录 | Promise |
| `GetInfo()` | 获取用户信息 | Promise |
| `logout()` | 登出 | Promise |
### 使用示例
```typescript
import { useUserStore } from '@/store/modules/user';
const userStore = useUserStore();
// 登录
await userStore.login({ username: 'admin', password: '123456' });
// 获取用户信息
const info = userStore.getUserInfo;
const permissions = userStore.getPermissions;
// 登出
await userStore.logout();
```
---
## asyncRouteStore
**文件**:`store/modules/asyncRoute.ts`
### 状态
| 字段 | 类型 | 说明 |
|------|------|------|
| `menus` | array | 菜单列表 |
| `keepAliveComponents` | string[] | 缓存的组件名 |
| `isDynamicAddedRoute` | boolean | 是否已添加动态路由 |
### Actions
| Action | 说明 |
|--------|------|
| `generateRoutes(userInfo)` | 从后端获取菜单并生成路由 |
| `setDynamicAddedRoute(flag)` | 设置动态路由添加状态 |
| `setKeepAliveComponents(components)` | 设置 keep-alive 组件列表 |
---
## projectSettingStore
**文件**:`store/modules/projectSetting.ts`
| 字段 | 说明 |
|------|------|
| `navMode` | 导航模式(侧边/顶部) |
| `navTheme` | 导航主题(暗色/亮色) |
| `isShowMenuBar` | 是否显示菜单栏 |
| `isCollapse` | 菜单是否折叠 |
---
## ossConfigStore
**文件**:`store/modules/ossConfig.ts`
| 字段 | 说明 |
|------|------|
| `ossConfig` | 云存储配置 |
路由守卫中初始化,用于文件上传。
---
## designSettingStore
**文件**:`store/modules/designSetting.ts`
| 字段 | 说明 |
|------|------|
| `appTheme` | 主题色 |
| `darkMode` | 是否暗色模式 |
---
## tabsViewStore
**文件**:`store/modules/tabsView.ts`
| 字段 | 说明 |
|------|------|
| `tabsList` | 标签页列表 |
| Action | 说明 |
|--------|------|
| `addTab(route)` | 添加标签 |
| `removeTab(route)` | 关闭标签 |
| `closeOtherTabs(route)` | 关闭其他标签 |
| `closeAllTabs()` | 关闭所有标签 |
---
## 在组件外使用
```typescript
// 在 setup 外使用 Store
import { useUserStoreWidthOut } from '@/store/modules/user';
const userStore = useUserStoreWidthOut();
```