import { createRouter, createWebHistory } from 'vue-router' import Main from '../pages/Main.vue' import LeadboardView from '../views/LeadboardView.vue' import LiveView from '../views/LiveView.vue' import AddAssetsView from '../views/AddAssetView.vue' import { dataService } from '../lib/dataService.js' const routes = [ { path: '/', name: 'main', component: Main, redirect: '/leadboard', children: [ { path: '/leadboard', name: 'leadboard', component: LeadboardView }, { path: '/live', name: 'live', component: LiveView }, { path: '/add-asset', name: 'add-asset', component: AddAssetsView }, ] } ] const router = createRouter({ history: createWebHistory(), routes }) // 全局路由守卫:确保数据在导航前开始加载 router.beforeEach(async (to, from, next) => { // 如果数据还未加载且不在加载中,则触发加载 if (!dataService.loaded && !dataService.loading) { console.log('[Router] Triggering data load before navigation') // 不等待加载完成,让加载在后台进行 dataService.load().catch(e => { console.error('[Router] Error loading data:', e) }) } next() }) export default router