image.ts 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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 prefix = '/api/v1/images'
  44. export const imageApi = {
  45. // --- 分类管理 ---
  46. // 获取全部分类树
  47. getCategories(): Promise<ApiResponse<ImageCategory[]>> {
  48. return request.get(`${prefix}/categories`)
  49. },
  50. // 新增分类
  51. addCategory(data: Partial<ImageCategory>): Promise<ApiResponse<{ id: string }>> {
  52. return request.post(`${prefix}/categories`, data)
  53. },
  54. // 更新分类
  55. updateCategory(id: string, data: Partial<ImageCategory>): Promise<ApiResponse<null>> {
  56. return request.put(`${prefix}/categories/${id}`, data)
  57. },
  58. // 删除分类
  59. deleteCategory(id: string): Promise<ApiResponse<null>> {
  60. return request.delete(`${prefix}/categories/${id}`)
  61. },
  62. // --- 图片管理 ---
  63. // 获取图片列表
  64. getList(params: ImageQueryParams): Promise<ApiResponse<PageResult<ImageItem>>> {
  65. return request.get(prefix, { params })
  66. },
  67. // 保存图片信息
  68. add(data: Partial<ImageItem>): Promise<ApiResponse<null>> {
  69. return request.post(prefix, data)
  70. },
  71. // 删除图片
  72. delete(id: string): Promise<ApiResponse<null>> {
  73. return request.delete(`${prefix}/${id}`)
  74. },
  75. // 获取上传链接
  76. getUploadUrl(filename: string, contentType: string): Promise<ApiResponse<{ upload_url: string, file_url: string, object_name: string }>> {
  77. return request.post(`${prefix}/upload-url`, { filename, content_type: contentType })
  78. }
  79. }