Skip to content

Commit 5e704a1

Browse files
committed
feat: 重构每日推荐数据加载逻辑,提取为独立函数并优化用户状态判断
1 parent 6faab82 commit 5e704a1

File tree

1 file changed

+24
-13
lines changed

1 file changed

+24
-13
lines changed

src/renderer/components/home/TopBanner.vue

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@
128128
</template>
129129

130130
<script lang="ts" setup>
131-
import { onMounted, ref, watchEffect } from 'vue';
131+
import { onMounted, ref, watchEffect, computed } from 'vue';
132132
import { useI18n } from 'vue-i18n';
133133
import { useRouter } from 'vue-router';
134134
@@ -247,22 +247,31 @@ const loadArtistData = async () => {
247247
}
248248
}
249249
250+
251+
// 提取每日推荐加载逻辑到单独的函数
252+
const loadDayRecommendData = async () => {
253+
try {
254+
const {
255+
data: { data: dayRecommend }
256+
} = await getDayRecommend();
257+
const dayRecommendSource = dayRecommend as unknown as IDayRecommend;
258+
dayRecommendData.value = {
259+
...dayRecommendSource,
260+
dailySongs: dayRecommendSource.dailySongs.filter((song: any) => !playerStore.dislikeList.includes(song.id))
261+
};
262+
} catch (error) {
263+
console.error('获取每日推荐失败:', error);
264+
}
265+
};
266+
250267
// 加载不需要登录的数据
251268
const loadNonUserData = async () => {
252269
try {
253-
// 获取每日推荐
254-
try {
255-
const {
256-
data: { data: dayRecommend }
257-
} = await getDayRecommend();
258-
const dayRecommendSource = dayRecommend as unknown as IDayRecommend;
259-
dayRecommendData.value = {
260-
...dayRecommendSource,
261-
dailySongs: dayRecommendSource.dailySongs.filter((song: any) =>!playerStore.dislikeList.includes(song.id))
262-
};
263-
} catch (error) {
264-
console.error('获取每日推荐失败:', error);
270+
// 获取每日推荐(仅在用户未登录时加载,已登录用户会通过watchEffect触发loadDayRecommendData)
271+
if (!userStore.user) {
272+
await loadDayRecommendData();
265273
}
274+
266275
// 获取热门歌手
267276
const { data: singerData } = await getHotSinger({ offset: 0, limit: 5 });
268277
hotSingerData.value = singerData;
@@ -419,9 +428,11 @@ const loadFullPlaylist = async (trackIds: { id: number }[], initialSongs: SongRe
419428
watchEffect(() => {
420429
if (userStore.user) {
421430
loadUserData();
431+
loadDayRecommendData();
422432
}
423433
});
424434
435+
425436
const getPlaylistGridClass = (length: number) => {
426437
switch (length) {
427438
case 1:

0 commit comments

Comments
 (0)