index.ts 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import request from '@/utils/request';
  2. import { AxiosPromise } from 'axios';
  3. import { FileCategoryVO, FileCategoryForm, FileCategoryQuery, TableDataInfo } from './types';
  4. /**
  5. * 查询文件分类列表
  6. * @param query 查询参数
  7. * @returns Promise<TableDataInfo<FileCategoryVO>>
  8. */
  9. export const listFileCategory = (query?: FileCategoryQuery): AxiosPromise<TableDataInfo<FileCategoryVO>> => {
  10. // 移除空值
  11. const cleanQuery: Record<string, any> = {};
  12. if (query) {
  13. Object.keys(query).forEach((key) => {
  14. if (
  15. query[key as keyof FileCategoryQuery] !== undefined &&
  16. query[key as keyof FileCategoryQuery] !== null &&
  17. query[key as keyof FileCategoryQuery] !== ''
  18. ) {
  19. cleanQuery[key] = query[key as keyof FileCategoryQuery];
  20. }
  21. });
  22. }
  23. return request({
  24. url: '/resource/file/category/list',
  25. method: 'get',
  26. params: cleanQuery
  27. });
  28. };
  29. /**
  30. * 查询文件分类详细
  31. * @param id 分类ID
  32. * @returns Promise<FileCategoryVO>
  33. */
  34. export const getFileCategory = (id: number): AxiosPromise<FileCategoryVO> => {
  35. return request({
  36. url: `/resource/file/category/${id}`,
  37. method: 'get'
  38. });
  39. };
  40. /**
  41. * 新增文件分类
  42. * @param data 分类数据
  43. * @returns Promise<any>
  44. */
  45. export const addFileCategory = (data: FileCategoryForm): AxiosPromise<any> => {
  46. return request({
  47. url: '/resource/file/category',
  48. method: 'post',
  49. data: data
  50. });
  51. };
  52. /**
  53. * 修改文件分类
  54. * @param data 分类数据
  55. * @returns Promise<any>
  56. */
  57. export const updateFileCategory = (data: FileCategoryForm): AxiosPromise<any> => {
  58. return request({
  59. url: '/resource/file/category',
  60. method: 'put',
  61. data: data
  62. });
  63. };
  64. /**
  65. * 删除文件分类
  66. * @param id 分类ID
  67. * @returns Promise<any>
  68. */
  69. export const delFileCategory = (id: number | number[]): AxiosPromise<any> => {
  70. const ids = Array.isArray(id) ? id.join(',') : id;
  71. return request({
  72. url: `/resource/file/category/${ids}`,
  73. method: 'delete'
  74. });
  75. };
  76. /**
  77. * 查询文件分类树结构
  78. * @returns Promise<FileCategoryVO[]>
  79. */
  80. export const listFileCategoryTree = (): AxiosPromise<FileCategoryVO[]> => {
  81. return request({
  82. url: '/resource/file/category/tree',
  83. method: 'get'
  84. });
  85. };
  86. /**
  87. * 根据类型查询分类列表
  88. * @param type 分类类型
  89. * @returns Promise<FileCategoryVO[]>
  90. */
  91. export const listFileCategoryByType = (type: number): AxiosPromise<FileCategoryVO[]> => {
  92. return request({
  93. url: `/resource/file/category/type/${type}`,
  94. method: 'get'
  95. });
  96. };