fix: 未登录时静默跳过需要认证的API调用
Build and Push Docker Image / build-and-push (push) Successful in 1m1s
Build and Push Docker Image / deploy (push) Successful in 8s

- ProductDetail.vue: fetchUserCredits 添加登录检查
- Cart.vue: fetchUserProfile 添加登录检查
- Lotteries.vue: fetchLotteries 添加登录检查
- LotteryDetail.vue: getById/register 添加登录检查和错误处理

避免未登录用户访问页面时出现401错误
This commit is contained in:
2026-07-13 01:41:06 +00:00
parent 7b81d2944a
commit 625eb76ebc
3 changed files with 51 additions and 10 deletions
+7 -1
View File
@@ -458,10 +458,16 @@ async function fetchSettings() {
}
async function fetchUserProfile() {
// 未登录时静默跳过
const token = localStorage.getItem('token')
if (!token) return
try {
const res: any = await userApi.getProfile()
userCredits.value = res.data?.purchase_credits || 0
} catch {}
} catch {
// 静默处理错误
}
}
async function fetchPaymentChannels() {
+12
View File
@@ -36,12 +36,24 @@ function formatDate(date: string) {
}
async function fetchLotteries() {
// 检查是否登录
const token = localStorage.getItem('token')
if (!token) {
loading.value = false
return
}
try {
loading.value = true
const res: any = await lotteryApi.list()
lotteries.value = res.data || []
total.value = res.pagination?.total || res.data?.length || 0
} catch {
// 静默处理错误
} finally {
loading.value = false
}
}
onMounted(fetchLotteries)
</script>
+23
View File
@@ -46,13 +46,36 @@ function formatDate(date: string) {
}
onMounted(async () => {
// 检查是否登录
const token = localStorage.getItem('token')
if (!token) {
ElMessage.warning('请先登录后再查看抽奖详情')
return
}
try {
const res: any = await lotteryApi.getById(Number(route.params.id))
lottery.value = res.data
} catch {
// 静默处理错误
}
})
async function register() {
// 检查是否登录
const token = localStorage.getItem('token')
if (!token) {
ElMessage.warning('请先登录后再报名')
return
}
try {
await lotteryApi.register(Number(route.params.id))
ElMessage.success('报名成功')
} catch (err: any) {
const errorMsg = err.response?.data?.error || '报名失败'
ElMessage.error(errorMsg)
}
}
</script>