签入版本
This commit is contained in:
@@ -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();
|
||||
```
|
||||
Reference in New Issue
Block a user