case.ts 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. import {
  2. axios,
  3. caseInfo,
  4. caseSceneList,
  5. getCasePsw,
  6. repCaseScenes,
  7. setCasePsw,
  8. syncInfo,
  9. updateCaseFile,
  10. caseApiList,
  11. saveApiOrUpdate,
  12. uploadImagesAndSave,
  13. caseApiDel,
  14. caseApiUpdateSort,
  15. caseInquestInfo,
  16. caseInquestOpt,
  17. caseInquestExport,
  18. caseExtractDetail,
  19. caseExtractDetailOpt,
  20. caseExtractDetailExport,
  21. copyExample,
  22. saveCaseImgTag,
  23. getCaseImgTag,
  24. ffmpegMergeImage
  25. } from "@/request";
  26. import { ModelScene, QuoteScene, Scene, SceneType } from "./scene";
  27. import { CaseFile } from "./caseFile";
  28. export type Case = {
  29. value: Case;
  30. caseId: number;
  31. caseTitle: string;
  32. createTime: string;
  33. name: string;
  34. tbStatus: string;
  35. userName: number;
  36. mapUrl?: string;
  37. latlng?: string;
  38. latAndLong?: string;
  39. mapShow?: boolean;
  40. };
  41. export type CaseImg = {
  42. id: number;
  43. caseId: number;
  44. imgInfo: string | null;
  45. imgUrl: string | null;
  46. status: number | null;
  47. sort: number | null;
  48. };
  49. export type filesItem = {
  50. caseId: number;
  51. imgInfo: string | null;
  52. imgUrl: string | null;
  53. };
  54. export type AllSaveFile = {
  55. imgUrls: filesItem[];
  56. };
  57. export const setCaseSharePWD = (params: { caseId: number; randCode: string }) =>
  58. axios.post(setCasePsw, params);
  59. export const getCaseSharePWD = async (params: { caseId: number }) =>
  60. (await axios.get<string>(getCasePsw, { params })).data;
  61. export const getCaseInfo = async (caseId: number) =>
  62. (await axios.get<Case>(caseInfo, { params: { caseId } })).data;
  63. export const copyCase = (caseId: number) => axios.post(copyExample, { caseId });
  64. export const updateCaseInfo = async (caseFile: CaseFile) =>
  65. await axios.post(updateCaseFile, {
  66. filesId: caseFile.filesId,
  67. filesTitle: caseFile.filesTitle,
  68. });
  69. export const getCaseSceneList = async (caseId: number): Promise<Scene[]> => {
  70. return (await axios.get(caseSceneList, { params: { caseId } })).data;
  71. };
  72. export const getSyncSceneInfo = async (caseId: number) => {
  73. return (await axios.post<string>(syncInfo, { caseId })).data;
  74. };
  75. export const getSceneKey = (scene: Scene) =>
  76. scene.type === SceneType.SWMX
  77. ? (scene as ModelScene).modelId
  78. : (scene as QuoteScene).num;
  79. export type CaseScenes = { type: SceneType; numList: (string | number)[] }[];
  80. export const getCaseScenes = (scenes: Scene[]) => {
  81. const typeIdents = [
  82. { type: SceneType.SWKJ, numList: [] },
  83. { type: SceneType.SWKK, numList: [] },
  84. { type: SceneType.SWMX, numList: [] },
  85. { type: SceneType.SWSS, numList: [] },
  86. { type: SceneType.SWSSMX, numList: [] },
  87. { type: SceneType.SWYDSS, numList: [] },
  88. { type: SceneType.SWYDMX, numList: [] },
  89. ] as CaseScenes;
  90. for (const scene of scenes) {
  91. const typeIdent = typeIdents.find((ident) => ident.type === scene.type)!;
  92. typeIdent.numList.push(getSceneKey(scene));
  93. }
  94. return typeIdents;
  95. };
  96. export const replaceCaseScenes = (caseId: number, caseScenes: CaseScenes) =>
  97. axios.post(repCaseScenes, { sceneNumParam: caseScenes, caseId });
  98. export const caseImgList = (caseId: number, orderBy: string | null) =>
  99. axios.post(caseApiList, { orderBy: orderBy || "", caseId });
  100. export const saveOrUpdate = (params: CaseImg) =>
  101. axios.post(saveApiOrUpdate, { ...params });
  102. export const saveOrAndSave = (params: AllSaveFile) =>
  103. axios.post(uploadImagesAndSave, { ...params });
  104. export const caseDel = (id: number) => axios.post(caseApiDel, { id });
  105. export const caseUpdateSort = (list: [CaseImg]) =>
  106. axios.post(caseApiUpdateSort, { paramList: list });
  107. export const getCaseInquestInfo = (caseId: number) =>
  108. axios.get(caseInquestInfo, { params: { caseId } });
  109. export const saveCaseInquestInfo = (caseId: number, data) =>
  110. axios.post(caseInquestOpt, { caseId, ...data });
  111. export const exportCaseInquestInfo = (caseId: number) =>
  112. axios.get(caseInquestExport, {
  113. params: { caseId, ingoreRes: true },
  114. responseType: "blob",
  115. });
  116. export const getCaseDetailInfo = (caseId: number) =>
  117. axios.get(caseExtractDetail, { params: { caseId } });
  118. export const saveCaseDetailInfo = (caseId: number, data) =>
  119. axios.post(caseExtractDetailOpt, { caseId, ...data });
  120. export const exportCaseDetailInfo = (caseId: number) =>
  121. axios.get(caseExtractDetailExport, {
  122. params: { caseId, ingoreRes: true },
  123. responseType: "blob",
  124. });
  125. //
  126. export const saveCaseImgTagData = (params: any) =>
  127. axios.post(saveCaseImgTag, { ...params });
  128. export const getCaseImgTagData = (caseId: number) =>
  129. axios.get(getCaseImgTag, { params: { caseId } });
  130. export const submitMergePhotos = (data) => axios.post(ffmpegMergeImage, { ...data })