1
0

case.ts 6.7 KB

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