diff --git a/ui/dist.zip b/ui/dist.zip index 91b1175..4d35298 100644 Binary files a/ui/dist.zip and b/ui/dist.zip differ diff --git a/ui/src/views/ArtistView.vue b/ui/src/views/ArtistView.vue index ff567fd..58115cf 100644 --- a/ui/src/views/ArtistView.vue +++ b/ui/src/views/ArtistView.vue @@ -260,7 +260,14 @@ const getImageUrl = (originalUrl: string) => { // 点击作品 const handleArtworkClick = (artwork: Artwork) => { - router.push(`/artwork/${artwork.id}`); + // 传递作者ID和作品类型信息,用于导航 + router.push({ + path: `/artwork/${artwork.id}`, + query: { + artistId: artist.value?.id.toString(), + artworkType: artworkType.value + } + }); }; // 清除错误 diff --git a/ui/src/views/ArtworkView.vue b/ui/src/views/ArtworkView.vue index 466a961..b066bd3 100644 --- a/ui/src/views/ArtworkView.vue +++ b/ui/src/views/ArtworkView.vue @@ -74,6 +74,32 @@ + +
+ + +
+
@@ -130,10 +156,11 @@ @@ -532,6 +675,54 @@ onMounted(() => { margin: 0.25rem 0; } +.artwork-navigation { + display: flex; + gap: 1rem; + margin-bottom: 2rem; + padding: 1rem; + background: #f8fafc; + border-radius: 0.75rem; +} + +.nav-btn { + display: flex; + align-items: center; + gap: 0.5rem; + padding: 0.75rem 1rem; + border: 1px solid #d1d5db; + border-radius: 0.5rem; + background: white; + color: #374151; + font-weight: 500; + cursor: pointer; + transition: all 0.2s; + flex: 1; + justify-content: center; +} + +.nav-btn:hover:not(:disabled) { + background: #f3f4f6; + border-color: #9ca3af; +} + +.nav-btn:disabled { + opacity: 0.5; + cursor: not-allowed; +} + +.nav-btn svg { + width: 1.25rem; + height: 1.25rem; +} + +.nav-prev { + justify-content: flex-start; +} + +.nav-next { + justify-content: flex-end; +} + @media (max-width: 1024px) { .artwork-content { grid-template-columns: 1fr;