diff --git a/frontend/src/views/user/Cart.vue b/frontend/src/views/user/Cart.vue index 657a50c..7c2e9e0 100644 --- a/frontend/src/views/user/Cart.vue +++ b/frontend/src/views/user/Cart.vue @@ -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() { diff --git a/frontend/src/views/user/Lotteries.vue b/frontend/src/views/user/Lotteries.vue index a41bcae..2d3929a 100644 --- a/frontend/src/views/user/Lotteries.vue +++ b/frontend/src/views/user/Lotteries.vue @@ -36,11 +36,23 @@ function formatDate(date: string) { } async function fetchLotteries() { - loading.value = true - const res: any = await lotteryApi.list() - lotteries.value = res.data || [] - total.value = res.pagination?.total || res.data?.length || 0 - loading.value = false + // 检查是否登录 + 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) diff --git a/frontend/src/views/user/LotteryDetail.vue b/frontend/src/views/user/LotteryDetail.vue index 4bd23d4..9ebfd1a 100644 --- a/frontend/src/views/user/LotteryDetail.vue +++ b/frontend/src/views/user/LotteryDetail.vue @@ -46,13 +46,36 @@ function formatDate(date: string) { } onMounted(async () => { - const res: any = await lotteryApi.getById(Number(route.params.id)) - lottery.value = res.data + // 检查是否登录 + 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() { - await lotteryApi.register(Number(route.params.id)) - ElMessage.success('报名成功') + // 检查是否登录 + 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) + } }