主页是框架的欢迎页,即登录后的第一个页面,该页面无需开发者手动配置路由。
主页对应的页面文件为 /src/views/index.vue
。
在应用配置中设置:
const globalSettings: Settings.all = {
home: {
enable: false,
},
}
关闭主页后,登录后将直接跳转到次导航下第一个导航对应的页面,效果如下:
如果要更改主页显示的标题,可以在应用配置中设置:
const globalSettings: Settings.all = {
home: {
title: '主页',
},
}
但需要注意,专业版里如果框架开启国际化后,在这里修改并不会生效,因此需要在语言包中进行修改,更多请阅读《国际化 - 语言包》。
主页默认路径为根路径 /
,即 http://localhost:9000/#/
,但也可以将其修改为其他路径,例如 /home
,在应用配置中设置:
const globalSettings: Settings.all = {
home: {
fullPath: '/home',
},
}
在 src/router/routes.ts
中修改:
// 系统路由
const systemRoutes: RouteRecordRaw[] = [
{
path: '/',
component: () => import('@/layouts/index.vue'),
meta: {
breadcrumb: false,
},
children: [
{
path: '',
path: 'home',
component: () => import('@/views/index.vue'),
meta: {
title: $t(useSettingsStore(pinia).settings.home.title),
icon: 'i-ant-design:home-twotone',
breadcrumb: false,
},
},
...
],
},
]
这样就可以通过访问 http://localhost:9000/#/home
进入主页。
这么做的好处是可以将网站根路径设置为一个独立的页面,例如门户类网站的首页,方便提供给未登录用户浏览。
下面是一个补充完整的例子:
在 src/router/routes.ts
中增加:
// 固定路由(默认路由)
const constantRoutes: RouteRecordRaw[] = [
{
path: '/',
name: 'index',
component: () => import('@/views/new_page.vue'), // 记得手动新建这个文件
meta: {
title: '首页',
},
},
{
path: '/login',
name: 'login',
component: () => import('@/views/login.vue'),
meta: {
title: '登录',
},
},
...
]
然后在 src/router/index.ts
中修改:
router.beforeEach(async (to, from, next) => {
const settingsStore = useSettingsStore()
const userStore = useUserStore()
const routeStore = useRouteStore()
const menuStore = useMenuStore()
settingsStore.settings.app.enableProgress && (isLoading.value = true)
// 是否已登录
if (userStore.isLogin) {
...
}
else {
if (to.name !== 'login') {
if (to.name !== 'login' && to.name !== 'index') {
next({
name: 'login',
query: {
redirect: to.fullPath !== settingsStore.settings.home.fullPath ? to.fullPath : undefined,
},
})
}
else {
next()
}
}
})
现在就可以通过 http://localhost:9000/#/
访问新创建的这个页面了,并且无需登录。
在 src/router/routes.ts
中增加:
// 固定路由(默认路由)
const constantRoutes: RouteRecordRaw[] = [
{
path: '/',
name: 'index',
component: () => import('@/views/new_page.vue'), // 记得手动新建这个文件
meta: {
whiteList: true,
title: '首页',
},
},
{
path: '/login',
name: 'login',
component: () => import('@/views/login.vue'),
meta: {
whiteList: true,
title: $t('route.login'),
},
},
...
]
现在就可以通过 http://localhost:9000/#/
访问新创建的这个页面了,并且无需登录。