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;