From fb19e434216394af9a778248c8ca5aee547504d0 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Mon, 10 Jul 2023 16:42:31 +0800 Subject: [PATCH] add dashboard --- src/@core/utils/formatters.ts | 23 ++ src/api/types.ts | 40 ++++ src/pages/dashboard.vue | 105 ++++----- src/views/dashboard/AnalyticsAward.vue | 57 ----- .../dashboard/AnalyticsMediaStatistic.vue | 87 ++++++++ src/views/dashboard/AnalyticsProcesses.vue | 55 +++++ src/views/dashboard/AnalyticsStorage.vue | 74 +++++++ src/views/dashboard/AnalyticsTransactions.vue | 81 ------- src/views/dashboard/AnalyticsUserTable.vue | 204 ------------------ 9 files changed, 315 insertions(+), 411 deletions(-) delete mode 100644 src/views/dashboard/AnalyticsAward.vue create mode 100644 src/views/dashboard/AnalyticsMediaStatistic.vue create mode 100644 src/views/dashboard/AnalyticsProcesses.vue create mode 100644 src/views/dashboard/AnalyticsStorage.vue delete mode 100644 src/views/dashboard/AnalyticsTransactions.vue delete mode 100644 src/views/dashboard/AnalyticsUserTable.vue diff --git a/src/@core/utils/formatters.ts b/src/@core/utils/formatters.ts index fb8a0141..2626c640 100644 --- a/src/@core/utils/formatters.ts +++ b/src/@core/utils/formatters.ts @@ -67,3 +67,26 @@ export const formatFileSize = (bytes: number) => { return `${size.toFixed(2)} ${units[unitIndex]}`; } + +// 将时间秒格式化为时分秒 +export const formatSeconds = (seconds: number) => { + const hours = Math.floor(seconds / 3600); + const minutes = Math.floor((seconds % 3600) / 60); + const remainingSeconds = seconds % 60; + + let formattedTime = ''; + + if (hours > 0) { + formattedTime += `${hours}小时`; + } + + if (minutes > 0) { + formattedTime += `${minutes}分`; + } + + if (remainingSeconds > 0 || formattedTime === '') { + formattedTime += `${remainingSeconds}秒`; + } + + return formattedTime; +} diff --git a/src/api/types.ts b/src/api/types.ts index e9099d43..13d6f739 100644 --- a/src/api/types.ts +++ b/src/api/types.ts @@ -426,3 +426,43 @@ export interface User { is_superuser: boolean, avatar: string, }; + + +// 存储空间 +export interface Storage { + total_storage: number, + used_storage: number, + +} + + +// 媒体统计 +export interface MediaStatistic { + // 电影总数 + movie_count: number, + // 电视剧总数 + tv_count: number, + // 电视剧总集数 + episode_count: number, + // 用户数量 + user_count: number, +} + + +// 后台进程 +export interface Process { + // 进程ID + pid: number, + // 进程名称 + name: string, + // 进程状态 + status: string, + // 进程启动时间 + create_time: number, + // 进程运行时间 + run_time: number, + // 进程CPU占用率 + cpu: number, + // 进程内存占用 + memory: number, +} diff --git a/src/pages/dashboard.vue b/src/pages/dashboard.vue index 85072490..837a9a2c 100644 --- a/src/pages/dashboard.vue +++ b/src/pages/dashboard.vue @@ -1,115 +1,82 @@ diff --git a/src/views/dashboard/AnalyticsAward.vue b/src/views/dashboard/AnalyticsAward.vue deleted file mode 100644 index 4a4c3df6..00000000 --- a/src/views/dashboard/AnalyticsAward.vue +++ /dev/null @@ -1,57 +0,0 @@ - - - - - diff --git a/src/views/dashboard/AnalyticsMediaStatistic.vue b/src/views/dashboard/AnalyticsMediaStatistic.vue new file mode 100644 index 00000000..b4a2ec6a --- /dev/null +++ b/src/views/dashboard/AnalyticsMediaStatistic.vue @@ -0,0 +1,87 @@ + + + diff --git a/src/views/dashboard/AnalyticsProcesses.vue b/src/views/dashboard/AnalyticsProcesses.vue new file mode 100644 index 00000000..143a899c --- /dev/null +++ b/src/views/dashboard/AnalyticsProcesses.vue @@ -0,0 +1,55 @@ + + + diff --git a/src/views/dashboard/AnalyticsStorage.vue b/src/views/dashboard/AnalyticsStorage.vue new file mode 100644 index 00000000..4bc8b84f --- /dev/null +++ b/src/views/dashboard/AnalyticsStorage.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/src/views/dashboard/AnalyticsTransactions.vue b/src/views/dashboard/AnalyticsTransactions.vue deleted file mode 100644 index 673e453f..00000000 --- a/src/views/dashboard/AnalyticsTransactions.vue +++ /dev/null @@ -1,81 +0,0 @@ - - - diff --git a/src/views/dashboard/AnalyticsUserTable.vue b/src/views/dashboard/AnalyticsUserTable.vue deleted file mode 100644 index 0bf4a217..00000000 --- a/src/views/dashboard/AnalyticsUserTable.vue +++ /dev/null @@ -1,204 +0,0 @@ - - -