From ab67e073841a46ff61e59798cb39101fa498e54a Mon Sep 17 00:00:00 2001 From: Astrian Zheng Date: Wed, 28 May 2025 10:45:16 +1000 Subject: [PATCH] feat(PlayListItem, Library): add PlayListItem component and integrate into Library page --- src/assets/icons/starslash.vue | 13 ++++++++++ src/components/PlayListItem.vue | 44 +++++++++++++++++++++++++++++++++ src/pages/Library.vue | 24 +++++++++--------- 3 files changed, 68 insertions(+), 13 deletions(-) create mode 100644 src/assets/icons/starslash.vue create mode 100644 src/components/PlayListItem.vue diff --git a/src/assets/icons/starslash.vue b/src/assets/icons/starslash.vue new file mode 100644 index 0000000..b0cb5bf --- /dev/null +++ b/src/assets/icons/starslash.vue @@ -0,0 +1,13 @@ + + + \ No newline at end of file diff --git a/src/components/PlayListItem.vue b/src/components/PlayListItem.vue new file mode 100644 index 0000000..6090b0e --- /dev/null +++ b/src/components/PlayListItem.vue @@ -0,0 +1,44 @@ + + + \ No newline at end of file diff --git a/src/pages/Library.vue b/src/pages/Library.vue index 8b8440a..090084b 100644 --- a/src/pages/Library.vue +++ b/src/pages/Library.vue @@ -5,7 +5,7 @@ import ShuffleIcon from '../assets/icons/shuffle.vue' import { useFavourites } from '../stores/useFavourites' import { ref } from 'vue' -import { artistsOrganize } from '../utils' +import PlayListItem from '../components/PlayListItem.vue' import { usePlayQueueStore } from '../stores/usePlayQueueStore' const favourites = useFavourites() @@ -13,7 +13,9 @@ const playQueueStore = usePlayQueueStore() const currentList = ref<'favourites' | number>('favourites') -function playTheList(list: 'favourites' | number) { +function playTheList(list: 'favourites' | number, playFrom: number = 0) { + if (playFrom < 0 || playFrom >= favourites.favouritesCount) { playFrom = 0 } + if (usePlayQueueStore().queueReplaceLock) { if (!confirm("当前操作会将你的播放队列清空、放入这张歌单所有曲目,并从头播放。继续吗?")) { return } usePlayQueueStore().queueReplaceLock = false @@ -28,7 +30,7 @@ function playTheList(list: 'favourites' | number) { album: item.album })) playQueueStore.list = newPlayQueue.slice().reverse() - playQueueStore.currentIndex = 0 + playQueueStore.currentIndex = playFrom playQueueStore.isPlaying = true playQueueStore.isBuffering = true } else { @@ -118,16 +120,12 @@ function shuffle(list: 'favourites' | number) { -
- +
+