hookehuyr

fix(收藏功能): 修复未登录时收藏操作未跳转登录页的问题

处理收藏/取消收藏接口返回401未登录时,参考全局axios重定向逻辑跳转到登录页
......@@ -389,7 +389,7 @@ import { useAuth } from '@/contexts/auth'
import { useTitle } from '@vueuse/core';
import { wxInfo } from '@/utils/tools';
import { startWxAuth } from '@/router/guards'
import { getAuthInfoAPI } from '@/api/auth'
import { getAuthInfoAPI, getUserIsLoginAPI } from '@/api/auth'
import { showToast, showDialog, showImagePreview } from 'vant';
import { formatDate } from '@/utils/tools'
import { sharePage } from '@/composables/useShare.js'
......@@ -621,24 +621,43 @@ const call_phone = (phone) => {
const { addToCart, proceedToCheckout } = useCart()
// Handle favorite toggle
// 收藏/取消收藏操作
/**
* 收藏/取消收藏操作
* @description 添加收藏接口返回401未登录时,参考全局axios重定向逻辑,跳转到登录页并带上当前路径。
* @returns {Promise<void>}
*/
const toggleFavorite = async () => {
if (isFavorite.value) {
const { code, msg } = await cancelFavoriteAPI({
const resp = await cancelFavoriteAPI({
group_id: course.value.id
})
const code = resp && typeof resp === 'object' ? resp.code : 0
if (code) {
isFavorite.value = !isFavorite.value
showToast('取消收藏')
} else {
const msg = resp && resp.msg ? resp.msg : '取消收藏失败'
showToast(msg)
}
} else {
const { code, msg } = await addFavoriteAPI({
const resp = await addFavoriteAPI({
group_id: course.value.id
})
const code = resp && typeof resp === 'object' ? resp.code : 0
if (code) {
isFavorite.value = !isFavorite.value
showToast('收藏成功')
} else {
// 未登录时跳转到登录页,带上回跳地址(参考 axios.js 逻辑)
const login_check = await getUserIsLoginAPI()
const is_login = login_check && login_check.data ? login_check.data.is_login : false
if (is_login === false) {
const current_path = $route.fullPath
router.push(`/login?redirect=${encodeURIComponent(current_path)}`)
return
}
const msg = resp && resp.msg ? resp.msg : '收藏失败'
showToast(msg)
}
}
}
......