This commit is contained in:
2025-09-03 09:13:29 +08:00
parent 8d50c6dadf
commit acaed047ce
6 changed files with 550 additions and 31 deletions

View File

@@ -41,15 +41,37 @@ export const useUserStore = defineStore('user', () => {
loading.value = true
const response = await api.post('/auth/login', credentials)
if (response.data.token) {
if (response.data.success && response.data.token) {
setToken(response.data.token)
setUser(response.data.user)
startStatusCheck() // 登录成功后开始状态检查
ElMessage.success(response.data.message || '登录成功')
return { success: true, data: response.data }
} else if (response.data.needPayment) {
// 用户需要支付激活,不显示错误消息,由前端页面处理
return {
success: false,
needPayment: true,
userId: response.data.userId,
message: response.data.message
}
} else {
const message = response.data.message || '登录失败'
ElMessage.error(message)
return { success: false, message }
}
} catch (error) {
const message = error.response?.data?.message || '登录失败'
const errorData = error.response?.data
if (errorData?.needPayment) {
// 处理403状态码返回的需要支付情况
return {
success: false,
needPayment: true,
userId: errorData.userId,
message: errorData.message
}
}
const message = errorData?.message || '登录失败'
ElMessage.error(message)
return { success: false, message }
} finally {
@@ -63,11 +85,28 @@ export const useUserStore = defineStore('user', () => {
loading.value = true
const response = await api.post('/auth/register', userData)
if (response.data.token) {
setToken(response.data.token)
setUser(response.data.user)
ElMessage.success(response.data.message || '注册成功')
return { success: true, data: response.data }
if (response.data.success) {
// 检查是否需要支付
if (response.data.needPayment) {
// 需要支付的情况,返回成功状态和支付相关信息
return {
success: true,
needPayment: true,
token: response.data.token,
user: response.data.user,
message: response.data.message
}
} else {
// 直接注册成功的情况
setToken(response.data.token)
setUser(response.data.user)
ElMessage.success(response.data.message || '注册成功')
return { success: true, data: response.data }
}
} else {
const message = response.data.message || '注册失败'
ElMessage.error(message)
return { success: false, message }
}
} catch (error) {
const message = error.response?.data?.message || '注册失败'