Skip to content

Commit ac1f9af

Browse files
committed
🐞 fix: 修复类型错误
1 parent 6db103a commit ac1f9af

4 files changed

Lines changed: 25 additions & 14 deletions

File tree

src/components/Modal/PlaylistAdd.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
v-for="(item, index) in onlinePlaylists"
1818
:key="index"
1919
class="playlist"
20-
@click="addToOnlinePlaylist(item?.id, index)"
20+
@click="addToOnlinePlaylist(Number(item?.id), index)"
2121
>
2222
<template #prefix>
2323
<n-image

src/core/player/PlayModeManager.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,11 @@ export class PlayModeManager {
140140
});
141141

142142
try {
143-
const pid =
144-
musicStore.playPlaylistId || (await dataStore.getUserLikePlaylist())?.detail?.id || 0;
143+
let pid = Number(musicStore.playPlaylistId);
144+
if (!pid) {
145+
const likedPlaylist = await dataStore.getUserLikePlaylist();
146+
pid = likedPlaylist?.detail?.id ? Number(likedPlaylist.detail.id) : 0;
147+
}
145148
// 获取当前歌曲ID,强制转换为数字
146149
let currentSongId: number;
147150
const rawId = musicStore.playSong.id;

src/views/Home/HomeOnline.vue

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -60,20 +60,28 @@ import { sleep } from "@/utils/helper";
6060
import { isLogin } from "@/utils/auth";
6161
import SvgIcon from "@/components/Global/SvgIcon.vue";
6262
63-
interface RecItemType {
63+
interface RecItemTypeBase {
6464
name: string;
65-
list: ArtistType[] | CoverType[];
66-
type: "playlist" | "artist" | "video" | "radio" | "album";
6765
path?: string;
6866
}
6967
68+
interface RecItemArtist extends RecItemTypeBase {
69+
type: "artist";
70+
list: ArtistType[];
71+
}
72+
73+
interface RecItemCover extends RecItemTypeBase {
74+
type: "playlist" | "video" | "radio" | "album";
75+
list: CoverType[];
76+
}
77+
7078
interface RecDataType {
71-
playlist: RecItemType;
72-
radar: RecItemType;
73-
artist: RecItemType;
74-
video: RecItemType;
75-
radio: RecItemType;
76-
album: RecItemType;
79+
playlist: RecItemCover;
80+
radar: RecItemCover;
81+
artist: RecItemArtist;
82+
video: RecItemCover;
83+
radio: RecItemCover;
84+
album: RecItemCover;
7785
}
7886
7987
const router = useRouter();

src/views/List/liked.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ const { listScrolling, handleListScroll, resetScroll } = useListScroll();
7070
const { playAllSongs: playAllSongsAction } = useListActions();
7171
7272
// 歌单 ID
73-
const playlistId = computed<number>(() => dataStore.userLikeData.playlists?.[0]?.id);
73+
const playlistId = computed<number>(() => Number(dataStore.userLikeData.playlists?.[0]?.id) || 0);
7474
7575
// 当前正在请求的歌单 ID,用于防止竞态条件
7676
const currentRequestId = ref<number>(0);
@@ -376,7 +376,7 @@ onMounted(async () => {
376376
// 获取我喜欢的音乐歌单ID
377377
const likedPlaylistId = dataStore.userLikeData.playlists?.[0]?.id;
378378
if (likedPlaylistId) {
379-
getPlaylistDetail(likedPlaylistId);
379+
getPlaylistDetail(Number(likedPlaylistId));
380380
} else {
381381
// 如果没有找到我喜欢的音乐歌单,尝试从缓存获取
382382
const data: any = await dataStore.getUserLikePlaylist();

0 commit comments

Comments
 (0)