增加页面滚动复位功能

This commit is contained in:
2025-09-03 12:53:36 +08:00
parent ad8a2a3b5d
commit 5825288d87
7 changed files with 236 additions and 18 deletions
+11 -1
View File
@@ -172,6 +172,7 @@ import { useAuthStore } from '@/stores/auth';
import artistService from '@/services/artist';
import downloadService from '@/services/download';
import { getImageProxyUrl } from '@/services/api';
import { saveScrollPosition, restoreScrollPosition } from '@/utils/scrollManager';
import type { Artist, Artwork } from '@/types';
import ArtworkCard from '@/components/artwork/ArtworkCard.vue';
@@ -512,6 +513,9 @@ const getImageUrl = getImageProxyUrl;
// 点击作品
const handleArtworkClick = (artwork: Artwork) => {
// 保存当前页面的滚动位置
saveScrollPosition(route.fullPath);
// 传递作者ID、作品类型和当前页面信息,用于导航
router.push({
path: `/artwork/${artwork.id}`,
@@ -519,7 +523,8 @@ const handleArtworkClick = (artwork: Artwork) => {
artistId: artist.value?.id.toString(),
artworkType: artworkType.value,
page: currentPage.value.toString(),
returnUrl: route.fullPath
returnUrl: route.fullPath,
scrollTop: (window.scrollY || document.documentElement.scrollTop).toString()
}
});
};
@@ -602,6 +607,11 @@ onMounted(async () => {
} else {
await fetchArtworks(1);
}
// 恢复滚动位置(延迟执行确保页面内容完全加载)
setTimeout(() => {
restoreScrollPosition(route.fullPath);
}, 200);
});
</script>