index.ts 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. import request from '@/utils/request';
  2. import { AxiosPromise } from 'axios';
  3. import { FileInfoVO, FileInfoForm, FileInfoQuery, TableDataInfo } from './types';
  4. /**
  5. * 查询文件信息列表
  6. * @param query 查询参数
  7. * @returns Promise<TableDataInfo<FileInfoVO>>
  8. */
  9. export const listFileInfo = (query?: FileInfoQuery): AxiosPromise<TableDataInfo<FileInfoVO>> => {
  10. // 移除空值
  11. const cleanQuery: Record<string, any> = {};
  12. if (query) {
  13. Object.keys(query).forEach((key) => {
  14. if (query[key as keyof FileInfoQuery] !== undefined && query[key as keyof FileInfoQuery] !== null && query[key as keyof FileInfoQuery] !== '') {
  15. cleanQuery[key] = query[key as keyof FileInfoQuery];
  16. }
  17. });
  18. }
  19. return request({
  20. url: '/resource/file/info/list',
  21. method: 'get',
  22. params: cleanQuery
  23. });
  24. };
  25. /**
  26. * 查询文件信息详细
  27. * @param id 文件ID
  28. * @returns Promise<FileInfoVO>
  29. */
  30. export const getFileInfo = (id: number): AxiosPromise<FileInfoVO> => {
  31. return request({
  32. url: `/resource/file/info/${id}`,
  33. method: 'get'
  34. });
  35. };
  36. /**
  37. * 新增文件信息
  38. * @param data 文件数据
  39. * @returns Promise<any>
  40. */
  41. export const addFileInfo = (data: FileInfoForm): AxiosPromise<any> => {
  42. return request({
  43. url: '/resource/file/info',
  44. method: 'post',
  45. data: data
  46. });
  47. };
  48. /**
  49. * 修改文件信息
  50. * @param data 文件数据
  51. * @returns Promise<any>
  52. */
  53. export const updateFileInfo = (data: FileInfoForm): AxiosPromise<any> => {
  54. return request({
  55. url: '/resource/file/info',
  56. method: 'put',
  57. data: data
  58. });
  59. };
  60. /**
  61. * 删除文件信息
  62. * @param id 文件ID
  63. * @returns Promise<any>
  64. */
  65. export const delFileInfo = (id: number | number[]): AxiosPromise<any> => {
  66. const ids = Array.isArray(id) ? id.join(',') : id;
  67. return request({
  68. url: `/resource/file/info/${ids}`,
  69. method: 'delete'
  70. });
  71. };
  72. /**
  73. * 根据分类ID查询文件列表
  74. * @param categoryId 分类ID
  75. * @returns Promise<FileInfoVO[]>
  76. */
  77. export const listFileInfoByCategory = (categoryId: number): AxiosPromise<FileInfoVO[]> => {
  78. return request({
  79. url: `/resource/file/info/category/${categoryId}`,
  80. method: 'get'
  81. });
  82. };
  83. /**
  84. * 根据文件类型查询文件列表
  85. * @param type 文件类型
  86. * @returns Promise<FileInfoVO[]>
  87. */
  88. export const listFileInfoByType = (type: string): AxiosPromise<FileInfoVO[]> => {
  89. return request({
  90. url: `/resource/file/info/type/${type}`,
  91. method: 'get'
  92. });
  93. };
  94. /**
  95. * 更新文件下载次数
  96. * @param id 文件ID
  97. * @returns Promise<any>
  98. */
  99. export const updateDownloadCount = (id: number): AxiosPromise<any> => {
  100. return request({
  101. url: `/resource/file/info/download/${id}`,
  102. method: 'put'
  103. });
  104. };
  105. /**
  106. * 更新文件查看次数
  107. * @param id 文件ID
  108. * @returns Promise<any>
  109. */
  110. export const updateViewCount = (id: number): AxiosPromise<any> => {
  111. return request({
  112. url: `/resource/file/info/view/${id}`,
  113. method: 'put'
  114. });
  115. };