From bcc1b1e72e2875c60fb32dcf110fb2cd098162c9 Mon Sep 17 00:00:00 2001
From: Vidocq <949867756@qq.com>
Date: Fri, 19 Feb 2021 21:40:43 +0800
Subject: [PATCH 1/6] add search in playlist
---
src/views/playlist.vue | 111 +++++++++++++++++++++++++++++++----------
1 file changed, 85 insertions(+), 26 deletions(-)
diff --git a/src/views/playlist.vue b/src/views/playlist.vue
index 611cd5e..1d854a3 100644
--- a/src/views/playlist.vue
+++ b/src/views/playlist.vue
@@ -135,8 +135,22 @@
+
+
+ song.name.toLowerCase().includes(this.playlistKeyword.toLowerCase()) ||
+ song.al.name.toLowerCase().includes(this.playlistKeyword.toLowerCase()) ||
+ song.ar.find(artist => artist.name.toLowerCase().includes(this.playlistKeyword.toLowerCase()))
+ );
+ },
},
methods: {
...mapMutations(["appendTrackToPlayerList"]),
@@ -374,6 +397,7 @@ export default {
this.lastLoadedTrackIndex = data.playlist.tracks.length - 1;
if (this.playlist.trackCount > this.tracks.length) {
window.addEventListener("scroll", this.handleScroll, true);
+ window.addEventListener("input", this.handleSearch, this.playlistKeyword);
}
return data;
})
@@ -384,11 +408,11 @@ export default {
}
});
},
- loadMore() {
+ loadMore(loadNum = 50) {
let trackIDs = this.playlist.trackIds.filter((t, index) => {
if (
index > this.lastLoadedTrackIndex &&
- index <= this.lastLoadedTrackIndex + 50
+ index <= this.lastLoadedTrackIndex + loadNum
)
return t;
});
@@ -415,6 +439,15 @@ export default {
this.loadMore();
}
},
+ handleSearch() {
+ if (
+ this.lastLoadedTrackIndex + 1 === this.playlist.trackIds.length ||
+ this.loadingMore
+ )
+ return;
+ this.loadingMore = true;
+ this.loadMore(this.playlist.trackIds.length - this.lastLoadedTrackIndex);
+ },
openMenu(e) {
this.$refs.playlistMenu.openMenu(e);
},
@@ -452,7 +485,7 @@ export default {