import axios from "axios";
|
import languageHelper from "./languageHelper";
|
import { useLogin } from '@/stores/useLogin.ts'
|
class axiosHelper {
|
/**
|
* @description
|
version: 1,//API版本
|
lang: .m_currentLanguage,//语言
|
isAddLangParam: "false",是否添加语言参数, 不加设置为false,否则null
|
isAddUrlSoftType: "true",是否添加软件类型/web/, 不加设置为true,否则null
|
controller: API中控制器名
|
action: API中操作名
|
data: {}, 除了Lang的其他参数
|
apiUrlType: 接口类型 "main","user",为空就用"main"
|
*/
|
static get(params) {
|
|
return axios({
|
headers: {
|
Token: params.Token || axiosHelper.getToken(),
|
Lang: languageHelper.getTypeFromRout(window.location.href),
|
},
|
url: axiosHelper.buildFullUrl(params),
|
method: "get",
|
params: axiosHelper.buildFullData(params),
|
});
|
}
|
|
static post(params) {
|
return axios({
|
headers: axiosHelper.buildHeader(params),
|
url: axiosHelper.buildFullUrl(params),
|
method: "post",
|
data: axiosHelper.buildFullData(params),
|
params: axiosHelper.buildFullParams(params)
|
});
|
}
|
|
static put(params) {
|
return axios({
|
headers: {
|
Token: axiosHelper.getToken(),
|
Lang: languageHelper.getTypeFromRout(window.location.href),
|
},
|
url: axiosHelper.buildFullUrl(params),
|
method: "put",
|
data: axiosHelper.buildFullData(params),
|
});
|
}
|
|
static delete(params) {
|
return axios({
|
headers: {
|
Token: axiosHelper.getToken(),
|
Lang: languageHelper.getTypeFromRout(window.location.href),
|
},
|
url: axiosHelper.buildFullUrl(params),
|
method: "delete",
|
params: axiosHelper.buildFullData(params),
|
});
|
}
|
|
static buildFullUrl(params) {
|
//外部输入了完整Url就不用拼接路径了
|
if (params.url != null)
|
return window.globalConfig.WebApiUrl.MainUrl + params.url;
|
|
var baseUrl = "";
|
//接口版本
|
if (params.version) baseUrl = "v" + params.version;
|
else baseUrl = "v1";
|
|
//判断是否添加类型
|
var isAddUrlSoftType = true;
|
if (params.isAddUrlSoftType != null) {
|
if (params.isAddUrlSoftType == "false")
|
//用字符型
|
isAddUrlSoftType = false;
|
}
|
if (isAddUrlSoftType)
|
baseUrl = baseUrl + "/Web/" + params.controller + "/" + params.action;
|
else baseUrl = baseUrl + "/" + params.controller + "/" + params.action;
|
|
if (params.apiUrlType) {
|
if (params.apiUrlType == "main") {
|
return window.globalConfig.WebApiUrl.MainUrl + baseUrl;
|
} else if (params.apiUrlType == "use") {
|
return window.globalConfig.WebApiUrl.UserUrl + baseUrl;
|
} else {
|
return window.globalConfig.WebApiUrl.MainUrl + baseUrl;
|
}
|
} else {
|
return window.globalConfig.WebApiUrl.MainUrl + baseUrl;
|
}
|
}
|
|
static buildFullData(params) {
|
var post_data = params.data;
|
|
//判断是否添加语言参数
|
var isAddLangParam = true;
|
if (params.isAddLangParam) {
|
if (params.isAddLangParam == "false")
|
//用字符型
|
isAddLangParam = false;
|
}
|
if (isAddLangParam) {
|
if (post_data == null) post_data = {};
|
if (params.lang != null && post_data.Lang == null)
|
post_data.Lang = params.lang;
|
} else {
|
//判断是否是空对象
|
if ((JSON.stringify(post_data) == "{}") == {}) return null;
|
}
|
|
//判断是否添加用户信息
|
if (params.userInfo && params.userInfo.isAddUserParam) {
|
if (post_data == null) post_data = {};
|
if (params.userInfo.ID != null) post_data.UID = params.userInfo.ID;
|
if (params.userInfo.Type != null) post_data.UType = params.userInfo.Type;
|
}
|
|
//console.log(params,post_data)
|
return post_data;
|
}
|
static buildFullParams(params) {
|
var post_data = params.params;
|
|
//判断是否添加语言参数
|
var isAddLangParam = true;
|
if (params.isAddLangParam) {
|
if (params.isAddLangParam == "false")
|
//用字符型
|
isAddLangParam = false;
|
}
|
if (isAddLangParam) {
|
if (post_data == null) post_data = {};
|
if (params.lang != null && post_data.Lang == null)
|
post_data.Lang = params.lang;
|
} else {
|
//判断是否是空对象
|
if ((JSON.stringify(post_data) == "{}") == {}) return null;
|
}
|
|
//判断是否添加用户信息
|
if (params.userInfo && params.userInfo.isAddUserParam) {
|
if (post_data == null) post_data = {};
|
if (params.userInfo.ID != null) post_data.UID = params.userInfo.ID;
|
if (params.userInfo.Type != null) post_data.UType = params.userInfo.Type;
|
}
|
|
//console.log(params,post_data)
|
return post_data;
|
}
|
static buildHeader(params) {
|
let headers = {
|
Token: params.Token || axiosHelper.getToken(),
|
Lang: languageHelper.getTypeFromRout(window.location.href),
|
};
|
//判断是否添加表单类型的请求头
|
if (params.IsFormData && params.IsFormData == "true") {
|
let newHeaders = {
|
"Content-Type": "multipart/form-data",
|
};
|
headers = { ...headers, ...newHeaders };
|
}
|
|
return headers;
|
}
|
static getToken() {
|
const loginStroe = useLogin()
|
const userInfo = loginStroe.getUserInfo()
|
let Token = userInfo?.Token || "";
|
return Token
|
}
|
}
|
|
export default axiosHelper;
|