import { createRouter, createWebHistory, type RouteRecordRaw } from 'vue-router' import { useAuthStore } from '@/stores/auth' const routes: RouteRecordRaw[] = [ { path: '/login', name: 'login', component: () => import('@/views/Login.vue') }, { path: '/', component: () => import('@/views/Layout.vue'), children: [ { path: '', redirect: '/backtest/new' }, { path: 'backtest/new', name: 'bt-new', component: () => import('@/views/backtest/New.vue') }, { path: 'backtest/progress/:id', name: 'bt-progress', component: () => import('@/views/backtest/Progress.vue') }, { path: 'backtest/result/:id', name: 'bt-result', component: () => import('@/views/backtest/Result.vue') }, { path: 'factor/new', name: 'fc-new', component: () => import('@/views/factor/New.vue') }, { path: 'factor/progress/:id', name: 'fc-progress', component: () => import('@/views/backtest/Progress.vue') }, { path: 'factor/result/:id', name: 'fc-result', component: () => import('@/views/factor/Result.vue') }, ], }, ] export const router = createRouter({ history: createWebHistory(), routes, }) router.beforeEach((to) => { const auth = useAuthStore() if (to.name !== 'login' && !auth.isAuthenticated) { return { name: 'login' } } })