image.ts 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. import request from './request'
  2. // --- 类型定义 ---
  3. export interface ImageCategory {
  4. id: string
  5. type_name: string
  6. parent_id: string
  7. remark?: string
  8. children?: ImageCategory[]
  9. created_time: string
  10. updated_time: string
  11. }
  12. export interface ImageItem {
  13. id: string
  14. image_name: string
  15. image_url: string
  16. image_type: string
  17. description?: string
  18. category_name?: string
  19. creator_name?: string
  20. created_by: string
  21. updated_by?: string
  22. created_time: string
  23. updated_time: string
  24. }
  25. export interface ImageQueryParams {
  26. category_id?: string
  27. page?: number
  28. page_size?: number
  29. }
  30. export interface ApiResponse<T = any> {
  31. code: number
  32. message: string
  33. data: T
  34. timestamp: string
  35. }
  36. export interface PageResult<T> {
  37. list: T[]
  38. total: number
  39. page: number
  40. page_size: number
  41. }
  42. // --- API 方法 ---
  43. const API_PREFIX = '/api/v1/images'
  44. export const imageApi = {
  45. // --- 分类管理 ---
  46. // 获取全部分类树
  47. getCategories(): Promise<ApiResponse<ImageCategory[]>> {
  48. return request.get(`${API_PREFIX}/categories`)
  49. },
  50. // 新增分类
  51. addCategory(data: Partial<ImageCategory>): Promise<ApiResponse<{ id: string }>> {
  52. return request.post(`${API_PREFIX}/categories`, data)
  53. },
  54. // 更新分类
  55. updateCategory(id: string, data: Partial<ImageCategory>): Promise<ApiResponse<null>> {
  56. return request.put(`${API_PREFIX}/categories/${id}`, data)
  57. },
  58. // 删除分类
  59. deleteCategory(id: string): Promise<ApiResponse<null>> {
  60. return request.delete(`${API_PREFIX}/categories/${id}`)
  61. },
  62. // --- 图片管理 ---
  63. // 获取图片列表
  64. getList(params: ImageQueryParams): Promise<ApiResponse<PageResult<ImageItem>>> {
  65. return request.get(API_PREFIX, { params })
  66. },
  67. // 保存图片信息
  68. add(data: Partial<ImageItem>): Promise<ApiResponse<null>> {
  69. return request.post(API_PREFIX, data)
  70. },
  71. // 删除图片
  72. delete(id: string): Promise<ApiResponse<null>> {
  73. return request.delete(`${API_PREFIX}/${id}`)
  74. },
  75. // 获取上传链接
  76. getUploadUrl(filename: string, contentType: string, prefix?: string): Promise<ApiResponse<{ upload_url: string, file_url: string, object_name: string }>> {
  77. return request.post(`${API_PREFIX}/upload-url`, { filename, content_type: contentType, prefix })
  78. },
  79. // 批量加入任务中心
  80. batchAddToTask(ids: string[]): Promise<ApiResponse<null>> {
  81. return request.post(`${API_PREFIX}/batch-add-to-task`, { ids })
  82. }
  83. }