Files
Document_Translator/frontend/src/services/admin.js
2025-09-03 21:04:31 +08:00

123 lines
2.6 KiB
JavaScript

import { request } from '@/utils/request'
/**
* 管理員相關 API
*/
export const adminAPI = {
/**
* 取得系統統計資訊
* @param {string} period - 統計週期 (day/week/month/year)
*/
getStats(period = 'month') {
return request.get('/admin/stats', { params: { period } })
},
/**
* 取得所有使用者任務
* @param {Object} params - 查詢參數
*/
getAllJobs(params = {}) {
const defaultParams = {
page: 1,
per_page: 50,
user_id: 'all',
status: 'all'
}
return request.get('/admin/jobs', { params: { ...defaultParams, ...params } })
},
/**
* 取得使用者列表
*/
getUsers() {
return request.get('/admin/users')
},
/**
* 取得使用者詳細資訊
* @param {number} userId - 使用者 ID
*/
getUserDetail(userId) {
return request.get(`/admin/users/${userId}`)
},
/**
* 更新使用者狀態
* @param {number} userId - 使用者 ID
* @param {Object} data - 更新資料
*/
updateUser(userId, data) {
return request.put(`/admin/users/${userId}`, data)
},
/**
* 取得 API 使用統計
* @param {Object} params - 查詢參數
*/
getApiUsageStats(params = {}) {
return request.get('/admin/api-usage', { params })
},
/**
* 取得系統日誌
* @param {Object} params - 查詢參數
*/
getSystemLogs(params = {}) {
const defaultParams = {
page: 1,
per_page: 100,
level: 'all'
}
return request.get('/admin/logs', { params: { ...defaultParams, ...params } })
},
/**
* 取得成本報表
* @param {Object} params - 查詢參數
*/
getCostReport(params = {}) {
return request.get('/admin/cost-report', { params })
},
/**
* 匯出報表
* @param {string} type - 報表類型
* @param {Object} params - 查詢參數
*/
exportReport(type, params = {}) {
return request.get(`/admin/export/${type}`, {
params,
responseType: 'blob'
})
},
/**
* 系統健康檢查
*/
getSystemHealth() {
return request.get('/admin/health')
},
/**
* 取得系統指標
*/
getSystemMetrics() {
return request.get('/admin/metrics')
},
/**
* 清理舊檔案
* @param {Object} options - 清理選項
*/
cleanupOldFiles(options = {}) {
const defaultOptions = {
cleanup_files: true,
cleanup_logs: false,
cleanup_cache: false,
files_days: 7,
logs_days: 30,
cache_days: 90
}
return request.post('/admin/maintenance/cleanup', { ...defaultOptions, ...options })
}
}