/** * 接口工厂类 -- lbb */ import Api from "@/services/api.service"; // import resJon from "@/public/factory/ResJson"; import { Toast } from "vant"; import { NativeUI } from "@/public/ts/NativeUI"; import { MethodType } from "@/constants/enum/general/method-type.enum"; import { HeaderType } from "@/constants/enum/general/header-type.enum"; export default class InterFaceFactory { static service_control = "1"; //服务调用控制开关 - 0:不调用服务 1:调用服务 static pinfo = { code: "9999", //响应码 }; /** * 公共接口 * @param method * @param params * @param query?? * @param requestConfig? * @returns {Promise>} */ static transferDataInter(method: { methodType: string; headerType: string; url: string }, params: any, query?: any, requestConfig?: any) { const path = query ? Api.urlQueryConvert(method.url, query) : method.url; Api.getRequestConfig(method.headerType || "", requestConfig); if (!params.tc || params.tc == "MCEP") { //移动后台 params.tc = "MCEP"; params.user_code = sessionStorage.getItem("user_code"); } else { //TODO外围系统, 个贷没改造先处理 console.log("外围系统"); params.employee_id = sessionStorage.getItem("workcode"); //人力资源代码, params.USERCODE = sessionStorage.getItem('user_code'); //人力资源代码,s params.user_code = sessionStorage.getItem("user_code"); } if (!params.hrCode) params.hrCode = sessionStorage.getItem("workcode"); //人力资源代码 console.log("**请求参数**:",params.tc,params); switch (method.methodType) { case MethodType.POST.code: return Api.post(path, params, query, requestConfig).catch((err: any) => { NativeUI.toast(err.msg); }); case MethodType.GET.code: return Api.get(path, query, requestConfig); case MethodType.PUT.code: return Api.put(path, params, query, requestConfig); case MethodType.DELETE.code: return Api.delete(path, query, requestConfig); default: return new Promise(() => {}); } } /** * 文件传输 * @param method * @param params * @param requestConfig requestConfig.onUploadProgress, requestConfig.onDownloadProgress * @returns {Promise>} */ static transferFile(method: any = { url: "", headerType: HeaderType.UPLOAD_AUTH, methodType: MethodType.POST.code }, params: any, requestConfig = {}) { requestConfig = Api.getRequestConfig(method.headerType || "", requestConfig); params = this.jsonToFormData(params); return Api.uploadFile(method.url, params, requestConfig); } /** * JSON转Form * @param params * @returns {FormData} */ static jsonToFormData(params: { [x: string]: string | Blob; files?: any } | null) { if (params != null) { const formData = new FormData(); Object.keys(params).forEach((key) => { if ("files" == key) { // 多文件上传 params.files.forEach((file: string | Blob) => { formData.append("files", file); }); } else { formData.append(key, params[key]); } }); return formData; } } }