From c38cefe47bbb3bc7b59b14c369d6ed184bdf2c4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BB=9D=E5=B0=98?= <237809796@qq.com> Date: Fri, 19 Jun 2026 15:04:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96:=20P2=E4=BD=8E=E9=A3=8E?= =?UTF-8?q?=E9=99=A9=E6=94=B6=E5=B0=BE(router404+meta.icon=E6=B8=85?= =?UTF-8?q?=E7=90=86+ErrorBoundary=E6=8E=A5=E5=85=A5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 9 +++++++-- src/router/index.ts | 27 ++++++++++++++++----------- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/src/App.vue b/src/App.vue index a2eec74..0f81949 100644 --- a/src/App.vue +++ b/src/App.vue @@ -3,14 +3,18 @@ - + + + @@ -35,6 +39,7 @@ import { useProjectStore } from './stores/project' import { useAppSettingsStore } from './stores/appSettings' import i18n from './i18n' import AiChat from './components/AiChat.vue' +import ErrorBoundary from './components/ErrorBoundary.vue' import AppLayout from './components/layout/AppLayout.vue' import { aiApi } from '@/api' diff --git a/src/router/index.ts b/src/router/index.ts index 12dc63b..d519405 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -15,67 +15,72 @@ const routes = [ path: '/dashboard', name: 'Dashboard', component: () => import('../views/Dashboard.vue'), - meta: { title: '总览', icon: 'icon-dashboard' }, + meta: { title: '总览' }, }, { path: '/ideas', name: 'Ideas', component: () => import('../views/Ideas.vue'), - meta: { title: '灵感', icon: 'icon-lightbulb' }, + meta: { title: '灵感' }, }, { path: '/ideas/:id', name: 'IdeasDetail', component: () => import('../views/Ideas.vue'), - meta: { title: '灵感详情', icon: 'icon-lightbulb' }, + meta: { title: '灵感详情' }, }, { path: '/projects', name: 'Projects', component: () => import('../views/Projects.vue'), - meta: { title: '项目', icon: 'icon-apps' }, + meta: { title: '项目' }, }, { path: '/projects/:id', name: 'ProjectDetail', component: () => import('../views/ProjectDetail.vue'), - meta: { title: '项目详情', icon: 'icon-apps' }, + meta: { title: '项目详情' }, }, { path: '/tasks', name: 'Tasks', component: () => import('../views/Tasks.vue'), - meta: { title: '任务', icon: 'icon-thunder' }, + meta: { title: '任务' }, }, { path: '/tasks/:id', name: 'TaskDetail', component: () => import('../views/TaskDetail.vue'), - meta: { title: '任务详情', icon: 'icon-thunder' }, + meta: { title: '任务详情' }, }, { path: '/knowledge', name: 'Knowledge', component: () => import('../views/Knowledge.vue'), - meta: { title: '知识库', icon: 'icon-book' }, + meta: { title: '知识库' }, }, { path: '/audit', name: 'AuditLog', component: () => import('../views/AuditLog.vue'), - meta: { title: '审批历史', icon: 'icon-audit' }, + meta: { title: '审批历史' }, }, { path: '/settings', name: 'Settings', component: () => import('../views/Settings.vue'), - meta: { title: '设置', icon: 'icon-settings' }, + meta: { title: '设置' }, }, { path: '/ai-detached', name: 'AiDetached', component: () => import('../views/AiDetached.vue'), - meta: { title: 'AI Chat', icon: 'icon-ai' }, + meta: { title: 'AI Chat' }, + }, + // catch-all:无效路由重定向首页(防白屏) + { + path: '/:pathMatch(.*)*', + redirect: '/', }, ]