diff --git a/src/api/types.ts b/src/api/types.ts index b7549857..71126f0e 100644 --- a/src/api/types.ts +++ b/src/api/types.ts @@ -1000,6 +1000,12 @@ export interface MediaStatistic { episode_count: number | null // 用户数量 user_count: number + // 本月新增电影数量 + movie_count_month: number + // 本月新增电视剧数量 + tv_count_month: number + // 本月新增剧集数量 + episode_count_month: number } // 后台进程 @@ -1020,6 +1026,18 @@ export interface Process { memory: number } +// 仪表板系统摘要 +export interface DashboardSystemInfo { + // 主机名称 + hostname: string + // 操作系统名称 + operating_system: string + // MoviePilot 运行时间,单位秒 + runtime: number + // MoviePilot 后端版本 + version: string +} + // 下载器信息 export interface DownloaderInfo { // 下载速度 diff --git a/src/components/misc/DashboardElement.vue b/src/components/misc/DashboardElement.vue index 031f81e4..8e3f5e14 100644 --- a/src/components/misc/DashboardElement.vue +++ b/src/components/misc/DashboardElement.vue @@ -33,6 +33,9 @@ const builtInDashboardComponentLoaders: Record library: () => import('@/views/dashboard/MediaServerLibrary.vue'), playing: () => import('@/views/dashboard/MediaServerPlaying.vue'), latest: () => import('@/views/dashboard/MediaServerLatest.vue'), + recentImports: () => import('@/views/dashboard/DashboardRecentImports.vue'), + quickActions: () => import('@/views/dashboard/DashboardQuickActions.vue'), + systemInfo: () => import('@/views/dashboard/DashboardSystemInfo.vue'), } const builtInDashboardComponentPromises = new Map>() @@ -74,6 +77,9 @@ const AnalyticsNetwork = createAsyncDashboardComponent('network') const MediaServerLibrary = createAsyncDashboardComponent('library') const MediaServerPlaying = createAsyncDashboardComponent('playing') const MediaServerLatest = createAsyncDashboardComponent('latest') +const DashboardRecentImports = createAsyncDashboardComponent('recentImports') +const DashboardQuickActions = createAsyncDashboardComponent('quickActions') +const DashboardSystemInfo = createAsyncDashboardComponent('systemInfo') // 输入参数 const props = defineProps({ @@ -205,6 +211,9 @@ onUnmounted(() => { + + +