From 01b801bebc0a30018fd5f2a27d7f53b842feff96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?cls=5F=E5=AE=81=E6=B3=A2=E6=9C=AC=E6=9C=BA?= <908705107@qq.com> Date: Mon, 22 Jun 2026 12:42:23 +0800 Subject: [PATCH] perf: split light dashboard runtime --- .../dashboard-design/DashboardRenderer.vue | 2 +- .../LightDashboardRenderer.vue | 135 ++++++++++++++++ .../components/LightWidgetRenderer.vue | 147 ++++++++++++++++++ .../components/WidgetRenderer.vue | 12 +- .../components/widgets/AnnouncementList.vue | 2 +- .../components/widgets/ApprovalCenter.vue | 2 +- .../components/widgets/FilterDate.vue | 6 +- .../components/widgets/FilterDateRange.vue | 18 +-- .../components/widgets/FilterInput.vue | 6 +- .../components/widgets/FilterSelect.vue | 6 +- .../components/widgets/MyApps.vue | 24 +-- .../components/widgets/NoticeList.vue | 2 +- .../components/widgets/QuickLinks.vue | 2 +- .../components/widgets/ServerMonitor.vue | 2 +- .../components/widgets/WeatherWidget.vue | 2 +- .../components/widgets/WelcomeCard.vue | 2 +- .../store/dashboardRuntimeStore.ts | 141 +++++++++++++++++ .../dashboard-design/utils/dataFetcher.ts | 6 +- .../src/views/_core/page-render/index.vue | 85 +++++++++- .../agent/components/AgentChatPanel.vue | 17 +- .../workflow/editor/components/ChatPanel.vue | 39 +++-- 21 files changed, 591 insertions(+), 67 deletions(-) create mode 100644 web/apps/web-ele/src/components/dashboard-design/LightDashboardRenderer.vue create mode 100644 web/apps/web-ele/src/components/dashboard-design/components/LightWidgetRenderer.vue create mode 100644 web/apps/web-ele/src/components/dashboard-design/store/dashboardRuntimeStore.ts diff --git a/web/apps/web-ele/src/components/dashboard-design/DashboardRenderer.vue b/web/apps/web-ele/src/components/dashboard-design/DashboardRenderer.vue index debc5b0..314da62 100644 --- a/web/apps/web-ele/src/components/dashboard-design/DashboardRenderer.vue +++ b/web/apps/web-ele/src/components/dashboard-design/DashboardRenderer.vue @@ -1,5 +1,5 @@ + + + + diff --git a/web/apps/web-ele/src/components/dashboard-design/components/LightWidgetRenderer.vue b/web/apps/web-ele/src/components/dashboard-design/components/LightWidgetRenderer.vue new file mode 100644 index 0000000..db409c3 --- /dev/null +++ b/web/apps/web-ele/src/components/dashboard-design/components/LightWidgetRenderer.vue @@ -0,0 +1,147 @@ + + + + + diff --git a/web/apps/web-ele/src/components/dashboard-design/components/WidgetRenderer.vue b/web/apps/web-ele/src/components/dashboard-design/components/WidgetRenderer.vue index d8ff8ec..18e5290 100644 --- a/web/apps/web-ele/src/components/dashboard-design/components/WidgetRenderer.vue +++ b/web/apps/web-ele/src/components/dashboard-design/components/WidgetRenderer.vue @@ -2,7 +2,7 @@ import type { DashboardWidget, WidgetMaterial, -} from '../store/dashboardDesignStore'; +} from '../store/dashboardRuntimeStore'; import { computed, @@ -18,8 +18,8 @@ import { $t } from '@vben/locales'; import { defaultWidgetStyle, - useDashboardDesignStore, -} from '../store/dashboardDesignStore'; + useDashboardRuntimeStore, +} from '../store/dashboardRuntimeStore'; import { createRefreshTimer, fetchWidgetData } from '../utils/dataFetcher'; const props = defineProps<{ @@ -106,15 +106,13 @@ const widgetComponents: Record< 'filter-select': defineAsyncComponent( () => import('./widgets/FilterSelect.vue'), ), - 'filter-date': defineAsyncComponent( - () => import('./widgets/FilterDate.vue'), - ), + 'filter-date': defineAsyncComponent(() => import('./widgets/FilterDate.vue')), 'filter-date-range': defineAsyncComponent( () => import('./widgets/FilterDateRange.vue'), ), }; -const store = useDashboardDesignStore(); +const store = useDashboardRuntimeStore(); const currentComponent = computed(() => { return widgetComponents[props.widget.type]; diff --git a/web/apps/web-ele/src/components/dashboard-design/components/widgets/AnnouncementList.vue b/web/apps/web-ele/src/components/dashboard-design/components/widgets/AnnouncementList.vue index cbe48df..84f3074 100644 --- a/web/apps/web-ele/src/components/dashboard-design/components/widgets/AnnouncementList.vue +++ b/web/apps/web-ele/src/components/dashboard-design/components/widgets/AnnouncementList.vue @@ -1,5 +1,5 @@