P0-1: 分类拖拽排序 - category-manage 添加拖拽 UI P1-1: 反馈回复展示 - 新增 GET /feedback/mine + 前端我的反馈Tab P1-2: 备份管理页面 - 新增下载端点 + backup-manage 页面 P2-1: 统计年度/周视图 - stats 支持 period 参数 + 前端维度切换器 P2-2: 数据导入 - 新增 POST /import 端点 + data-import 页面 P2-3: 数据导出服务端化 - 新增 GET /export 流式端点 P3-1: 健康检查展示 - health 移到 auth 前 + admin 状态卡片 P3-2~4: 交易标签系统 - tags CRUD + 交易关联 + 按标签筛选统计 后端: 新增 tag.ts/export.ts 路由, 改造 feedback/backup/transaction/stats 前端: 新增 DragSortList 组件, 3个新页面, 改造 7 个现有页面 QA 修复: 5个严重Bug + 4个潜在问题
39 lines
987 B
TypeScript
39 lines
987 B
TypeScript
import { request } from '@/utils/request'
|
|
|
|
/** 备份记录 */
|
|
export interface Backup {
|
|
id: number
|
|
name: string
|
|
size: number
|
|
status: 'pending' | 'completed' | 'failed'
|
|
created_at: string
|
|
downloadToken?: string
|
|
}
|
|
|
|
/** 备份列表响应 */
|
|
export interface BackupList {
|
|
list: Backup[]
|
|
total: number
|
|
}
|
|
|
|
/** 获取备份列表 */
|
|
export function getBackups(params?: { page?: number; pageSize?: number }) {
|
|
return request<BackupList>({ url: '/backup', data: params })
|
|
}
|
|
|
|
/** 创建备份 */
|
|
export function createBackup() {
|
|
return request<{ id: number }>({ url: '/backup', method: 'POST' })
|
|
}
|
|
|
|
/** 删除备份 */
|
|
export function deleteBackup(id: number) {
|
|
return request({ url: `/backup/${id}`, method: 'DELETE' })
|
|
}
|
|
|
|
/** 获取备份下载地址 */
|
|
export function getBackupDownloadUrl(id: number, token: string): string {
|
|
const apiBase = typeof window !== 'undefined' ? '/api' : ''
|
|
return `${apiBase}/backup/${id}/download?token=${encodeURIComponent(token)}`
|
|
}
|