erp 新洋电子
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

111 lines
1.7 KiB

import functions from "@/utils/functions.js";
import {
getToken,
getRefreshToken,
setToken
} from "@/utils/auth.js";
const service = (params) => {
return new Promise((relove, reject) => {
let result = doRequest(params);
result.then(res => {
if (res) {
relove(res);
}
})
});
}
//请求接口
async function doRequest(params) {
functions.showWaiting();
let header = {
"Content-Type": "application/json",
"token": getToken()
}
if (params.header) {
header = {
...header,
...params.header
};
}
const [err, success] = await uni.request({
url: params.url,
data: params.data,
method: params.method,
dataType: "json",
header: header
});
functions.closeWaiting();
if (!err) {
if (success.statusCode == 200) {
let data = success.data;
if (data.code == 200) {
return data.data;
} else if (data.code == 203) {
return refreshTokenRequest(params);
} else if (data.code == 205) {
functions.logout();
return false;
} else {
functions.error(data.msg);
return null;
}
} else {
//请求失败
functions.error("服务器请求失败");
return null;
}
} else {
//请求失败
functions.error("服务器请求失败");
return null;
}
}
//刷新token
async function refreshTokenRequest(params) {
if (!getRefreshToken()) {
functions.logout();
return false;
}
let apiUrl = `${functions.getDomain()}/api/cy-check-sure`;
const result = doRequest({
url: apiUrl,
method: "post",
data: {},
header: {
"Refresh-Token": getRefreshToken()
}
});
const newToken = await result;
setToken(newToken.token);
return doRequest(params);
}
export default service;