diff --git a/src/pages/browse.vue b/src/pages/browse.vue
index 48bccc45..9b50c959 100644
--- a/src/pages/browse.vue
+++ b/src/pages/browse.vue
@@ -13,6 +13,9 @@ const route = useRoute()
// 标题
const title = route.query?.title?.toString()
+// 副标题
+const subtitle = route.query?.subtitle?.toString()
+
// 计算API路径
function getApiPath(paths: string[] | string) {
if (Array.isArray(paths))
@@ -28,6 +31,7 @@ function getApiPath(paths: string[] | string) {
{{ title }}
+ {{ subtitle }}
diff --git a/src/pages/person.vue b/src/pages/person.vue
new file mode 100644
index 00000000..9b50c959
--- /dev/null
+++ b/src/pages/person.vue
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+ {{ title }}
+ {{ subtitle }}
+
+
+
+
+
+
diff --git a/src/router/index.ts b/src/router/index.ts
index 8818a7c7..3e0bb551 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -98,6 +98,14 @@ const router = createRouter({
requiresAuth: true,
},
},
+ {
+ path: '/person/:paths+',
+ component: () => import('../pages/person.vue'),
+ props: true,
+ meta: {
+ requiresAuth: true,
+ },
+ },
{
path: '/media',
component: () => import('../pages/media.vue'),
diff --git a/src/styles/styles.scss b/src/styles/styles.scss
index cc80f4ab..0bc3e597 100644
--- a/src/styles/styles.scss
+++ b/src/styles/styles.scss
@@ -71,3 +71,30 @@
background-clip: text;
color: transparent;
}
+
+.slider-header {
+ position: relative;
+ margin-top: 1.5rem;
+ margin-bottom: 1rem;
+ display: flex;
+}
+
+.slider-title {
+ display: inline-flex;
+ align-items: center;
+ font-size: 1.25rem;
+ font-weight: 700;
+ line-height: 1.75rem;
+ --tw-text-opacity: 1;
+ color: rgb(209 213 219/var(--tw-text-opacity));
+}
+
+@media (min-width: 640px){
+.slider-title {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ font-size: 1.5rem;
+ line-height: 2.25rem;
+}
+}
diff --git a/src/views/discover/MediaDetailView.vue b/src/views/discover/MediaDetailView.vue
index f442f8d6..65ee550c 100644
--- a/src/views/discover/MediaDetailView.vue
+++ b/src/views/discover/MediaDetailView.vue
@@ -15,7 +15,7 @@ const mediaProps = defineProps({
const mediaDetail = ref({} as MediaInfo)
// 是否已加载完成
-const loaded = ref(false)
+const isRefreshed = ref(false)
// 调用API查询详情
async function getMediaDetail() {
@@ -26,7 +26,7 @@ async function getMediaDetail() {
},
})
mediaDetail.value = result
- loaded.value = true
+ isRefreshed.value = true
}
}
@@ -37,7 +37,7 @@ onBeforeMount(() => {