mirror of
https://github.com/hi2shark/nazhua.git
synced 2026-01-13 15:50:43 +08:00
55 lines
1.2 KiB
JavaScript
55 lines
1.2 KiB
JavaScript
import {
|
|
createRouter,
|
|
createWebHistory,
|
|
createWebHashHistory,
|
|
} from 'vue-router';
|
|
import config from '@/config';
|
|
import i18n from '@/i18n';
|
|
import pageTitle from '@/utils/page-title';
|
|
|
|
const constantRoutes = [{
|
|
name: 'Home',
|
|
path: '/',
|
|
component: () => import('@/views/home.vue'),
|
|
}, {
|
|
name: 'ServerDetail',
|
|
path: '/:serverId(\\d+)',
|
|
component: () => import('@/views/detail.vue'),
|
|
meta: {
|
|
title: () => i18n.global.t('serverDetail'),
|
|
},
|
|
props: true,
|
|
}, {
|
|
path: '/:pathMatch(.*)*',
|
|
redirect: {
|
|
name: 'Home',
|
|
},
|
|
}];
|
|
|
|
const routerOptions = {
|
|
history: config.nazhua.routeMode === 'h5' ? createWebHistory() : createWebHashHistory(),
|
|
scrollBehavior: (to, from, savedPosition) => {
|
|
if (savedPosition) {
|
|
return savedPosition;
|
|
}
|
|
return {
|
|
top: 0,
|
|
behavior: 'smooth',
|
|
};
|
|
},
|
|
routes: constantRoutes,
|
|
};
|
|
const router = createRouter(routerOptions);
|
|
|
|
router.beforeResolve((to, from, next) => {
|
|
if (to?.meta?.title) {
|
|
const title = typeof to.meta.title === 'function' ? to.meta.title() : to.meta.title;
|
|
pageTitle(title);
|
|
} else if (to.name === 'Home') {
|
|
pageTitle(config.nazhua.title);
|
|
}
|
|
next();
|
|
});
|
|
|
|
export default router;
|