| | |
| | | import { store } from '@/store' |
| | | import { defineStore } from 'pinia' |
| | | import { getAccessToken, removeToken } from '@/utils/auth' |
| | | import { CACHE_KEY, useCache, deleteUserCache } from '@/hooks/web/useCache' |
| | | import { getInfo, loginOut } from '@/api/login' |
| | | import { |
| | | CACHE_KEY, |
| | | useCache, |
| | | deleteUserCache, |
| | | useSessionCache, |
| | | deleteUserSessionCache |
| | | } from '@/hooks/web/useCache' |
| | | import {getAppInfo, getInfo, loginOut} from '@/api/login' |
| | | import * as AppApi from '@/api/system/app' |
| | | |
| | | const { wsCache } = useCache() |
| | | const { wsSessionCache } = useSessionCache() |
| | | |
| | | interface UserVO { |
| | | id: number |
| | |
| | | this.resetState() |
| | | return null |
| | | } |
| | | let userInfo = wsCache.get(CACHE_KEY.USER) |
| | | if (!userInfo) { |
| | | userInfo = await getInfo() |
| | | } |
| | | const userInfo = await getInfo() |
| | | const appInfo = await getAppInfo() |
| | | this.permissions = userInfo.permissions |
| | | this.roles = userInfo.roles |
| | | this.user = userInfo.user |
| | | this.isSetUser = true |
| | | wsCache.set(CACHE_KEY.USER, userInfo) |
| | | wsCache.set(CACHE_KEY.ROLE_ROUTERS, userInfo.menus) |
| | | //如果localStorage中有应用code,说明是从平台点击应用跳转过来 |
| | | const appId = localStorage.getItem(import.meta.env.VITE_APP_CODE) |
| | | if(appId) { |
| | | const data = await AppApi.getAppMenuList(appId) |
| | | wsSessionCache.set(CACHE_KEY.ROLE_ROUTERS, data) |
| | | } else { |
| | | wsSessionCache.set(CACHE_KEY.ROLE_ROUTERS, appInfo.menus) |
| | | } |
| | | }, |
| | | async setUserAvatarAction(avatar: string) { |
| | | const userInfo = wsCache.get(CACHE_KEY.USER) |
| | |
| | | await loginOut() |
| | | removeToken() |
| | | deleteUserCache() // 删除用户缓存 |
| | | deleteUserSessionCache() |
| | | localStorage.clear() |
| | | this.resetState() |
| | | }, |
| | | resetState() { |