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 @@ + + + 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(() => {