diff --git a/src/service/api/dashboard/index.ts b/src/service/api/dashboard/index.ts new file mode 100644 index 0000000..56861b4 --- /dev/null +++ b/src/service/api/dashboard/index.ts @@ -0,0 +1,84 @@ +import { request } from '../../http' +import type { + DailyActivityStatsVo, + DashboardQueryBo, + DashboardStatisticsVo, + LoginStatsVo, + LoginTrendVo, + StorageStatsVo, + UserStatsVo, +} from './types' + +// 重新导出类型供外部使用 +export type { + DailyActivityStatsVo, + DashboardQueryBo, + DashboardStatisticsVo, + LoginStatsVo, + LoginTrendItemVo, + LoginTrendVo, + StorageStatsVo, + UserStatsVo, +} from './types' + +// 仪表盘相关API + +/** + * 获取仪表盘统计数据 + */ +export function getDashboardStatistics() { + return request.Get>('/coder/dashboard/getStatistics') +} + +/** + * 获取登录趋势数据 + * @param days 查询天数,默认7天 + */ +export function getLoginTrend(days: number = 7) { + return request.Get>('/coder/dashboard/getLoginTrend', { + params: { days }, + }) +} + +/** + * 获取完整仪表盘数据 + * @param params 查询参数 + */ +export function getAllDashboardData(params: DashboardQueryBo = {}) { + const { includeTrend = true, trendDays = 7 } = params + return request.Get>('/coder/dashboard/getAllData', { + params: { includeTrend, trendDays }, + }) +} + +/** + * 获取用户统计数据 + */ +export function getUserStats() { + return request.Get>('/coder/dashboard/getUserStats') +} + +/** + * 获取登录统计数据 + * @param params 查询参数 + */ +export function getLoginStats(params: DashboardQueryBo = {}) { + const { includeTrend = false, trendDays = 7 } = params + return request.Get>('/coder/dashboard/getLoginStats', { + params: { includeTrend, trendDays }, + }) +} + +/** + * 获取存储统计数据 + */ +export function getStorageStats() { + return request.Get>('/coder/dashboard/getStorageStats') +} + +/** + * 获取今日活跃统计数据 + */ +export function getDailyActivityStats() { + return request.Get>('/coder/dashboard/getDailyActivityStats') +} diff --git a/src/service/api/dashboard/types.ts b/src/service/api/dashboard/types.ts new file mode 100644 index 0000000..7737a4e --- /dev/null +++ b/src/service/api/dashboard/types.ts @@ -0,0 +1,91 @@ +// 仪表盘API类型定义 + +// 用户统计数据 +export interface UserStatsVo { + /** 总用户数 */ + totalUsers: number + /** 今日新增用户数 */ + todayNewUsers: number + /** 活跃用户数 */ + activeUsers: number + /** 当前在线用户数 */ + onlineUsers: number +} + +// 登录趋势项 +export interface LoginTrendItemVo { + /** 日期(YYYY-MM-DD格式) */ + date: string + /** 当日登录次数 */ + count: number + /** 显示标签(用于图表展示) */ + label: string +} + +// 登录统计数据 +export interface LoginStatsVo { + /** 今日登录次数 */ + todayLogins: number + /** 累计登录次数 */ + totalLogins: number + /** 登录趋势数据 */ + loginTrend?: LoginTrendItemVo[] +} + +// 存储统计数据 +export interface StorageStatsVo { + /** 总文件数 */ + totalFiles: number + /** 总图片数 */ + totalImages: number + /** 总存储大小(格式化) */ + totalSize: string + /** 今日上传文件数 */ + todayUploads: number + /** 存储使用率(百分比) */ + storageUsage: number + /** 可用空间(格式化) */ + availableSpace: string +} + +// 今日活跃统计数据 +export interface DailyActivityStatsVo { + /** 今日访问量 */ + todayVisits: number + /** 今日操作数 */ + todayOperations: number + /** 活跃用户数 */ + activeUsers: number + /** 新增内容数 */ + newContent: number + /** API调用次数 */ + apiCalls: number + /** 平均响应时间(毫秒) */ + avgResponseTime: number +} + +// 仪表盘统计数据响应对象 +export interface DashboardStatisticsVo { + /** 用户统计数据 */ + userStats?: UserStatsVo + /** 登录统计数据 */ + loginStats?: LoginStatsVo + /** 存储统计数据 */ + storageStats?: StorageStatsVo + /** 今日活跃统计数据 */ + dailyActivityStats?: DailyActivityStatsVo +} + +// 登录趋势数据响应对象 +export interface LoginTrendVo { + /** 登录趋势数据列表 */ + loginTrend: LoginTrendItemVo[] +} + +// 查询参数类型 +export interface DashboardQueryBo { + /** 是否包含趋势数据 */ + includeTrend?: boolean + /** 趋势数据天数 */ + trendDays?: number +}