| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287 |
- import request from './request'
- import type { ApiResponse } from '@/types/auth'
- export interface SystemStats {
- total_users: number
- active_users: number
- new_users_today: number
- total_apps: number
- active_apps: number
- new_apps_today: number
- active_tokens: number
- today_requests: number
- requests_change_percent: number
- uptime: string
- cpu_usage: number
- memory_usage: number
- }
- export interface UserManagement {
- id: string
- username: string
- email: string
- phone?: string
- is_active: boolean
- is_superuser: boolean
- last_login_at?: string
- created_at: string
- login_count: number
- app_count: number
- }
- export interface AppManagement {
- id: string
- name: string
- app_key: string
- description?: string
- is_active: boolean
- is_trusted: boolean
- created_by: string
- creator_username: string
- created_at: string
- user_count: number
- request_count: number
- }
- export interface SystemLog {
- id: string
- level: string
- message: string
- module: string
- user_id?: string
- username?: string
- ip_address?: string
- created_at: string
- extra_data?: Record<string, any>
- }
- export interface SecurityEvent {
- id: string
- event_type: string
- severity: string
- title: string
- description: string
- user_id?: string
- username?: string
- ip_address: string
- user_agent?: string
- created_at: string
- handled: boolean
- }
- export interface SystemConfig {
- // 基本设置
- site_name: string
- site_description: string
- site_logo?: string
-
- // 安全设置
- password_min_length: number
- password_require_uppercase: boolean
- password_require_lowercase: boolean
- password_require_numbers: boolean
- password_require_symbols: boolean
- login_max_attempts: number
- login_lockout_duration: number
-
- // 令牌设置
- default_access_token_expires: number
- default_refresh_token_expires: number
- max_token_lifetime: number
-
- // 邮件设置
- email_enabled: boolean
- smtp_host?: string
- smtp_port?: number
- smtp_username?: string
- smtp_password?: string
- smtp_use_tls: boolean
-
- // 其他设置
- registration_enabled: boolean
- email_verification_required: boolean
- admin_approval_required: boolean
- }
- export const adminApi = {
- // 获取系统统计
- getSystemStats(): Promise<ApiResponse<SystemStats>> {
- return request.get('/api/v1/system/admin/stats')
- },
- // 获取用户列表(管理员视图)
- getUsers(params?: {
- page?: number
- page_size?: number
- keyword?: string
- status?: string
- role?: string
- start_date?: string
- end_date?: string
- }): Promise<ApiResponse<{
- items: UserManagement[]
- total: number
- page: number
- page_size: number
- }>> {
- return request.get('/api/v1/system/admin/users', { params })
- },
- // 创建用户
- createUser(data: {
- username: string
- email: string
- password: string
- phone?: string
- is_superuser?: boolean
- }): Promise<ApiResponse<UserManagement>> {
- return request.post('/api/v1/system/admin/users', data)
- },
- // 更新用户
- updateUser(userId: string, data: {
- email?: string
- phone?: string
- is_active?: boolean
- is_superuser?: boolean
- }): Promise<ApiResponse<UserManagement>> {
- return request.put(`/api/v1/system/admin/users/${userId}`, data)
- },
- // 删除用户
- deleteUser(userId: string): Promise<ApiResponse> {
- return request.delete(`/api/v1/system/admin/users/${userId}`)
- },
- // 重置用户密码
- resetUserPassword(userId: string, newPassword: string): Promise<ApiResponse> {
- return request.put(`/api/v1/system/admin/users/${userId}/password`, {
- new_password: newPassword
- })
- },
- // 强制用户下线
- forceUserLogout(userId: string): Promise<ApiResponse> {
- return request.post(`/api/v1/system/admin/users/${userId}/force-logout`)
- },
- // 获取应用列表(管理员视图)
- getApps(params?: {
- page?: number
- page_size?: number
- keyword?: string
- status?: string
- creator?: string
- start_date?: string
- end_date?: string
- }): Promise<ApiResponse<{
- items: AppManagement[]
- total: number
- page: number
- page_size: number
- }>> {
- return request.get('/api/v1/system/admin/apps', { params })
- },
- // 审核应用
- approveApp(appId: string, approved: boolean, reason?: string): Promise<ApiResponse> {
- return request.put(`/api/v1/system/admin/apps/${appId}/approve`, {
- approved,
- reason
- })
- },
- // 获取系统日志
- getSystemLogs(params?: {
- page?: number
- page_size?: number
- level?: string
- module?: string
- start_time?: string
- end_time?: string
- keyword?: string
- }): Promise<ApiResponse<{
- items: SystemLog[]
- total: number
- page: number
- page_size: number
- }>> {
- return request.get('/api/v1/system/admin/logs', { params })
- },
- // 获取安全事件
- getSecurityEvents(params?: {
- page?: number
- page_size?: number
- event_type?: string
- severity?: string
- handled?: boolean
- start_time?: string
- end_time?: string
- }): Promise<ApiResponse<{
- items: SecurityEvent[]
- total: number
- page: number
- page_size: number
- }>> {
- return request.get('/api/v1/system/admin/security/events', { params })
- },
- // 处理安全事件
- handleSecurityEvent(eventId: string, action: string, note?: string): Promise<ApiResponse> {
- return request.put(`/api/v1/system/admin/security/events/${eventId}`, {
- action,
- note
- })
- },
- // 获取系统配置
- getSystemConfig(): Promise<ApiResponse<SystemConfig>> {
- return request.get('/api/v1/system/admin/config')
- },
- // 更新系统配置
- updateSystemConfig(config: Partial<SystemConfig>): Promise<ApiResponse> {
- return request.put('/api/v1/system/admin/config', config)
- },
- // 系统备份
- createBackup(description?: string): Promise<ApiResponse<{ backup_id: string }>> {
- return request.post('/api/v1/system/admin/backup', { description })
- },
- // 获取备份列表
- getBackups(): Promise<ApiResponse<Array<{
- id: string
- description: string
- size: number
- created_at: string
- }>>> {
- return request.get('/api/v1/system/admin/backups')
- },
- // 下载备份
- downloadBackup(backupId: string): Promise<Blob> {
- return request.get(`/api/v1/system/admin/backups/${backupId}/download`, {
- responseType: 'blob'
- })
- },
- // 数据导出
- exportData(type: 'users' | 'apps' | 'logs', format: 'csv' | 'json', filters?: Record<string, any>): Promise<Blob> {
- return request.post(`/api/v1/system/admin/export/${type}`, {
- format,
- filters
- }, {
- responseType: 'blob'
- })
- },
- // 清理过期数据
- cleanupExpiredData(types: string[]): Promise<ApiResponse<{
- cleaned_count: number
- types: string[]
- }>> {
- return request.post('/api/v1/system/admin/cleanup', { types })
- }
- }
|