/********************************** * @Author: Ronnie Zhang * @LastEditor: Ronnie Zhang * @LastEditTime: 2023/12/05 21:25:39 * @Email: zclzone@outlook.com * Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top **********************************/ import { usePermissionStore, useRouterStore, useTabStore, useUserStore } from '@/store' import { defineStore } from 'pinia' export const useAuthStore = defineStore('auth', { state: () => ({ accessToken: undefined, }), actions: { setToken({ accessToken }) { this.accessToken = accessToken }, resetToken() { this.$reset() }, toLogin() { const { router, route } = useRouterStore() router.replace({ path: '/login', query: route.query, }) }, async switchCurrentRole(data) { this.resetLoginState() await nextTick() this.setToken(data) }, resetLoginState() { const { resetUser } = useUserStore() const { resetRouter } = useRouterStore() const { resetPermission, accessRoutes } = usePermissionStore() const { resetTabs } = useTabStore() // 重置路由 resetRouter(accessRoutes) // 重置用户 resetUser() // 重置权限 resetPermission() // 重置Tabs resetTabs() // 重置token this.resetToken() }, async logout() { this.resetLoginState() this.toLogin() }, }, persist: { key: 'vue-naivue-admin_auth', }, })