From 866fec6ee37df142082127e08506d0e6f311a485 Mon Sep 17 00:00:00 2001 From: alger Date: Sat, 11 Jan 2025 18:38:34 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20=E4=BC=98=E5=8C=96=E6=94=B6?= =?UTF-8?q?=E8=97=8F=E9=80=BB=E8=BE=91=20=E6=9C=AC=E5=9C=B0=E5=92=8C?= =?UTF-8?q?=E7=BA=BF=E4=B8=8A=E5=90=8C=E6=AD=A5=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E4=B8=8B=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/components/common/SongItem.vue | 20 +- src/renderer/store/index.ts | 68 +++--- src/renderer/views/favorite/index.vue | 225 +++++++++++++++++++- 3 files changed, 279 insertions(+), 34 deletions(-) diff --git a/src/renderer/components/common/SongItem.vue b/src/renderer/components/common/SongItem.vue index 9463a65..4eea640 100644 --- a/src/renderer/components/common/SongItem.vue +++ b/src/renderer/components/common/SongItem.vue @@ -4,6 +4,9 @@ :class="{ 'song-mini': mini, 'song-list': list }" @contextmenu.prevent="handleContextMenu" > +
+ +
(), { mini: false, list: false, - favorite: true + favorite: true, + selectable: false, + selected: false } ); @@ -191,7 +198,7 @@ const downloadMusic = async () => { } }; -const emits = defineEmits(['play']); +const emits = defineEmits(['play', 'select']); const songImageRef = useTemplateRef('songImg'); const imageLoad = async () => { @@ -236,6 +243,11 @@ const toggleFavorite = async (e: Event) => { store.commit('addToFavorite', props.item.id); } }; + +// 切换选择状态 +const toggleSelect = () => { + emits('select', props.item.id, !props.selected); +};