优化backend端相关功能

This commit is contained in:
2026-09-05 17:28:40 +08:00
parent 3d53f03246
commit 0f74abc5d4
25 changed files with 781 additions and 440 deletions
+24 -1
View File
@@ -1,5 +1,6 @@
import { defineStore } from 'pinia'
import { ref, reactive } from 'vue'
import { getCurrentUser } from '@/api/login'
// 用户信息类型
const defaultUser = {
@@ -8,6 +9,7 @@ const defaultUser = {
name: '',
group_id: '',
type: 'backend',
tenant_name: '',
avatar: ''
}
@@ -29,8 +31,27 @@ export const useAuthStore = defineStore('auth', () => {
}
}
// 从后端拉取最新用户信息(含租户名称),用于已有会话补充 tenant_name
async function fetchCurrentUser() {
if (!token.value) return
try {
const res = await getCurrentUser()
if (res && res.code === 200 && res.data) {
Object.assign(user, res.data)
localStorage.setItem('userInfo', JSON.stringify({ ...user }))
}
} catch (e) {
// 静默失败,不影响登录态
console.error('Failed to fetch current user info:', e)
}
}
// 初始化时加载用户信息
loadUserFromCache()
// 若已登录但缺少租户名称,异步从后端补齐
if (token.value) {
fetchCurrentUser()
}
// 保存登录信息(token 和用户信息)
function setLoginInfo(loginData) {
@@ -42,6 +63,7 @@ export const useAuthStore = defineStore('auth', () => {
name: userInfo.name || '',
group_id: userInfo.group_id || '',
type: 'backend',
tenant_name: userInfo.tenant_name || '',
tid: userInfo.tid || '',
avatar: userInfo.avatar || ''
}
@@ -101,7 +123,8 @@ export const useAuthStore = defineStore('auth', () => {
setToken,
clearToken,
checkAuth,
updateUserInfo
updateUserInfo,
fetchCurrentUser
}
})