fix: 未登录时静默跳过需要认证的API调用
- ProductDetail.vue: fetchUserCredits 添加登录检查 - Cart.vue: fetchUserProfile 添加登录检查 - Lotteries.vue: fetchLotteries 添加登录检查 - LotteryDetail.vue: getById/register 添加登录检查和错误处理 避免未登录用户访问页面时出现401错误
This commit is contained in:
@@ -458,10 +458,16 @@ async function fetchSettings() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function fetchUserProfile() {
|
async function fetchUserProfile() {
|
||||||
|
// 未登录时静默跳过
|
||||||
|
const token = localStorage.getItem('token')
|
||||||
|
if (!token) return
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const res: any = await userApi.getProfile()
|
const res: any = await userApi.getProfile()
|
||||||
userCredits.value = res.data?.purchase_credits || 0
|
userCredits.value = res.data?.purchase_credits || 0
|
||||||
} catch {}
|
} catch {
|
||||||
|
// 静默处理错误
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function fetchPaymentChannels() {
|
async function fetchPaymentChannels() {
|
||||||
|
|||||||
@@ -36,11 +36,23 @@ function formatDate(date: string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function fetchLotteries() {
|
async function fetchLotteries() {
|
||||||
loading.value = true
|
// 检查是否登录
|
||||||
const res: any = await lotteryApi.list()
|
const token = localStorage.getItem('token')
|
||||||
lotteries.value = res.data || []
|
if (!token) {
|
||||||
total.value = res.pagination?.total || res.data?.length || 0
|
loading.value = false
|
||||||
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)
|
onMounted(fetchLotteries)
|
||||||
|
|||||||
@@ -46,13 +46,36 @@ function formatDate(date: string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
onMounted(async () => {
|
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() {
|
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)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user