diff --git a/src/components/dialog/SiteStatisticsDialog.vue b/src/components/dialog/SiteStatisticsDialog.vue new file mode 100644 index 00000000..2fa27d42 --- /dev/null +++ b/src/components/dialog/SiteStatisticsDialog.vue @@ -0,0 +1,479 @@ + + + + + diff --git a/src/components/dialog/SiteUserDataDialog.vue b/src/components/dialog/SiteUserDataDialog.vue index d06ba66d..fd7fb082 100644 --- a/src/components/dialog/SiteUserDataDialog.vue +++ b/src/components/dialog/SiteUserDataDialog.vue @@ -290,8 +290,8 @@ onBeforeMount(() => { - {{ t('dialog.siteUserData.title') }} - {{ props.site?.name }} + + {{ t('dialog.siteUserData.title') }} - {{ props.site?.name }} diff --git a/src/locales/en-US.ts b/src/locales/en-US.ts index 1195b458..946e052a 100644 --- a/src/locales/en-US.ts +++ b/src/locales/en-US.ts @@ -1053,6 +1053,21 @@ export default { deleteSite: 'Delete Site', updateCookie: 'Update Cookie', viewUserData: 'View User Data', + statistics: 'Statistics', + totalSites: 'Total Sites', + normalSites: 'Normal Sites', + slowSites: 'Slow Sites', + failedSites: 'Failed Sites', + averageTime: 'Average Time', + successRate: 'Success Rate', + successCount: 'Success Count', + failCount: 'Fail Count', + lastAccess: 'Last Access', + timeRecords: 'Time Records', + recentTimeRecords: 'Recent Time Records', + accessTime: 'Access Time', + responseTime: 'Response Time', + noTimeRecords: 'No Time Records', }, message: { loadMore: 'Load More', diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index 8eb0ed16..bab5c0be 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -1049,6 +1049,21 @@ export default { deleteSite: '删除站点', updateCookie: '更新Cookie', viewUserData: '查看用户数据', + statistics: '统计信息', + totalSites: '总站点数', + normalSites: '正常站点', + slowSites: '缓慢站点', + failedSites: '失败站点', + averageTime: '平均耗时', + successRate: '成功率', + successCount: '成功次数', + failCount: '失败次数', + lastAccess: '最后访问', + timeRecords: '耗时记录', + recentTimeRecords: '最近耗时记录', + accessTime: '访问时间', + responseTime: '响应时间', + noTimeRecords: '暂无耗时记录', }, message: { loadMore: '加载更多', diff --git a/src/locales/zh-TW.ts b/src/locales/zh-TW.ts index e1fac69a..72442ae0 100644 --- a/src/locales/zh-TW.ts +++ b/src/locales/zh-TW.ts @@ -1048,6 +1048,21 @@ export default { deleteSite: '刪除站點', updateCookie: '更新Cookie', viewUserData: '查看用戶數據', + statistics: '統計信息', + totalSites: '總站點數', + normalSites: '正常站點', + slowSites: '緩慢站點', + failedSites: '失敗站點', + averageTime: '平均耗時', + successRate: '成功率', + successCount: '成功次數', + failCount: '失敗次數', + lastAccess: '最後訪問', + timeRecords: '耗時記錄', + recentTimeRecords: '最近耗時記錄', + accessTime: '訪問時間', + responseTime: '響應時間', + noTimeRecords: '暫無耗時記錄', }, message: { loadMore: '加載更多', diff --git a/src/views/site/SiteCardListView.vue b/src/views/site/SiteCardListView.vue index b55334fe..81338ddc 100644 --- a/src/views/site/SiteCardListView.vue +++ b/src/views/site/SiteCardListView.vue @@ -5,6 +5,7 @@ import type { Site, SiteUserData } from '@/api/types' import SiteCard from '@/components/cards/SiteCard.vue' import NoDataFound from '@/components/NoDataFound.vue' import SiteAddEditDialog from '@/components/dialog/SiteAddEditDialog.vue' +import SiteStatisticsDialog from '@/components/dialog/SiteStatisticsDialog.vue' import { useDisplay } from 'vuetify' import { useDynamicButton } from '@/composables/useDynamicButton' import { useI18n } from 'vue-i18n' @@ -39,6 +40,9 @@ const loading = ref(false) // 新增站点对话框 const siteAddDialog = ref(false) +// 统计信息对话框 +const siteStatsDialog = ref(false) + // 筛选相关 const filterMenu = ref(false) const filterOption = ref('all') // all, active, inactive, connected, slow, failed, unknown @@ -235,44 +239,54 @@ useDynamicButton({
- - - - - - - - {{ t('common.filter') }} - +
+ + + + + {{ t('site.statistics') }} + + + + + + + + + + {{ t('common.filter') }} + + + {{ option.label }} + + + + + +
@@ -326,4 +340,7 @@ useDynamicButton({ @save="onSiteSave" @close="siteAddDialog = false" /> + + +