import { UPLOAD_FILE, UPLOAD_HEADS, CASE_INFO, AUTH_PWD, CASE_FIRE_INFO } from "./constant"; import { axios } from "./instance"; import { jsonToForm } from "@/utils"; import { params } from "@/env"; type UploadFile = LocalFile | string; export const blobToFile = (blob: Blob, suffix = ".png") => new File([blob], `aaa${suffix}`); export const uploadFile = async (file: UploadFile, suffix = ".png") => { if (typeof file === "string") { return file; } else { const uploadFile = file.blob instanceof File ? file.blob : blobToFile(file.blob, suffix); const url = await axios({ method: "POST", url: UPLOAD_FILE, data: jsonToForm({ file: uploadFile }), headers: { ...UPLOAD_HEADS }, }); return url; } }; export enum FireStatus { incomplete = 0, complete = 1, } export type FireProject = { "id": number, "caseId": number, "commandTime": string, "alarmTime": string, "alarmName": string, "inquestDept": string, "assignDept": string, "assignType": string, "times": string[], "inquestAddress": string, "tbStatus": number, "createTime": string, "updateTime": string }; export interface Case { caseTitle: string; latAndLong: string; mapUrl: string; caseNum: string; caseCategory: string; caseRegion: string; caseAddress: string; homicideCase: number; criminalCase: number; tmProject?: FireProject; } export const getCaseInfo = async () => { const [caseInfo, fireInfo] = await Promise.all([ axios.get(CASE_INFO, { params: { caseId: params.caseId } }), axios.get(CASE_FIRE_INFO, { params: { caseId: params.caseId } }) ]) caseInfo.tmProject = fireInfo return caseInfo } // 校验密码 export const authSharePassword = (randCode: string) => axios(AUTH_PWD, { params: { randCode, caseId: params.caseId } });