Merge pull request #280 from algerkong/fix/day-list

feat: 重构每日推荐数据加载逻辑,提取为独立函数并优化用户状态判断
This commit is contained in:
Alger
2025-05-28 22:04:14 +08:00
committed by GitHub
+16 -5
View File
@@ -128,7 +128,7 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, ref, watchEffect } from 'vue'; import { onMounted, ref, watchEffect, computed } from 'vue';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
@@ -247,10 +247,9 @@ const loadArtistData = async () => {
} }
} }
// 加载不需要登录的数据
const loadNonUserData = async () => { // 提取每日推荐加载逻辑到单独的函数
try { const loadDayRecommendData = async () => {
// 获取每日推荐
try { try {
const { const {
data: { data: dayRecommend } data: { data: dayRecommend }
@@ -263,6 +262,16 @@ const loadNonUserData = async () => {
} catch (error) { } catch (error) {
console.error('获取每日推荐失败:', error); console.error('获取每日推荐失败:', error);
} }
};
// 加载不需要登录的数据
const loadNonUserData = async () => {
try {
// 获取每日推荐(仅在用户未登录时加载,已登录用户会通过watchEffect触发loadDayRecommendData
if (!userStore.user) {
await loadDayRecommendData();
}
// 获取热门歌手 // 获取热门歌手
const { data: singerData } = await getHotSinger({ offset: 0, limit: 5 }); const { data: singerData } = await getHotSinger({ offset: 0, limit: 5 });
hotSingerData.value = singerData; hotSingerData.value = singerData;
@@ -419,9 +428,11 @@ const loadFullPlaylist = async (trackIds: { id: number }[], initialSongs: SongRe
watchEffect(() => { watchEffect(() => {
if (userStore.user) { if (userStore.user) {
loadUserData(); loadUserData();
loadDayRecommendData();
} }
}); });
const getPlaylistGridClass = (length: number) => { const getPlaylistGridClass = (length: number) => {
switch (length) { switch (length) {
case 1: case 1: