Files
yidaima/RuoYi-Vue/easycode-web/src/router/index.js

44 lines
1.5 KiB
JavaScript
Raw Normal View History

2026-05-22 16:26:33 +08:00
import { createRouter, createWebHistory } from 'vue-router'
import { ElMessage } from 'element-plus'
import { getToken } from '@/utils/auth'
import HomeView from '@/views/HomeView.vue'
import LoginView from '@/views/LoginView.vue'
import RegisterView from '@/views/RegisterView.vue'
import GenerateView from '@/views/GenerateView.vue'
import ProjectListView from '@/views/ProjectListView.vue'
2026-05-22 16:26:33 +08:00
import PreviewView from '@/views/PreviewView.vue'
import SourceDetailView from '@/views/SourceDetailView.vue'
import SourceStoreView from '@/views/SourceStoreView.vue'
2026-05-22 16:26:33 +08:00
const routes = [
{ path: '/', name: 'home', component: HomeView },
{ path: '/login', name: 'login', component: LoginView },
{ path: '/register', name: 'register', component: RegisterView },
{ path: '/source-store', name: 'source-store', component: SourceStoreView },
{ path: '/source-store/:sourceId', name: 'source-detail', component: SourceDetailView },
{ path: '/projects', name: 'projects', component: ProjectListView, meta: { requiresAuth: true } },
2026-05-22 16:26:33 +08:00
{ path: '/generate', name: 'generate', component: GenerateView, meta: { requiresAuth: true } },
{
path: '/project/:projectId/preview',
name: 'preview',
component: PreviewView,
meta: { requiresAuth: true }
}
]
const router = createRouter({
history: createWebHistory(),
routes
})
router.beforeEach((to) => {
if (to.meta.requiresAuth && !getToken()) {
ElMessage.warning('请先登录后再使用生成工作台')
return { path: '/login', query: { redirect: to.fullPath } }
}
return true
})
export default router