79 lines
2.0 KiB
TypeScript
79 lines
2.0 KiB
TypeScript
import { createRouter, createWebHistory } from 'vue-router'
|
|
import type { RouteRecordRaw } from 'vue-router'
|
|
import { useUserSettingsStore } from '@/stores/useUserSettingsStore'
|
|
|
|
const routes: RouteRecordRaw[] = [
|
|
{
|
|
path: '/',
|
|
redirect: '/tasks'
|
|
},
|
|
{
|
|
path: '/tasks',
|
|
name: 'tasks',
|
|
component: () => import('@/views/TaskListView.vue'),
|
|
meta: { title: '待办列表', view: 'list' }
|
|
},
|
|
{
|
|
path: '/calendar',
|
|
name: 'calendar',
|
|
component: () => import('@/views/CalendarPage.vue'),
|
|
meta: { title: '日历视图', view: 'calendar' }
|
|
},
|
|
{
|
|
path: '/quadrant',
|
|
name: 'quadrant',
|
|
component: () => import('@/views/QuadrantPage.vue'),
|
|
meta: { title: '四象限', view: 'quadrant' }
|
|
},
|
|
{
|
|
path: '/profile',
|
|
name: 'profile',
|
|
component: () => import('@/views/ProfileView.vue'),
|
|
meta: { title: '个人信息', view: 'profile' }
|
|
},
|
|
{
|
|
path: '/habits',
|
|
name: 'habits',
|
|
component: () => import('@/views/HabitPage.vue'),
|
|
meta: { title: '习惯打卡', view: 'habits' }
|
|
},
|
|
{
|
|
path: '/anniversaries',
|
|
name: 'anniversaries',
|
|
component: () => import('@/views/AnniversaryPage.vue'),
|
|
meta: { title: '纪念日', view: 'anniversaries' }
|
|
},
|
|
{
|
|
path: '/assets',
|
|
name: 'assets',
|
|
component: () => import('@/views/AssetPage.vue'),
|
|
meta: { title: '资产总览', view: 'assets' }
|
|
},
|
|
{
|
|
path: '/settings',
|
|
name: 'settings',
|
|
component: () => import('@/views/SettingsView.vue'),
|
|
meta: { title: '偏好设置', view: 'settings' }
|
|
}
|
|
]
|
|
|
|
const router = createRouter({
|
|
history: createWebHistory(),
|
|
routes,
|
|
scrollBehavior(_to, _from, savedPosition) {
|
|
if (savedPosition) {
|
|
return savedPosition
|
|
}
|
|
return { top: 0 }
|
|
}
|
|
})
|
|
|
|
router.beforeEach((to) => {
|
|
const page = (to.meta.title as string) || ''
|
|
const userStore = useUserSettingsStore()
|
|
const siteName = userStore.siteName || '爱莉希雅待办'
|
|
document.title = page ? `${page} - ${siteName}` : siteName
|
|
})
|
|
|
|
export default router
|