feat: 优化用户数据加载逻辑和错误处理

This commit is contained in:
alger
2025-03-22 10:31:05 +08:00
parent b114cf4a33
commit f9fd9afcdd
+18 -11
View File
@@ -167,29 +167,36 @@ const loadData = async () => {
try { try {
infoLoading.value = true; infoLoading.value = true;
if (!user.value) return; if (!user.value) {
console.warn('用户数据不存在,尝试重新获取');
// 可以尝试重新获取用户数据
return;
}
const { data: userData } = await getUserDetail(user.value.userId); // 使用 Promise.all 并行请求提高效率
if (!mounted.value) return; const [userDetailRes, playlistRes, recordRes] = await Promise.all([
userDetail.value = userData; getUserDetail(user.value.userId),
getUserPlaylist(user.value.userId),
getUserRecord(user.value.userId)
]);
const { data: playlistData } = await getUserPlaylist(user.value.userId);
if (!mounted.value) return; if (!mounted.value) return;
playList.value = playlistData.playlist;
const { data: recordData } = await getUserRecord(user.value.userId); userDetail.value = userDetailRes.data;
if (!mounted.value) return; playList.value = playlistRes.data.playlist;
recordList.value = recordData.allData.map((item: any) => ({ recordList.value = recordRes.data.allData.map((item: any) => ({
...item, ...item,
...item.song, ...item.song,
picUrl: item.song.al.picUrl picUrl: item.song.al.picUrl
})); }));
} catch (error: any) { } catch (error: any) {
console.error('加载用户页面失败:', error); console.error('加载用户页面失败:', error);
// 如果获取用户数据失败,可能是token过期
if (error.response?.status === 401) { if (error.response?.status === 401) {
userStore.handleLogout(); userStore.handleLogout();
router.push('/login'); router.push('/login');
} else {
// 添加更多错误处理和重试逻辑
message.error(t('user.message.loadFailed'));
} }
} finally { } finally {
if (mounted.value) { if (mounted.value) {
@@ -223,7 +230,7 @@ watch(
// 页面挂载时检查登录状态 // 页面挂载时检查登录状态
onMounted(() => { onMounted(() => {
checkLoginStatus(); checkLoginStatus() && loadData();
}); });
// 展示歌单 // 展示歌单