1
0
mirror of https://github.com/zclzone/vue-naive-admin.git synced 2026-01-22 23:50:22 +08:00
Files
vue-naive-admin/src/store/modules/auth.js
2024-09-06 14:46:07 +08:00

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',
},
})