feat: 添加歌手详情抽屉

This commit is contained in:
alger
2025-01-13 22:13:46 +08:00
parent 8e86d378d0
commit 8ffe472605
16 changed files with 624 additions and 83 deletions
+15 -3
View File
@@ -22,9 +22,14 @@
<div>
<div class="music-content-name">{{ playMusic.name }}</div>
<div class="music-content-singer">
<span v-for="(item, index) in playMusic.ar || playMusic.song.artists" :key="index">
{{ item.name
}}{{ index < (playMusic.ar || playMusic.song.artists).length - 1 ? ' / ' : '' }}
<span
v-for="(item, index) in playMusic.ar || playMusic.song.artists"
:key="index"
class="cursor-pointer hover:text-green-500"
@click="handleArtistClick(item.id)"
>
{{ item.name }}
{{ index < (playMusic.ar || playMusic.song.artists).length - 1 ? ' / ' : '' }}
</span>
</div>
</div>
@@ -70,6 +75,7 @@
<script setup lang="ts">
import { useDebounceFn } from '@vueuse/core';
import { onBeforeUnmount, ref, watch } from 'vue';
import { useStore } from 'vuex';
import {
lrcArray,
@@ -219,6 +225,12 @@ onBeforeUnmount(() => {
}
});
const store = useStore();
const handleArtistClick = (id: number) => {
props.musicFull = false;
store.commit('setCurrentArtistId', id);
};
defineExpose({
lrcScroll
});
+13 -4
View File
@@ -55,11 +55,12 @@
<span
v-for="(artists, artistsindex) in playMusic.ar || playMusic.song.artists"
:key="artistsindex"
>{{ artists.name
}}{{
artistsindex < (playMusic.ar || playMusic.song.artists).length - 1 ? ' / ' : ''
}}</span
class="cursor-pointer hover:text-green-500"
@click="handleArtistClick(artists.id)"
>
{{ artists.name
}}{{ artistsindex < (playMusic.ar || playMusic.song.artists).length - 1 ? ' / ' : '' }}
</span>
</n-ellipsis>
</div>
</div>
@@ -295,6 +296,9 @@ const musicFullVisible = ref(false);
const setMusicFull = () => {
musicFullVisible.value = !musicFullVisible.value;
store.commit('setMusicFull', musicFullVisible.value);
if (musicFullVisible.value) {
store.commit('setShowArtistDrawer', false);
}
};
const palyListRef = useTemplateRef('palyListRef');
@@ -322,6 +326,11 @@ const toggleFavorite = async (e: Event) => {
const openLyricWindow = () => {
openLyric();
};
const handleArtistClick = (id: number) => {
musicFullVisible.value = false;
store.commit('setCurrentArtistId', id);
};
</script>
<style lang="scss" scoped>
+1 -1
View File
@@ -99,7 +99,7 @@ const drag = (event: MouseEvent) => {
-webkit-app-region: drag;
@apply flex justify-between px-6 py-2 select-none relative;
@apply text-dark dark:text-white;
z-index: 9999999;
z-index: 999;
}
#buttons {