Files
AlgerMusicPlayer/src/renderer/components/common/MusicListNavigator.ts

46 lines
1.1 KiB
TypeScript
Raw Normal View History

import { Router } from 'vue-router';
import { useMusicStore } from '@/store/modules/music';
/**
*
* @param router Vue路由实例
* @param options
*/
export function navigateToMusicList(
router: Router,
options: {
id?: string | number;
type?: 'album' | 'playlist' | 'dailyRecommend' | string;
name: string;
songList: any[];
listInfo?: any;
canRemove?: boolean;
}
) {
const musicStore = useMusicStore();
const { id, type, name, songList, listInfo, canRemove = false } = options;
// 如果是每日推荐,不需要设置 musicStore直接从 recommendStore 获取
if (type !== 'dailyRecommend') {
musicStore.setCurrentMusicList(songList, name, listInfo, canRemove);
} else {
// 确保 musicStore 的数据被清空,避免显示旧的列表
musicStore.clearCurrentMusicList();
}
// 路由跳转
if (id) {
router.push({
name: 'musicList',
params: { id },
query: { type }
});
} else {
router.push({
name: 'musicList',
query: { type: 'dailyRecommend' }
});
}
}