diff --git a/urbanLifelineWeb/packages/platform/src/router/index.ts b/urbanLifelineWeb/packages/platform/src/router/index.ts index 01ea988f..eb9aca9b 100644 --- a/urbanLifelineWeb/packages/platform/src/router/index.ts +++ b/urbanLifelineWeb/packages/platform/src/router/index.ts @@ -97,6 +97,30 @@ router.beforeEach(async (to, from, next) => { dynamicRoutesLoaded = true // ✅ 加载成功后才设置标志 console.log('[Platform Router] 动态路由加载成功') + // 添加 404 路由(确保它是最后匹配的) + if (!notFoundRouteAdded) { + router.addRoute({ + path: '/:pathMatch(.*)*', + name: 'NotFound', + component: () => Promise.resolve({ + default: { + render: () => h('div', { + style: { + padding: '20px', + textAlign: 'center' + } + }, '404 - 页面未找到') + } + }), + meta: { + title: '404', + requiresAuth: false + } + }) + notFoundRouteAdded = true + console.log('[Platform Router] 404 路由已添加') + } + if (to.path === '/') { // 访问根路径,重定向到第一个可用路由 const firstRoute = getFirstAvailableRoute() @@ -115,10 +139,15 @@ router.beforeEach(async (to, from, next) => { } } else { console.warn('[Platform Router] 动态路由加载失败,未返回有效数据') + // ✅ 加载失败也要调用next()继续导航 + next() + return } } catch (error) { console.error('[Platform Router] 加载动态路由失败:', error) - // 加载失败不设置标志,下次还会尝试加载 + // ✅ 加载失败不设置标志,下次还会尝试加载,但要调用next()继续导航 + next() + return } }