自动填成当前登陆

This commit is contained in:
zhonghua.li
2026-05-02 17:52:09 +08:00
parent 421912174d
commit 7ba2bc6e4b
4 changed files with 84 additions and 4 deletions

View File

@@ -5,6 +5,7 @@ const getters = {
avatar: state => state.user.avatar,
name: state => state.user.name,
phone: state => state.user.phone,
account: state => state.user.account,
permission_routes: state => state.permission.routes,
cachedViews: state => state.tagsView.cachedViews,
visitedViews: state => state.tagsView.visitedViews

View File

@@ -1,14 +1,33 @@
import { login, getInfo } from '@/api/user'
import { getToken, setToken, removeToken } from '@/utils/auth'
import { getToken, setToken, removeToken, getLoginAccount, setLoginAccount, removeLoginAccount } from '@/utils/auth'
import { removeBusinessHeaders } from '@/utils/business-headers'
import { resetRouter } from '@/router'
/** 从登录/用户信息 payload 中解析登录账号(与展示姓名区分) */
function pickLoginAccount(payload, fallback) {
if (!payload || typeof payload !== 'object') {
return (fallback || '').trim()
}
const v =
payload.loginAccount ||
payload.username ||
payload.account ||
payload.accountName ||
payload.userAccount ||
payload.userName ||
''
return String(v || fallback || '').trim()
}
/** 从登录/用户信息 payload 中解析展示名,兼容多种后端字段名 */
function pickUserDisplayFields(payload, fallbackAccount) {
if (!payload || typeof payload !== 'object') {
return { userName: (fallbackAccount || '').trim(), avatar: '', phone: '' }
}
const userName =
payload.realName ||
payload.actualName ||
payload.nickName ||
payload.userName ||
payload.name ||
payload.loginAccount ||
@@ -28,7 +47,8 @@ const getDefaultState = () => {
token: getToken(),
name: '',
avatar: '',
phone: ''
phone: '',
account: getLoginAccount() || ''
}
}
@@ -49,6 +69,9 @@ const mutations = {
},
SET_PHONE: (state, phone) => {
state.phone = phone
},
SET_ACCOUNT: (state, account) => {
state.account = account
}
}
@@ -71,6 +94,9 @@ const actions = {
commit('SET_NAME', profile.userName)
commit('SET_AVATAR', profile.avatar || '')
commit('SET_PHONE', profile.phone || '')
const acc = pickLoginAccount(data, username.trim())
commit('SET_ACCOUNT', acc)
setLoginAccount(acc)
resolve()
}).catch(error => {
reject(error)
@@ -95,6 +121,9 @@ const actions = {
commit('SET_NAME', profile.userName)
commit('SET_AVATAR', profile.avatar || '')
commit('SET_PHONE', profile.phone || '')
const acc = pickLoginAccount(row, state.account || getLoginAccount())
commit('SET_ACCOUNT', acc)
if (acc) setLoginAccount(acc)
resolve(data)
}).catch(error => {
reject(error)
@@ -106,6 +135,7 @@ const actions = {
logout({ commit, state }) {
return new Promise((resolve, reject) => {
removeToken() // must remove token first
removeLoginAccount()
removeBusinessHeaders()
resetRouter()
commit('RESET_STATE')
@@ -117,6 +147,7 @@ const actions = {
resetToken({ commit }) {
return new Promise(resolve => {
removeToken() // must remove token first
removeLoginAccount()
removeBusinessHeaders()
commit('RESET_STATE')
resolve()