From fab29e5c797fb489ea47e099fc913fd3e6ab4bb2 Mon Sep 17 00:00:00 2001 From: alger Date: Wed, 4 Feb 2026 21:54:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../home/components/HomeAlbumSection.vue | 5 +++-- .../views/home/components/HomeArtists.vue | 5 +++-- .../views/home/components/HomeListItem.vue | 5 ++++- .../views/home/components/HomeNewSongs.vue | 19 +++++++++---------- .../home/components/HomePlaylistSection.vue | 11 ++++++++--- 5 files changed, 27 insertions(+), 18 deletions(-) diff --git a/src/renderer/views/home/components/HomeAlbumSection.vue b/src/renderer/views/home/components/HomeAlbumSection.vue index ecd36a3..1660f94 100644 --- a/src/renderer/views/home/components/HomeAlbumSection.vue +++ b/src/renderer/views/home/components/HomeAlbumSection.vue @@ -38,6 +38,7 @@ :title="album.name" :subtitle="getArtistNames(album)" :tracks="albumTracksMap[album.id] || []" + :show-hover-tracks="!isMobile" :animation-delay="calculateAnimationDelay(index, 0.04)" @click="handleAlbumClick(album)" @play="playAlbum(album)" @@ -62,7 +63,7 @@ import { getAlbum } from '@/api/list'; import { navigateToMusicList } from '@/components/common/MusicListNavigator'; import { usePlayerCoreStore } from '@/store/modules/playerCore'; import { usePlaylistStore } from '@/store/modules/playlist'; -import { calculateAnimationDelay, isElectron } from '@/utils'; +import { calculateAnimationDelay, isElectron, isMobile } from '@/utils'; import HomeListItem from './HomeListItem.vue'; @@ -104,7 +105,7 @@ const fetchAlbums = async () => { if (data.code === 200) { albums.value = data.weekData || data.monthData || data.albums || []; // Preload tracks for displayed albums (Electron only) - if (isElectron) { + if (isElectron && !isMobile.value) { preloadAllTracks(); } } diff --git a/src/renderer/views/home/components/HomeArtists.vue b/src/renderer/views/home/components/HomeArtists.vue index 3d7b763..459be93 100644 --- a/src/renderer/views/home/components/HomeArtists.vue +++ b/src/renderer/views/home/components/HomeArtists.vue @@ -68,7 +68,7 @@ import { onMounted, ref } from 'vue'; import { getHotSinger } from '@/api/home'; import { useArtist } from '@/hooks/useArtist'; -import { calculateAnimationDelay, getImgUrl } from '@/utils'; +import { calculateAnimationDelay, getImgUrl, isMobile } from '@/utils'; const props = defineProps<{ title: string; @@ -100,6 +100,7 @@ const fetchArtists = async () => { // Enhanced horizontal scroll with wheel support const handleWheel = (e: WheelEvent) => { + if (isMobile.value) return; if (!scrollContainer.value) return; // Prevent default vertical scroll @@ -161,7 +162,7 @@ onMounted(() => { -webkit-overflow-scrolling: touch; /* Optimize for touch */ - touch-action: pan-x; + touch-action: pan-x pan-y; } .artists-track { diff --git a/src/renderer/views/home/components/HomeListItem.vue b/src/renderer/views/home/components/HomeListItem.vue index 955fea5..4e0308d 100644 --- a/src/renderer/views/home/components/HomeListItem.vue +++ b/src/renderer/views/home/components/HomeListItem.vue @@ -16,6 +16,7 @@
@@ -108,10 +109,12 @@ const props = withDefaults( badgeType?: 'new' | 'hot' | 'recommend'; playCount?: number; animationDelay?: string; + showHoverTracks?: boolean; }>(), { tracks: () => [], - animationDelay: '0s' + animationDelay: '0s', + showHoverTracks: true } ); diff --git a/src/renderer/views/home/components/HomeNewSongs.vue b/src/renderer/views/home/components/HomeNewSongs.vue index f31becd..8c63240 100644 --- a/src/renderer/views/home/components/HomeNewSongs.vue +++ b/src/renderer/views/home/components/HomeNewSongs.vue @@ -18,10 +18,7 @@
-
+
-
+