floder.ts 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import { params } from '@/env'
  2. import { FLODER_LIST } from './constant'
  3. import { addUnsetResErrorURLS,axios } from './instance'
  4. export interface Floder {
  5. filesId: number,
  6. caseId: string,
  7. filesTypeId: number,
  8. filesTitle: string,
  9. filesUrl: string,
  10. }
  11. export type Floders = Floder[]
  12. addUnsetResErrorURLS('/fusion-bc/caseInquest/downDocx', '/fusion-bc/caseExtractDetail/downDocx', '/fusion-bc/caseImg/getFfmpegImage')
  13. export const fetchFloders = async () => {
  14. const floders = await axios.get<Floders>(FLODER_LIST, { params: { caseId: params.caseId } })
  15. const otherFloders = [{
  16. filesId: 88,
  17. filesTypeId: 100,
  18. filesTitle: '勘验笔录',
  19. ex: '/fusion-bc/caseInquest/info',
  20. bex: '/fusion-bc/caseInquest/downDocx'
  21. }, {
  22. filesId: 89,
  23. filesTypeId: 100,
  24. filesTitle: '提取清单',
  25. ex: '/fusion-bc/caseExtractDetail/info',
  26. bex: '/fusion-bc/caseExtractDetail/downDocx'
  27. }, ]
  28. const res = await axios.get('/fusion-bc/caseImg/getFfmpegImage', {params: {caseId: params.caseId}})
  29. if (res.data.data.length) {
  30. res.data.data.forEach((item:any, ndx: any) => {
  31. floders.push({
  32. filesId: 100 + ndx,
  33. filesTypeId: 100,
  34. filesTitle: '照片制卷图',
  35. caseId: params.caseId.toString(),
  36. filesUrl: item.imgUrl
  37. })
  38. })
  39. }
  40. await Promise.all(otherFloders.map(async of => {
  41. const kybl = await axios.get(of.ex, { params: { caseId: params.caseId } })
  42. if (kybl) {
  43. const data = await axios.get(of.bex, { params: { caseId: params.caseId }, responseType: 'blob' })
  44. const blob = data.data
  45. floders.push({
  46. ...of,
  47. caseId: params.caseId.toString(),
  48. filesUrl: URL.createObjectURL(blob)
  49. })
  50. }
  51. }))
  52. return floders
  53. }