From 6ff5c6e949edfe7b236ffac2ef04d0a675b4bf5c Mon Sep 17 00:00:00 2001 From: chengqian Date: Thu, 30 Jul 2026 14:40:10 +0800 Subject: [PATCH] =?UTF-8?q?fix(web):=20=E9=98=B2=E6=AD=A2=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E5=BC=82=E5=B8=B8=E9=98=BB=E5=A1=9E=E8=B7=AF=E7=94=B1?= =?UTF-8?q?=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/RouteErrorBoundary.vue | 45 ++++++++++++++++++ web/admin/src/main.ts | 3 ++ web/admin/src/views/AdminLayout.vue | 7 ++- .../components/common/RouteErrorBoundary.vue | 46 +++++++++++++++++++ web/tenant/src/main.ts | 3 ++ web/tenant/src/views/Layout.vue | 7 ++- 6 files changed, 108 insertions(+), 3 deletions(-) create mode 100644 web/admin/src/components/RouteErrorBoundary.vue create mode 100644 web/tenant/src/components/common/RouteErrorBoundary.vue diff --git a/web/admin/src/components/RouteErrorBoundary.vue b/web/admin/src/components/RouteErrorBoundary.vue new file mode 100644 index 0000000..7935347 --- /dev/null +++ b/web/admin/src/components/RouteErrorBoundary.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/web/admin/src/main.ts b/web/admin/src/main.ts index 661008c..4ba0800 100644 --- a/web/admin/src/main.ts +++ b/web/admin/src/main.ts @@ -27,6 +27,9 @@ console.log( ) const app = createApp(App) +app.config.errorHandler = (error, _instance, info) => { + console.error('[VueError]', info, error) +} app.use(createPinia()) app.use(ArcoVue) app.use(router) diff --git a/web/admin/src/views/AdminLayout.vue b/web/admin/src/views/AdminLayout.vue index 9b3c96b..70bbc4f 100644 --- a/web/admin/src/views/AdminLayout.vue +++ b/web/admin/src/views/AdminLayout.vue @@ -5,6 +5,7 @@ import { Message } from '@arco-design/web-vue' import axios from 'axios' import { marked } from 'marked' import request from '@/utils/request' +import RouteErrorBoundary from '@/components/RouteErrorBoundary.vue' import { useWatermark } from '@/composables/useWatermark' import { useSiteName } from '@/composables/useSiteName' import { @@ -610,9 +611,11 @@ onUnmounted(() => {
- + - + + +
diff --git a/web/tenant/src/components/common/RouteErrorBoundary.vue b/web/tenant/src/components/common/RouteErrorBoundary.vue new file mode 100644 index 0000000..98ff179 --- /dev/null +++ b/web/tenant/src/components/common/RouteErrorBoundary.vue @@ -0,0 +1,46 @@ + + + diff --git a/web/tenant/src/main.ts b/web/tenant/src/main.ts index 425faee..b7926af 100644 --- a/web/tenant/src/main.ts +++ b/web/tenant/src/main.ts @@ -29,6 +29,9 @@ console.log( ) const app = createApp(App) +app.config.errorHandler = (error, _instance, info) => { + console.error('[VueError]', info, error) +} app.use(head) app.use(createPinia()) app.use(router) diff --git a/web/tenant/src/views/Layout.vue b/web/tenant/src/views/Layout.vue index a928885..21e3ccb 100644 --- a/web/tenant/src/views/Layout.vue +++ b/web/tenant/src/views/Layout.vue @@ -10,6 +10,7 @@ import { toast } from '@/utils/toast' import Icon from '@/components/common/Icon.vue' import MaintenanceBanner from '@/components/common/MaintenanceBanner.vue' import AnnouncementBanner from '@/components/common/AnnouncementBanner.vue' +import RouteErrorBoundary from '@/components/common/RouteErrorBoundary.vue' import { marked } from 'marked' import request from '@/utils/request' @@ -510,7 +511,11 @@ onBeforeUnmount(() => { class="tenant-main px-3 pb-5 pt-4 md:px-5 md:pb-6 lg:pt-5" :class="{ 'tenant-table-main': route.meta.viewportTable }" > - + + + + +