chatgpt-web/src/router/index.ts
2024-03-06 10:09:16 +08:00

72 lines
1.5 KiB
TypeScript

import type { App } from 'vue'
import type { RouteRecordRaw } from 'vue-router'
import { createRouter, createWebHashHistory } from 'vue-router'
import { setupPageGuard } from './permission'
import { ChatLayout } from '@/views/chat/layout'
const routes: RouteRecordRaw[] = [
{
path: '/',
name: 'Root',
component: ChatLayout,
redirect: '/chat',
children: [
{
path: '/chat',
name: 'Chat',
component: () => import('@/views/chat/index.vue'),
},
],
},
{
path: '/login',
name: 'login',
component: () => import('@/views/login/index.vue'),
},
{
path: '/mine',
name: 'mine',
component: () => import('@/views/mine/index.vue'),
},
{
path: '/serveInfo',
name: 'serveInfo',
component: () => import('@/views/info/serveInfo.vue'),
},
{
path: '/privateInfo',
name: 'privateInfo',
component: () => import('@/views/info/privateInfo.vue'),
},
{
path: '/404',
name: '404',
component: () => import('@/views/exception/404/index.vue'),
},
{
path: '/500',
name: '500',
component: () => import('@/views/exception/500/index.vue'),
},
{
path: '/:pathMatch(.*)*',
name: 'notFound',
redirect: '/404',
},
]
export const router = createRouter({
history: createWebHashHistory(),
routes,
scrollBehavior: () => ({ left: 0, top: 0 }),
})
setupPageGuard(router)
export async function setupRouter(app: App) {
app.use(router)
await router.isReady()
}