mirror of
https://github.com/algerkong/AlgerMusicPlayer.git
synced 2026-04-30 21:07:24 +08:00
✨ feat: 优化用户数据加载逻辑和错误处理
This commit is contained in:
@@ -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();
|
||||||
});
|
});
|
||||||
|
|
||||||
// 展示歌单
|
// 展示歌单
|
||||||
|
|||||||
Reference in New Issue
Block a user