mirror of
https://github.com/zclzone/vue-naive-admin.git
synced 2026-01-22 23:50:22 +08:00
60 lines
1.5 KiB
JavaScript
60 lines
1.5 KiB
JavaScript
/**********************************
|
|
* @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',
|
|
},
|
|
})
|