From 0853e9591e8c3d0345ef01d96807238b51121b0e Mon Sep 17 00:00:00 2001 From: colin Date: Wed, 4 Feb 2026 11:24:10 +0800 Subject: [PATCH] feat(vben5): Add system info component --- .../app-antd/src/api/core/useSystemInfoApi.ts | 21 ++ apps/vben5/apps/app-antd/src/types/index.ts | 1 + .../apps/app-antd/src/types/systemInfo.ts | 21 ++ .../app-antd/src/views/_core/about/app.vue | 49 +++++ .../src/components/loggings/LoggingDrawer.vue | 21 +- apps/vben5/packages/@abp/ui/package.json | 1 + .../vben5/packages/@abp/ui/src/about/about.ts | 20 ++ .../packages/@abp/ui/src/about/about.vue | 193 ++++++++++++++++++ .../vben5/packages/@abp/ui/src/about/index.ts | 1 + apps/vben5/packages/@abp/ui/src/index.ts | 1 + 10 files changed, 321 insertions(+), 8 deletions(-) create mode 100644 apps/vben5/apps/app-antd/src/api/core/useSystemInfoApi.ts create mode 100644 apps/vben5/apps/app-antd/src/types/index.ts create mode 100644 apps/vben5/apps/app-antd/src/types/systemInfo.ts create mode 100644 apps/vben5/apps/app-antd/src/views/_core/about/app.vue create mode 100644 apps/vben5/packages/@abp/ui/src/about/about.ts create mode 100644 apps/vben5/packages/@abp/ui/src/about/about.vue create mode 100644 apps/vben5/packages/@abp/ui/src/about/index.ts diff --git a/apps/vben5/apps/app-antd/src/api/core/useSystemInfoApi.ts b/apps/vben5/apps/app-antd/src/api/core/useSystemInfoApi.ts new file mode 100644 index 000000000..4477c81d7 --- /dev/null +++ b/apps/vben5/apps/app-antd/src/api/core/useSystemInfoApi.ts @@ -0,0 +1,21 @@ +import type { SystemInfo } from '#/types/systemInfo'; + +import { useRequest } from '@abp/request'; + +export function useSystemInfoApi() { + const { cancel, request } = useRequest(); + + /** + * 获取应用程序状态 + */ + function getSystemInfoApi(): Promise { + return request('/api/system-info', { + method: 'GET', + }); + } + + return { + cancel, + getSystemInfoApi, + }; +} diff --git a/apps/vben5/apps/app-antd/src/types/index.ts b/apps/vben5/apps/app-antd/src/types/index.ts new file mode 100644 index 000000000..4cc4e2b25 --- /dev/null +++ b/apps/vben5/apps/app-antd/src/types/index.ts @@ -0,0 +1 @@ +export * from './systemInfo'; diff --git a/apps/vben5/apps/app-antd/src/types/systemInfo.ts b/apps/vben5/apps/app-antd/src/types/systemInfo.ts new file mode 100644 index 000000000..e69049e62 --- /dev/null +++ b/apps/vben5/apps/app-antd/src/types/systemInfo.ts @@ -0,0 +1,21 @@ +interface ComponentKey { + /** 组件名称 */ + name: string; + /** 组件显示名称 */ + displayName: string; +} + +interface ComponentInfo { + /** 组件名称 */ + name: string; + /** 组件名称集合 */ + keys: ComponentKey[]; + /** 组件状态集合 */ + details: Record; +} + +interface SystemInfo { + components: ComponentInfo[]; +} + +export type { SystemInfo }; diff --git a/apps/vben5/apps/app-antd/src/views/_core/about/app.vue b/apps/vben5/apps/app-antd/src/views/_core/about/app.vue new file mode 100644 index 000000000..9ce22f5b2 --- /dev/null +++ b/apps/vben5/apps/app-antd/src/views/_core/about/app.vue @@ -0,0 +1,49 @@ + + + diff --git a/apps/vben5/packages/@abp/auditing/src/components/loggings/LoggingDrawer.vue b/apps/vben5/packages/@abp/auditing/src/components/loggings/LoggingDrawer.vue index 577a59d4e..a61946deb 100644 --- a/apps/vben5/packages/@abp/auditing/src/components/loggings/LoggingDrawer.vue +++ b/apps/vben5/packages/@abp/auditing/src/components/loggings/LoggingDrawer.vue @@ -10,7 +10,7 @@ import { $t } from '@vben/locales'; import { formatToDateTime } from '@abp/core'; import { useVbenVxeGrid } from '@abp/ui'; -import { Descriptions, Tabs, Tag, Textarea } from 'ant-design-vue'; +import { Descriptions, Skeleton, Tabs, Tag, Textarea } from 'ant-design-vue'; import { useLoggingsApi } from '../../api/useLoggingsApi'; @@ -25,7 +25,7 @@ const TabPane = Tabs.TabPane; const DescriptionsItem = Descriptions.Item; const activedTab = ref('basic'); -const logModel = ref({} as LogDto); +const logModel = ref>({}); const { getApi } = useLoggingsApi(); const [Drawer, drawerApi] = useVbenDrawer({ @@ -83,7 +83,7 @@ const exceptionsGridOptions: VxeGridProps = { proxyConfig: { ajax: { query: () => { - return Promise.resolve(logModel.value.exceptions); + return Promise.resolve(logModel.value.exceptions ?? []); }, }, response: { @@ -108,7 +108,8 @@ async function onGet(id: string) {