All checks were successful
continuous-integration/drone/push Build is passing
- 新增storage_service.py封装MinIO操作 - 修改upload.py使用storage_service上传文件 - 修改course_service.py使用storage_service删除文件 - 适配preview.py支持从MinIO获取文件 - 适配knowledge_analysis_v2.py支持MinIO存储 - 在config.py添加MinIO配置项 - 添加minio依赖到requirements.txt 支持特性: - 自动降级到本地存储(MinIO不可用时) - 保持URL格式兼容(/static/uploads/) - 文件自动缓存到本地(用于预览和分析) Co-authored-by: Cursor <cursoragent@cursor.com>
114 lines
2.2 KiB
TypeScript
114 lines
2.2 KiB
TypeScript
/**
|
|
* 任务管理API
|
|
*/
|
|
import { http } from '@/utils/http'
|
|
import type { ResponseModel } from '@/types/practice'
|
|
|
|
/**
|
|
* 任务接口
|
|
*/
|
|
export interface Task {
|
|
id: number
|
|
title: string
|
|
description?: string
|
|
priority: string
|
|
status: string
|
|
creator_id: number
|
|
deadline?: string
|
|
requirements?: any
|
|
progress: number
|
|
created_at: string
|
|
updated_at: string
|
|
courses: string[]
|
|
assigned_count: number
|
|
completed_count: number
|
|
}
|
|
|
|
/**
|
|
* 任务创建请求
|
|
*/
|
|
export interface TaskCreate {
|
|
title: string
|
|
description?: string
|
|
priority: string
|
|
deadline?: string
|
|
course_ids: number[]
|
|
user_ids: number[]
|
|
requirements?: any
|
|
}
|
|
|
|
/**
|
|
* 任务更新请求
|
|
*/
|
|
export interface TaskUpdate {
|
|
title?: string
|
|
description?: string
|
|
priority?: string
|
|
status?: string
|
|
deadline?: string
|
|
progress?: number
|
|
}
|
|
|
|
/**
|
|
* 任务统计响应
|
|
*/
|
|
export interface TaskStats {
|
|
total: number
|
|
ongoing: number
|
|
completed: number
|
|
expired: number
|
|
avg_completion_rate: number
|
|
}
|
|
|
|
/**
|
|
* 获取任务列表
|
|
*/
|
|
export function getTasks(params?: {
|
|
status?: string
|
|
page?: number
|
|
page_size?: number
|
|
}): Promise<ResponseModel<{ items: Task[]; total: number; page: number; page_size: number; total_pages: number }>> {
|
|
return http.get('/api/v1/manager/tasks', { params })
|
|
}
|
|
|
|
/**
|
|
* 获取任务统计
|
|
*/
|
|
export function getTaskStats(): Promise<ResponseModel<TaskStats>> {
|
|
return http.get('/api/v1/manager/tasks/stats')
|
|
}
|
|
|
|
/**
|
|
* 获取任务详情
|
|
*/
|
|
export function getTaskDetail(id: number): Promise<ResponseModel<Task>> {
|
|
return http.get(`/api/v1/manager/tasks/${id}`)
|
|
}
|
|
|
|
/**
|
|
* 创建任务
|
|
*/
|
|
export function createTask(data: TaskCreate): Promise<ResponseModel<Task>> {
|
|
return http.post('/api/v1/manager/tasks', data)
|
|
}
|
|
|
|
/**
|
|
* 更新任务
|
|
*/
|
|
export function updateTask(id: number, data: TaskUpdate): Promise<ResponseModel<Task>> {
|
|
return http.put(`/api/v1/manager/tasks/${id}`, data)
|
|
}
|
|
|
|
/**
|
|
* 删除任务
|
|
*/
|
|
export function deleteTask(id: number): Promise<ResponseModel<void>> {
|
|
return http.delete(`/api/v1/manager/tasks/${id}`)
|
|
}
|
|
|
|
/**
|
|
* 发送任务提醒
|
|
*/
|
|
export function sendTaskReminder(id: number): Promise<ResponseModel<void>> {
|
|
return http.post(`/api/v1/manager/tasks/${id}/remind`)
|
|
} |