feat:登录功能迁移新登录页面

This commit is contained in:
小张 2025-08-30 15:13:24 +08:00
parent 48d80ef281
commit 1714221e70
2 changed files with 69 additions and 23 deletions

View File

@ -80,7 +80,7 @@ export class AuthApi {
email: data.email || '',
phone: data.phone || '',
username: data.email || data.phone || '',
nickname: '用户',
nickname: data.email || data.phone || '', // 使用登录账号作为昵称
avatar: '',
role: 'student',
status: 'active',

View File

@ -210,20 +210,34 @@ const handleSubmit = async () => {
//
userStore.isLoading = true
// API - 使
const response = await AuthApi.login({
username: formData.studentId, // 使username
console.log('🚀 开始登录:', { account: formData.studentId, password: '***' })
console.log('🔍 表单密码长度:', formData.password?.length)
//
const isPhone = /^[0-9]+$/.test(formData.studentId)
const loginParams = {
...(isPhone ? { phone: formData.studentId } : { email: formData.studentId }),
password: formData.password
})
}
if (response.code === 200) {
const { user, token, refreshToken } = response.data
console.log('🔍 准备发送的登录参数:', loginParams)
// tokenstore
userStore.token = token
localStorage.setItem('X-Access-Token', token)
localStorage.setItem('token', token)
localStorage.setItem('refreshToken', refreshToken)
// API
const response = await AuthApi.login(loginParams)
console.log('✅ 登录响应:', response)
if (response.code === 200 || response.code === 0) {
// token
const token = response.data?.token || response.result?.token
if (token) {
userStore.token = token
localStorage.setItem('X-Access-Token', token)
localStorage.setItem('token', token)
console.log('✅ Token已保存:', token)
}
//
if (rememberMe.value) {
@ -249,28 +263,56 @@ const handleSubmit = async () => {
console.log('✅ 用户信息获取成功并保存到store:', userStore.user)
} else {
// 使
console.warn('⚠️ 获取用户信息失败,使用登录返回的基本信息')
userStore.user = user
localStorage.setItem('user', JSON.stringify(user))
//
console.warn('⚠️ 获取用户信息失败,使用基本信息')
const basicUser = {
id: 1,
email: isPhone ? '' : formData.studentId,
phone: isPhone ? formData.studentId : '',
username: formData.studentId,
nickname: formData.studentId,
avatar: '',
role: activeTab.value as 'student' | 'teacher',
status: 'active' as const,
createdAt: new Date().toISOString(),
updatedAt: new Date().toISOString()
}
userStore.user = basicUser
localStorage.setItem('user', JSON.stringify(basicUser))
}
} catch (userInfoError) {
// 使
console.warn('⚠️ 获取用户信息异常,使用登录返回的基本信息:', userInfoError)
userStore.user = user
localStorage.setItem('user', JSON.stringify(user))
//
console.warn('⚠️ 获取用户信息异常,使用基本信息:', userInfoError)
const basicUser = {
id: 1,
email: isPhone ? '' : formData.studentId,
phone: isPhone ? formData.studentId : '',
username: formData.studentId,
nickname: formData.studentId,
avatar: '',
role: activeTab.value as 'student' | 'teacher',
status: 'active' as const,
createdAt: new Date().toISOString(),
updatedAt: new Date().toISOString()
}
userStore.user = basicUser
localStorage.setItem('user', JSON.stringify(basicUser))
}
message.success('登录成功!')
console.log('🎉 登录流程完成,用户信息已更新')
//
const redirect = router.currentRoute.value.query.redirect as string
if (activeTab.value === 'teacher') {
router.push(redirect || '/teacher')
console.log('🔄 准备跳转到教师端...')
await router.push(redirect || '/teacher')
} else {
router.push(redirect || '/')
console.log('🔄 准备跳转到首页...')
await router.push(redirect || '/')
}
} else {
console.error('❌ 登录失败,响应码:', response.code)
message.error(response.message || '登录失败')
}
} catch (error: any) {
@ -278,11 +320,15 @@ const handleSubmit = async () => {
//
if (error.response?.status === 401) {
message.error('学号或密码错误')
message.error('邮箱或密码错误')
} else if (error.response?.status === 429) {
message.error('登录尝试过于频繁,请稍后再试')
} else if (error.response?.data?.message) {
//
message.error(error.response.data.message)
} else if (error.message) {
//
message.error(error.message)
} else {
message.error('网络错误,请检查网络连接')
}