import { createRouter, createWebHistory } from 'vue-router' import HomeView from '../views/HomeView.vue' import DownloadView from '../views/DownloadView.vue' import StockAnalysisView from '../views/StockAnalysisView.vue' import { useUserStore } from '../stores/user' const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes: [ { path: '/', name: 'home', component: HomeView, }, { path: '/ai-agents', name: 'ai-agents', component: () => import('../views/AIAgentsView.vue'), meta: { title: 'AI 助理团队', }, }, { path: '/ai-agent', name: 'ai-agent', component: () => import('../views/AIAgentView.vue'), meta: { requiresVIP: true }, }, { path: '/download', name: 'download', component: DownloadView, meta: { standalone: true }, }, { path: '/stock-analysis', name: 'stock-analysis', component: StockAnalysisView, meta: { requiresAuth: true, title: '股票分析助理', }, }, { path: '/crypto-analysis', name: 'crypto-analysis', component: () => import('../views/CryptoAnalysisView.vue'), meta: { requiresAuth: true, title: '加密货币分析助理', }, }, { path: '/astock-analysis', name: 'astock-analysis', component: () => import('../views/AStockAnalysisView.vue'), meta: { requiresAuth: true, title: 'A股分析助理', }, }, ], }) // 路由守卫 router.beforeEach((to, from, next) => { const userStore = useUserStore() const isAuthenticated = userStore.isAuthenticated const userInfo = userStore.userInfo // 如果页面需要未登录状态(如登录、注册页面) if (to.meta.requiresGuest && isAuthenticated) { next('/') return } // 如果页面需要VIP权限 if (to.meta.requiresVIP) { if (!isAuthenticated) { // 未登录用户,可以直接访问页面,在页面内会显示登录提示 next() return } else if (userInfo && userInfo.level < 1) { // 已登录但不是VIP用户,可以直接访问页面,在页面内会显示升级提示 next() return } } next() }) export default router