sys.ts 870 B

123456789101112131415161718192021222324252627282930
  1. import { UPLOAD_FILE, UPLOAD_HEADS, CASE_INFO } from './constant'
  2. import { axios } from './instance'
  3. import { jsonToForm } from '@/utils'
  4. import { params } from '@/env'
  5. type UploadFile = LocalFile | string
  6. export const blobToFile = (blob: Blob, suffix = '.png') => new File([blob], `aaa${suffix}`)
  7. export const uploadFile = async (file: UploadFile, suffix = '.png') => {
  8. if (typeof file === 'string') {
  9. return file
  10. } else {
  11. const uploadFile = file.blob instanceof File ? file.blob : blobToFile(file.blob, suffix)
  12. const url = await axios<string>({
  13. method: 'POST',
  14. url: UPLOAD_FILE,
  15. data: jsonToForm({ file: uploadFile }),
  16. headers: {...UPLOAD_HEADS}
  17. })
  18. return url
  19. }
  20. }
  21. export interface Case {
  22. caseTitle: string
  23. }
  24. export const getCaseInfo = () =>
  25. axios.get<Case>(CASE_INFO, { params: { caseId: params.caseId } })