case.ts 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. import {
  2. axios,
  3. caseInfo,
  4. caseSceneList,
  5. getCasePsw,
  6. repCaseScenes,
  7. setCasePsw,
  8. syncInfo,
  9. updateCaseFile,
  10. caseInquestInfo,
  11. newFileupload,
  12. getDictFileList,
  13. getByTree,
  14. getListFileList,
  15. addByMediaLibrary,
  16. updateFileType,
  17. saveOrUpdate,
  18. criminalInfo,
  19. getSceneList,
  20. newCaseInfo,
  21. casesaveOrUpdate,
  22. saveApiOrUpdate,
  23. uploadImagesAndSave,
  24. caseApiDel,
  25. caseApiList,
  26. caseApiUpdateSort,
  27. saveCaseImgTag,
  28. getCaseImgTag,
  29. ffmpegMergeImage,
  30. caseInquestInfoOld,
  31. caseInquestOpt,
  32. caseInquestExport,
  33. sceneListHasAi,
  34. } from "@/request";
  35. import { router } from "@/router";
  36. import { ModelScene, QuoteScene, Scene, SceneType } from "./scene";
  37. import { CaseFile } from "./caseFile";
  38. import { ref } from "vue";
  39. export type Case = {
  40. caseId: number;
  41. caseTitle: string;
  42. createTime: string;
  43. name: string;
  44. tbStatus: string;
  45. userName: number;
  46. };
  47. export const treeList = ref([]);
  48. export const setCaseSharePWD = (params: { caseId: number; randCode: string }) =>
  49. axios.post(setCasePsw, params);
  50. export const getCaseSharePWD = async (params: { caseId: number }) =>
  51. (await axios.get<string>(getCasePsw, { params })).data;
  52. export const addByMediaLiBrary = async (params) =>
  53. (await axios.post<string>(addByMediaLibrary, params)).data;
  54. export const AddsaveOrUpdate = async (params) =>
  55. (await axios.post<string>(saveOrUpdate, params)).data;
  56. export const getcaseInDate = async (params) =>
  57. (await axios.get<string>(criminalInfo, {params})).data;
  58. // (await axios.get<string>(info, { params:params })).data;
  59. export const getSceneListData = async (params) =>
  60. (await axios.get<string>(getSceneList, { params })).data;
  61. // (await axios.get<string>(info, { params:params })).data;
  62. export const getCaseInfo = async (caseId) =>
  63. (await axios.get<Case>(caseInfo, { params: { caseId } })).data;
  64. export const getCaseInquestInfo = async (caseId: number) =>
  65. (await axios.get(newCaseInfo, { params: { caseId } })).data;
  66. export const casesaveOrUpDate = async (params) =>
  67. (await axios.post<string>(casesaveOrUpdate, params)).data;
  68. export const updateCaseInfo = async (caseFile: CaseFile) =>
  69. await axios.post(updateCaseFile, {
  70. filesId: caseFile.filesId,
  71. filesTitle: caseFile.filesTitle,
  72. });
  73. export const getCaseSceneList = async (caseId: number): Promise<Scene[]> => {
  74. return (await axios.get(caseSceneList, { params: { caseId } })).data;
  75. };
  76. export const getFilepageList = async (params): Promise<Scene[]> => {
  77. return (await axios.post(getListFileList, params)).data;
  78. };
  79. export const getupdateFileType = async (params): Promise<Scene[]> => {
  80. return (await axios.post(updateFileType, params)).data;
  81. };
  82. export const getDictFileLists = async (type: number): Promise<Scene[]> => {
  83. return (await axios.get(getDictFileList, { params: { type: type } })).data;
  84. };
  85. export const updateByTreeFileLists = async (caseId = router.currentRoute.value?.params?.caseId): Promise<Scene[]> => {
  86. let list = (await axios.get(getByTree, { params: { caseId:caseId } })).data
  87. treeList.value = list;
  88. return list;
  89. };
  90. export const updateSelectByTreeFileLists = async (): Promise<Scene[]> => {
  91. function getTreeList(list: any[]) {
  92. return list.map(item => {
  93. if (item.childrenList) {
  94. return {
  95. value: item.filesTypeId,
  96. label: item.filesTypeName,
  97. children: getTreeList(item.childrenList)
  98. };
  99. }
  100. return {
  101. value: item.filesTypeId,
  102. label: item.filesTypeName,
  103. }
  104. })
  105. }
  106. return getTreeList((await axios.get(getByTree, { params: { caseId: '' } })).data)
  107. };
  108. export const caseImgList = (caseId: number, orderBy: string | null) =>
  109. axios.post(caseApiList, { orderBy: orderBy || "", caseId });
  110. export const caseDel = (id: number) => axios.post(caseApiDel, { id });
  111. export const saveOrUpDate = (params: CaseImg) =>
  112. axios.post(saveApiOrUpdate, { ...params });
  113. export const caseUpdateSort = (list: [CaseImg]) =>
  114. axios.post(caseApiUpdateSort, { paramList: list });
  115. export const saveOrAndSave = (params) =>
  116. axios.post(uploadImagesAndSave, { ...params });
  117. export const getByTreeFileLists = async () => {
  118. return treeList.value
  119. };
  120. export const getCaseInquestInfoOld = (caseId: number) =>
  121. axios.get(caseInquestInfoOld, { params: { inquestFileId: caseId } });
  122. export const saveCaseInquestInfo = (params) =>
  123. axios.post(caseInquestOpt, params
  124. );
  125. export const exportCaseInquestInfo = (caseId: number) =>
  126. axios.get(caseInquestExport, {
  127. params: { inquestFileId: caseId, ingoreRes: true },
  128. responseType: "blob",
  129. });
  130. export const getSyncSceneInfo = async (caseId: number) => {
  131. return (await axios.post<string>(syncInfo, { caseId })).data;
  132. };
  133. export const getSceneKey = (scene: Scene) =>
  134. scene.type === SceneType.SWMX
  135. ? (scene as ModelScene).modelId
  136. : (scene as QuoteScene).num;
  137. export type CaseScenes = { type: SceneType; numList: (string | number)[] }[];
  138. export const getCaseScenes = (scenes: Scene[]) => {
  139. const typeIdents = [
  140. { type: SceneType.SWKJ, numList: [] },
  141. { type: SceneType.SWKK, numList: [] },
  142. { type: SceneType.SWMX, numList: [] },
  143. { type: SceneType.SWSS, numList: [] },
  144. { type: SceneType.SWSSMX, numList: [] },
  145. { type: SceneType.SWYDSS, numList: [] },
  146. { type: SceneType.SWYDMX, numList: [] },
  147. ] as CaseScenes;
  148. for (const scene of scenes) {
  149. const typeIdent = typeIdents.find((ident) => ident.type === scene.type)!;
  150. typeIdent.numList.push(getSceneKey(scene));
  151. }
  152. return typeIdents;
  153. };
  154. export const replaceCaseScenes = (caseId: number, caseScenes: CaseScenes) =>
  155. axios.post(repCaseScenes, { sceneNumParam: caseScenes, caseId });
  156. export const uploadNewFile = (data) => {
  157. console.log('uploadNewFile',data);
  158. return axios<undefined>({
  159. method: "POST",
  160. url: newFileupload,
  161. data: data,
  162. // onUploadProgress(event: any) {
  163. // data.onProgress(Math.round((event.loaded / event.total) * 100) || 0);
  164. // },
  165. });
  166. }
  167. export type CaseImg = {
  168. id: number;
  169. caseId: number;
  170. imgInfo: string | null;
  171. imgUrl: string | null;
  172. status: number | null;
  173. sort: number | null;
  174. };
  175. export const saveCaseImgTagData = (params: any) =>
  176. axios.post(saveCaseImgTag, { ...params });
  177. export const getCaseImgTagData = (caseId: number) =>
  178. axios.get(getCaseImgTag, { params: { caseId } });
  179. export const getSceneListHasAi = (caseId: number) =>
  180. axios.get(sceneListHasAi, { params: { caseId } });
  181. export const submitMergePhotos = (data) => axios.post(ffmpegMergeImage, { ...data })