sys.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import { UPLOAD_FILE, UPLOAD_HEADS, CASE_INFO, AUTH_PWD, CASE_FIRE_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") =>
  7. new File([blob], `aaa${suffix}`);
  8. export const uploadFile = async (file: UploadFile, suffix = ".png") => {
  9. if (typeof file === "string") {
  10. return file;
  11. } else {
  12. const uploadFile =
  13. file.blob instanceof File ? file.blob : blobToFile(file.blob, suffix);
  14. const url = await axios<string>({
  15. method: "POST",
  16. url: UPLOAD_FILE,
  17. data: jsonToForm({ file: uploadFile }),
  18. headers: { ...UPLOAD_HEADS },
  19. });
  20. return url;
  21. }
  22. };
  23. export enum FireStatus {
  24. incomplete = 0,
  25. complete = 1,
  26. }
  27. export type FireProject = {
  28. "id": number,
  29. "caseId": number,
  30. "commandTime": string,
  31. "alarmTime": string,
  32. "alarmName": string,
  33. "inquestDept": string,
  34. "assignDept": string,
  35. "assignType": string,
  36. "times": string[],
  37. "inquestAddress": string,
  38. "tbStatus": number,
  39. "createTime": string,
  40. "updateTime": string
  41. };
  42. export interface Case {
  43. caseTitle: string;
  44. latAndLong: string;
  45. mapUrl: string;
  46. showScenes: boolean
  47. caseNum: string;
  48. caseCategory: string;
  49. caseRegion: string;
  50. caseAddress: string;
  51. homicideCase: number;
  52. criminalCase: number;
  53. tmProject?: FireProject;
  54. }
  55. export const getCaseInfo = async () => {
  56. const [caseInfo, fireInfo] = await Promise.all([
  57. axios.get<Case>(CASE_INFO, { params: { caseId: params.caseId } }),
  58. axios.get<FireProject>(CASE_FIRE_INFO, { params: { caseId: params.caseId } })
  59. ])
  60. caseInfo.tmProject = fireInfo
  61. return caseInfo
  62. }
  63. // 校验密码
  64. export const authSharePassword = (randCode: string) =>
  65. axios<boolean>(AUTH_PWD, { params: { randCode, caseId: params.caseId } });