case.ts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. import {
  2. axios,
  3. caseInfo,
  4. caseSceneList,
  5. getCasePsw,
  6. repCaseScenes,
  7. setCasePsw,
  8. syncInfo,
  9. updateCaseFile,
  10. caseApiList,
  11. saveApiOrUpdate,
  12. caseApiDel,
  13. caseApiUpdateSort,
  14. caseInquestInfo,
  15. caseInquestOpt,
  16. caseInquestExport
  17. } from "@/request";
  18. import { ModelScene, QuoteScene, Scene, SceneType } from "./scene";
  19. import { CaseFile } from "./caseFile";
  20. export type Case = {
  21. caseId: number;
  22. caseTitle: string;
  23. createTime: string;
  24. name: string;
  25. tbStatus: string;
  26. userName: number;
  27. };
  28. export type CaseImg = {
  29. id: number;
  30. caseId: number;
  31. imgInfo: string | null;
  32. imgUrl: string | null;
  33. status: number | null;
  34. sort: number | null;
  35. };
  36. export const setCaseSharePWD = (params: { caseId: number; randCode: string }) =>
  37. axios.post(setCasePsw, params);
  38. export const getCaseSharePWD = async (params: { caseId: number }) =>
  39. (await axios.get<string>(getCasePsw, { params })).data;
  40. export const getCaseInfo = async (caseId: number) =>
  41. (await axios.get<Case>(caseInfo, { params: { caseId } })).data;
  42. export const updateCaseInfo = async (caseFile: CaseFile) =>
  43. await axios.post(updateCaseFile, {
  44. filesId: caseFile.filesId,
  45. filesTitle: caseFile.filesTitle,
  46. });
  47. export const getCaseSceneList = async (caseId: number): Promise<Scene[]> => {
  48. return (await axios.get(caseSceneList, { params: { caseId } })).data;
  49. };
  50. export const getSyncSceneInfo = async (caseId: number) => {
  51. return (await axios.post<string>(syncInfo, { caseId })).data;
  52. };
  53. export const getSceneKey = (scene: Scene) =>
  54. scene.type === SceneType.SWMX
  55. ? (scene as ModelScene).modelId
  56. : (scene as QuoteScene).num;
  57. export type CaseScenes = { type: SceneType; numList: (string | number)[] }[];
  58. export const getCaseScenes = (scenes: Scene[]) => {
  59. const typeIdents = [
  60. { type: SceneType.SWKJ, numList: [] },
  61. { type: SceneType.SWKK, numList: [] },
  62. { type: SceneType.SWMX, numList: [] },
  63. { type: SceneType.SWSS, numList: [] },
  64. { type: SceneType.SWSSMX, numList: [] },
  65. { type: SceneType.SWYDSS, numList: [] },
  66. { type: SceneType.SWYDMX, numList: [] },
  67. ] as CaseScenes;
  68. for (const scene of scenes) {
  69. const typeIdent = typeIdents.find((ident) => ident.type === scene.type)!;
  70. typeIdent.numList.push(getSceneKey(scene));
  71. }
  72. return typeIdents;
  73. };
  74. export const replaceCaseScenes = (caseId: number, caseScenes: CaseScenes) =>
  75. axios.post(repCaseScenes, { sceneNumParam: caseScenes, caseId });
  76. export const caseImgList = (caseId: number, orderBy: string | null) =>
  77. axios.post(caseApiList, { orderBy: orderBy || 'desc', caseId });
  78. export const saveOrUpdate = (params: CaseImg) =>
  79. axios.post(saveApiOrUpdate, { ...params });
  80. export const caseDel = (id: number) =>
  81. axios.post(caseApiDel, { id });
  82. export const caseUpdateSort = (list: [CaseImg]) =>
  83. axios.post(caseApiUpdateSort, { paramList: list });
  84. export const getCaseInquestInfo = (caseId: number) =>
  85. axios.get(caseInquestInfo, { params: { caseId } });
  86. export const saveCaseInquestInfo = (caseId: number, data) =>
  87. axios.post(caseInquestOpt, { caseId, ...data });
  88. export const exportCaseInquestInfo = (caseId: number) =>
  89. axios.get(caseInquestExport, { params: { caseId, ingoreRes: true }, responseType: 'blob' });