解决中文编码错误
This commit is contained in:
@@ -3,6 +3,26 @@ import { getToken, setToken, removeToken } from '@/utils/auth'
|
||||
import { removeBusinessHeaders } from '@/utils/business-headers'
|
||||
import { resetRouter } from '@/router'
|
||||
|
||||
/** 从登录/用户信息 payload 中解析展示名,兼容多种后端字段名 */
|
||||
function pickUserDisplayFields(payload, fallbackAccount) {
|
||||
if (!payload || typeof payload !== 'object') {
|
||||
return { userName: (fallbackAccount || '').trim(), avatar: '', phone: '' }
|
||||
}
|
||||
const userName =
|
||||
payload.userName ||
|
||||
payload.name ||
|
||||
payload.loginAccount ||
|
||||
payload.user_name ||
|
||||
payload.accountName ||
|
||||
(fallbackAccount || '').trim() ||
|
||||
''
|
||||
return {
|
||||
userName,
|
||||
avatar: payload.avatar != null ? payload.avatar : '',
|
||||
phone: payload.phone || payload.mobile || payload.telephone || ''
|
||||
}
|
||||
}
|
||||
|
||||
const getDefaultState = () => {
|
||||
return {
|
||||
token: getToken(),
|
||||
@@ -39,8 +59,18 @@ const actions = {
|
||||
return new Promise((resolve, reject) => {
|
||||
login({ username: username.trim(), password: password }).then(response => {
|
||||
const { data } = response
|
||||
if (!data || !data.token) {
|
||||
reject(new Error('登录响应缺少 token,请检查接口或联系管理员'))
|
||||
return
|
||||
}
|
||||
commit('SET_TOKEN', data.token)
|
||||
setToken(data.token)
|
||||
// 登录接口已返回用户信息时直接写入 store,避免路由守卫再去调 getUserInfoByToken
|
||||
//(该接口若失败或未对接,会清除 token 并退回登录页,表现为「登录成功却进不了系统」)
|
||||
const profile = pickUserDisplayFields(data, username)
|
||||
commit('SET_NAME', profile.userName)
|
||||
commit('SET_AVATAR', profile.avatar || '')
|
||||
commit('SET_PHONE', profile.phone || '')
|
||||
resolve()
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
@@ -57,14 +87,14 @@ const actions = {
|
||||
if (!data) {
|
||||
return reject('Verification failed, please Login again.')
|
||||
}
|
||||
console.log('getInfo 0812 :', data)
|
||||
const { userName, avatar, phone } = data
|
||||
console.log('getInfo userName 0812 :', userName)
|
||||
console.log('getInfo avatar 0812 :', avatar)
|
||||
console.log('getInfo phone 0812 :', phone)
|
||||
commit('SET_NAME', userName)
|
||||
commit('SET_AVATAR', avatar)
|
||||
commit('SET_PHONE', phone || '')
|
||||
const row = typeof data === 'object' && data !== null && !Array.isArray(data) ? data : {}
|
||||
const profile = pickUserDisplayFields(row, '')
|
||||
if (!profile.userName) {
|
||||
return reject('获取用户信息失败:缺少用户名字段,请检查 getUserInfoByToken 返回结构')
|
||||
}
|
||||
commit('SET_NAME', profile.userName)
|
||||
commit('SET_AVATAR', profile.avatar || '')
|
||||
commit('SET_PHONE', profile.phone || '')
|
||||
resolve(data)
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
|
||||
Reference in New Issue
Block a user