From 6bff5e4d97941b09d643a77e4a66df54db1cfe05 Mon Sep 17 00:00:00 2001 From: yuyx <237899745@qq.com> Date: Sat, 13 Dec 2025 22:01:12 +0800 Subject: [PATCH] fix: stats loader and smtp daily reset --- admin-frontend/src/pages/StatsPage.vue | 19 ++++++--- app.py | 34 +++++----------- email_service.py | 17 ++++++++ static/admin/.vite/manifest.json | 40 +++++++++---------- ...MhoIn.js => AnnouncementsPage-9I91QH6T.js} | 2 +- ...Page-DyjXJ34D.js => EmailPage-C0sjJZrc.js} | 2 +- ...-CfWRRZHi.js => FeedbacksPage-B_IMe7WI.js} | 2 +- ...sPage-l4b_fzxa.js => LogsPage-Bvt31x2D.js} | 2 +- ...ge-CxlYvx7A.js => PendingPage-Bs4BEacx.js} | 2 +- ...e-BzFvHjiG.js => SettingsPage-BA0VS3mc.js} | 2 +- static/admin/assets/StatsPage-B4w_lWWU.css | 1 + static/admin/assets/StatsPage-BtlChspk.js | 1 - static/admin/assets/StatsPage-CyjgHApe.js | 1 + static/admin/assets/StatsPage-sGNYYHzw.css | 1 - ...age-CXvYxeG3.js => SystemPage-DMxUhCvv.js} | 2 +- ...Page-BKx57Iyz.js => UsersPage-DDSa1S98.js} | 2 +- .../{index-BrN7V6n-.js => index-CrrNPCqw.js} | 4 +- .../{tasks-Dm4gmqjR.js => tasks-C2mQL6Tj.js} | 2 +- .../{users-BfeeRY2o.js => users-5QCWoNsI.js} | 2 +- static/admin/index.html | 2 +- 20 files changed, 76 insertions(+), 64 deletions(-) rename static/admin/assets/{AnnouncementsPage-D4dMhoIn.js => AnnouncementsPage-9I91QH6T.js} (98%) rename static/admin/assets/{EmailPage-DyjXJ34D.js => EmailPage-C0sjJZrc.js} (99%) rename static/admin/assets/{FeedbacksPage-CfWRRZHi.js => FeedbacksPage-B_IMe7WI.js} (97%) rename static/admin/assets/{LogsPage-l4b_fzxa.js => LogsPage-Bvt31x2D.js} (96%) rename static/admin/assets/{PendingPage-CxlYvx7A.js => PendingPage-Bs4BEacx.js} (97%) rename static/admin/assets/{SettingsPage-BzFvHjiG.js => SettingsPage-BA0VS3mc.js} (97%) create mode 100644 static/admin/assets/StatsPage-B4w_lWWU.css delete mode 100644 static/admin/assets/StatsPage-BtlChspk.js create mode 100644 static/admin/assets/StatsPage-CyjgHApe.js delete mode 100644 static/admin/assets/StatsPage-sGNYYHzw.css rename static/admin/assets/{SystemPage-CXvYxeG3.js => SystemPage-DMxUhCvv.js} (99%) rename static/admin/assets/{UsersPage-BKx57Iyz.js => UsersPage-DDSa1S98.js} (98%) rename static/admin/assets/{index-BrN7V6n-.js => index-CrrNPCqw.js} (99%) rename static/admin/assets/{tasks-Dm4gmqjR.js => tasks-C2mQL6Tj.js} (88%) rename static/admin/assets/{users-BfeeRY2o.js => users-5QCWoNsI.js} (91%) diff --git a/admin-frontend/src/pages/StatsPage.vue b/admin-frontend/src/pages/StatsPage.vue index 0b70069..34f30f2 100644 --- a/admin-frontend/src/pages/StatsPage.vue +++ b/admin-frontend/src/pages/StatsPage.vue @@ -3,7 +3,8 @@ import { computed, onBeforeUnmount, onMounted, ref } from 'vue' import { fetchDockerStats, fetchRunningTasks, fetchServerInfo, fetchTaskStats } from '../api/tasks' -const loading = ref(false) +const initialLoading = ref(true) +const lastUpdatedAt = ref('') const server = ref({ cpu_percent: '-', @@ -60,8 +61,15 @@ const serverDiskDisplay = computed(() => `${server.value.disk_used} / ${server.v let stop = false let timer = null +function recordUpdatedAt() { + try { + lastUpdatedAt.value = new Date().toLocaleTimeString('zh-CN', { hour12: false }) + } catch { + lastUpdatedAt.value = '' + } +} + async function loadOnce() { - loading.value = true try { const [serverInfo, dockerInfo, taskStat, running] = await Promise.all([ fetchServerInfo(), @@ -74,10 +82,11 @@ async function loadOnce() { docker.value = dockerInfo || docker.value taskStats.value = taskStat || taskStats.value monitor.value = running || monitor.value + recordUpdatedAt() } catch { // handled by interceptor } finally { - loading.value = false + initialLoading.value = false } } @@ -103,10 +112,10 @@ onBeforeUnmount(() => {