diff --git a/src/components/TabNav.vue b/src/components/TabNav.vue index a2921e6..1d36c99 100644 --- a/src/components/TabNav.vue +++ b/src/components/TabNav.vue @@ -45,22 +45,24 @@ const { projects } = useProjects() font-size: 0.95rem; font-weight: 500; white-space: nowrap; - transition: color var(--transition); + border-radius: var(--radius-sm) var(--radius-sm) 0 0; + transition: color var(--transition), background var(--transition); } .tab-nav__item:hover { color: var(--text-primary); + background: var(--surface); } .tab-nav__item.is-active { color: var(--accent); + background: var(--surface); } .tab-nav__item.is-active::after { content: ''; position: absolute; - left: var(--space-md); - right: var(--space-md); + left: 0; + right: 0; bottom: -1px; height: 2px; background: var(--accent); - border-radius: 2px; } diff --git a/src/composables/useProjects.js b/src/composables/useProjects.js index 9ccf489..0911fe7 100644 --- a/src/composables/useProjects.js +++ b/src/composables/useProjects.js @@ -1,9 +1,14 @@ import modules from '../modules/index.js' -import { ref } from 'vue' +import { computed } from 'vue' +import { useRoute } from 'vue-router' // 读取已注册模块列表,供 TabNav 渲染页签 -// hidden 模块(如日历页)不显示在导航中,但仍可通过路由直接访问 +// hidden 模块(如日历页)默认不显示在导航中,但当用户正在访问该页时 +// 仍显示其页签(描下边高亮),让用户知道当前所在位置。 export function useProjects() { - const projects = ref(modules.filter((m) => !m.hidden)) + const route = useRoute() + const projects = computed(() => + modules.filter((m) => !m.hidden || m.id === route.meta.moduleId) + ) return { projects } } diff --git a/src/i18n/locales/en.js b/src/i18n/locales/en.js index c4ed1bd..fb8934d 100644 --- a/src/i18n/locales/en.js +++ b/src/i18n/locales/en.js @@ -10,7 +10,7 @@ export default { }, tabs: { mobileGame: 'Mobile Game Project', - calendar: 'Calendar' + calendar: 'CQY Timetable' }, mobileGame: { hero: { diff --git a/src/i18n/locales/zh-CN.js b/src/i18n/locales/zh-CN.js index 6d58965..d9e21de 100644 --- a/src/i18n/locales/zh-CN.js +++ b/src/i18n/locales/zh-CN.js @@ -9,7 +9,7 @@ export default { }, tabs: { mobileGame: '移动游戏项目', - calendar: '日历' + calendar: 'cqy课程表' }, mobileGame: { hero: { diff --git a/src/modules/calendar/Calendar.vue b/src/modules/calendar/Calendar.vue index e59da6d..5c2b497 100644 --- a/src/modules/calendar/Calendar.vue +++ b/src/modules/calendar/Calendar.vue @@ -1,26 +1,38 @@