material.ts 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import { asyncTimeout } from "@/utils";
  2. import { PagingRequest, PagingResult } from ".";
  3. import { MATERIAL_GROUP_LIST, MATERIAL_PAG } from "./constant";
  4. import axios from "./instance";
  5. export type MaterialGroup = {
  6. id: number;
  7. name: string;
  8. };
  9. export type Material = {
  10. id: number;
  11. name: string;
  12. format: string;
  13. url: string;
  14. size: number;
  15. groupId: number;
  16. group: string;
  17. modelId?: number
  18. };
  19. export type MaterialPageProps = PagingRequest<Partial<Material> & {groupIds: number[]}>;
  20. export const fetchMaterialPage = async (params: MaterialPageProps) => {
  21. await asyncTimeout(160)
  22. let materials: PagingResult<Material[]> = {
  23. ...params,
  24. total: 100,
  25. list: [
  26. {
  27. id: params.pageNum,
  28. name: "test",
  29. format: params.format || "png",
  30. url: "icon/h_default_64.png",
  31. groupId: 1,
  32. group: "分组1",
  33. size: 1024,
  34. },
  35. {
  36. id: params.pageNum + 100,
  37. name: "test",
  38. format: params.format || "mp3",
  39. url: "icon/h_default_64.png",
  40. groupId: 1,
  41. group: "分组1",
  42. size: 1024,
  43. },
  44. {
  45. id: params.pageNum + 200,
  46. name: "test",
  47. format: params.format || "mp4",
  48. url: "icon/h_default_64.png",
  49. groupId: 1,
  50. group: "分组1",
  51. size: 1024,
  52. },
  53. {
  54. id: params.pageNum + 200,
  55. name: "mesh",
  56. format: "obj",
  57. url: "icon/h_default_64.png",
  58. groupId: 2,
  59. group: "分组2",
  60. size: 254.58 * 1024 * 1024,
  61. },
  62. ],
  63. };
  64. if (params.groupIds) {
  65. materials.list = materials.list.filter(i => params.groupIds.includes(i.groupId))
  66. }
  67. return materials
  68. // const material = await axios.get<PagingResult<Material[]>>(MATERIAL_PAG, { params })
  69. // return material
  70. };
  71. export const fetchMaterialGroups = async () => {
  72. await asyncTimeout(160)
  73. const groups: MaterialGroup[] = [
  74. {id: 1, name: '分组1'},
  75. {id: 2, name: '分组2'},
  76. ]
  77. return groups
  78. // return axios.get<MaterialGroup[]>(MATERIAL_GROUP_LIST);
  79. };