1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/**
* 接口工厂类 -- 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<AxiosResponse<*>>}
*/
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<AxiosResponse<any>>}
*/
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;
}
}
}