diff --git a/src/renderer/layout/components/PlayBar.vue b/src/renderer/layout/components/PlayBar.vue
index 25bdc0b..79f8ddf 100644
--- a/src/renderer/layout/components/PlayBar.vue
+++ b/src/renderer/layout/components/PlayBar.vue
@@ -165,7 +165,14 @@
@@ -477,6 +484,15 @@ watch(
);
const isEQVisible = ref(false);
+
+// 在 script setup 部分添加删除歌曲的处理函数
+const handleDeleteSong = (song: SongResult) => {
+ // 如果删除的是当前播放的歌曲,先切换到下一首
+ if (song.id === playMusic.value.id) {
+ playerStore.nextPlay();
+ }
+ playerStore.removeFromPlayList(song.id);
+};
diff --git a/src/renderer/store/modules/player.ts b/src/renderer/store/modules/player.ts
index 6e61261..0f75bdd 100644
--- a/src/renderer/store/modules/player.ts
+++ b/src/renderer/store/modules/player.ts
@@ -444,6 +444,22 @@ export const usePlayerStore = defineStore('player', () => {
localStorage.setItem('favoriteList', JSON.stringify(favoriteList.value));
};
+ const removeFromPlayList = (id: number) => {
+ const index = playList.value.findIndex((item) => item.id === id);
+ if (index === -1) return;
+
+ // 如果删除的是当前播放的歌曲,先切换到下一首
+ if (id === playMusic.value.id) {
+ nextPlay();
+ }
+
+ // 从播放列表中移除,使用不可变的方式
+ const newPlayList = [...playList.value];
+ newPlayList.splice(index, 1);
+ setPlayList(newPlayList);
+ };
+
+ // 初始化播放状态
const initializePlayState = async () => {
const settingStore = useSettingsStore();
const savedPlayList = getLocalStorageItem('playList', []);
@@ -551,6 +567,7 @@ export const usePlayerStore = defineStore('player', () => {
initializePlayState,
initializeFavoriteList,
addToFavorite,
- removeFromFavorite
+ removeFromFavorite,
+ removeFromPlayList
};
});