72 lines
1.5 KiB
TypeScript
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()
|
|
}
|