app1文件漏传 #58
Merged
hnu202326010125
merged 1 commits from luoyuehang_branch into develop 1 month ago
@ -0,0 +1,82 @@
|
||||
// src/stores/auth.js
|
||||
import { defineStore } from 'pinia'
|
||||
import { ref, computed } from 'vue'
|
||||
import router from '@/router/index.js'
|
||||
|
||||
export const useAuthStore = defineStore('auth', () => {
|
||||
// 状态
|
||||
const user = ref(null)
|
||||
const token = ref(localStorage.getItem('token'))
|
||||
const isAuthenticated = computed(() => !!token.value && !!user.value)
|
||||
|
||||
// 登录
|
||||
const login = (userData, authToken) => {
|
||||
user.value = userData
|
||||
token.value = authToken
|
||||
|
||||
// 存储到本地
|
||||
localStorage.setItem('token', authToken)
|
||||
localStorage.setItem('user', JSON.stringify(userData))
|
||||
}
|
||||
|
||||
// 获取用户信息
|
||||
const getUserInfo = () => {
|
||||
if (!user.value) {
|
||||
const storedUser = localStorage.getItem('user')
|
||||
if (storedUser) {
|
||||
user.value = JSON.parse(storedUser)
|
||||
}
|
||||
}
|
||||
return user.value
|
||||
}
|
||||
|
||||
// 获取用户类型
|
||||
const getUserType = computed(() => {
|
||||
return user.value?.userType || localStorage.getItem('userType')
|
||||
})
|
||||
|
||||
// 获取维修人员ID
|
||||
const getRepairmanId = computed(() => {
|
||||
return user.value?.repairmanId || localStorage.getItem('repairmanId')
|
||||
})
|
||||
|
||||
// 登出
|
||||
const logout = () => {
|
||||
user.value = null
|
||||
token.value = null
|
||||
|
||||
// 清除本地存储
|
||||
localStorage.removeItem('token')
|
||||
localStorage.removeItem('user')
|
||||
localStorage.removeItem('userType')
|
||||
localStorage.removeItem('repairmanId')
|
||||
localStorage.removeItem('userId')
|
||||
localStorage.removeItem('username')
|
||||
|
||||
// 跳转到登录页
|
||||
router.push('/')
|
||||
}
|
||||
|
||||
// 初始化时从本地存储恢复
|
||||
const initFromStorage = () => {
|
||||
const storedToken = localStorage.getItem('token')
|
||||
const storedUser = localStorage.getItem('user')
|
||||
|
||||
if (storedToken && storedUser) {
|
||||
token.value = storedToken
|
||||
user.value = JSON.parse(storedUser)
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
user,
|
||||
token,
|
||||
isAuthenticated,
|
||||
getUserType,
|
||||
getRepairmanId,
|
||||
login,
|
||||
logout,
|
||||
getUserInfo,
|
||||
initFromStorage
|
||||
}
|
||||
})
|
||||
Loading…
Reference in new issue