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 }" > - + + + + +
页面数据异常,请重试或返回仪表盘