UNPKG

create-base

Version:

快速构建项目基础框架,支持vue/uni-app/后台管理模板等

43 lines (41 loc) 1.13 kB
import { login, getInfo } from '@/api/user' import { filterRoutes } from '@/utils/auth' import constantRoutes from '@/router/constant' import asyncRoutes from '@/router/async' export const useUserStore = defineStore('user', { state: () => ({ token: localStorage.getItem('token') || '', profile: {}, permissions: [], accessRoutes: [] }), getters: { hasToken: state => !!state.token }, actions: { // 登录 async login(userForm) { const { data } = await login(userForm) this.token = data.token localStorage.setItem('token', data.token) }, // 获取用户信息 async getInfo() { const { data } = await getInfo() this.profile = data.profile this.permissions = data.permissions return data }, // 退出登录 logout() { this.token = '' localStorage.removeItem('token') }, // 获取可访问的异步路由 getAsyncRoutes(permissions) { const newAsyncRoutes = filterRoutes(asyncRoutes, permissions) this.accessRoutes = constantRoutes.concat(newAsyncRoutes) return newAsyncRoutes } } })