Files
lingji-work-fe/src/router/index.ts
2025-09-11 11:26:51 +08:00

76 lines
1.7 KiB
TypeScript

/*
* @Author: RenXiaoDong
* @Date: 2025-06-22 22:59:16
*/
import { createRouter, createWebHistory } from 'vue-router';
import { appRoutes } from './routes';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
import { MENU_GROUP_IDS } from './constants';
import createRouteGuard from './guard';
import { GROUP_MAIN_NAME } from '@/layouts/components/siderBar/menu-list';
NProgress.configure({ showSpinner: false }); // NProgress Configuration
export const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [
{
path: '/login',
name: 'UserLogin',
component: () => import('@/views/login/index.vue'),
meta: {
requiresAuth: false,
requireLogin: false,
},
},
{
path: '/',
name: 'Index',
redirect: '/chat',
meta: {
requiresAuth: false,
requireLogin: true,
group: GROUP_MAIN_NAME,
},
},
{
path: '/chat/:conversationId?',
name: 'Home',
component: () => import('@/views/home/index.vue'),
meta: {
requiresAuth: true,
requireLogin: true,
},
},
{
path: '/trial',
name: 'Trial',
component: () => import('@/views/trial/index.vue'),
meta: {
requiresAuth: false,
requireLogin: true,
},
},
...appRoutes,
{
path: '/:pathMatch(.*)*',
name: 'notFound',
component: () => import('@/layouts/NotFound.vue'),
meta: {
requiresAuth: false,
hideInMenu: true,
hideSidebar: true,
},
},
],
scrollBehavior() {
return { top: 0 };
},
});
createRouteGuard(router);
export default router;