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.
 
 
 
 
 

143 lines
3.5 KiB

import request from "superagent";
import noCache from "superagent-no-cache";
export const ApiTable = {
/* 研发看板 */
projectUrl: "outProject", // 在研项目
peopleUrl: "outPeople", // 人员情况
waitUrl: "outWait", // 待研项目
postInProject:'inProject', // 增加项目
postInPeople: 'inPeople',//增加人员任务
postInWait: 'inWait',//增加人员任务
delCancel: 'deleteDB', //删除信息
//下载项目模板
getDownProject: 'downProject',
//查询人员信息
postKeySearch:'keySearch'
};
export const RouteTable = {
apiRoot: "/api/root",
fileUpload: "/_upload/new",
resourceUpload: "/_upload/new",
cleanUpUploadTrash: "/_upload/cleanup",
upload: "/_upload/attachments/:p",
remove: "/_upload/remove/attachments",
download: "/_upload/attachments",
};
export const buildUrl = (url) => {
const apiurl = url;
const user = JSON.parse(sessionStorage.getItem("user"));
if (user == null || url.indexOf("http") !== -1) {
return apiurl;
}
const connector = url.indexOf("?") === -1 ? "?" : "&";
return `${apiurl}${connector}token=${user.token}`;
};
const getToken = () => {
const { search } = window.location;
const hasToken = search.includes("token");
return hasToken ? search.match(/token=(.*)/)[1] : null;
};
const setHeader = () => {
const user = JSON.parse(sessionStorage.getItem("user"));
if (user == null) {
const token = getToken();
if (token) {
return {
token,
};
}
return {};
}
return {
token: user.token,
};
};
const resultHandler = (resolve, reject) => (err, res) => {
if (err) {
if (err.status === 401) {
// 退出到登录页
const user = JSON.parse(sessionStorage.getItem("user"));
sessionStorage.removeItem("user");
if (user && user.domain) {
window.document.location.replace(`/${user.domain}/signin`);
} else {
window.document.location.replace("/signin");
}
reject("unauth");
} else {
reject(err);
}
} else {
resolve(res.body);
}
};
export class Request {
static get = (url, query) =>
new Promise((resolve, reject) => {
request
.get(buildUrl(url))
.set(setHeader())
.query(query)
.use(noCache)
.end(resultHandler(resolve, reject));
});
static post = (url, data, query) =>
new Promise((resolve, reject) => {
request
.post(buildUrl(url))
.set(setHeader())
.query(query)
.use(noCache)
.send(data)
.end(resultHandler(resolve, reject));
});
static put = (url, data, query) =>
new Promise((resolve, reject) => {
request
.put(buildUrl(url))
.set(setHeader())
.query(query)
.use(noCache)
.send(data)
.end(resultHandler(resolve, reject));
});
static delete = (url) =>
new Promise((resolve, reject) => {
request
.delete(buildUrl(url))
.set(setHeader())
.use(noCache)
.end(resultHandler(resolve, reject));
});
static mockGet = (url, query, header) =>
new Promise((resolve, reject) => {
request
.get(url)
.set(header)
.query(query)
.end(resultHandler(resolve, reject));
});
static mockPost = (url, data, query, header) =>
new Promise((resolve, reject) => {
request
.post(url)
.set(header)
.query(query)
.send(data)
.end(resultHandler(resolve, reject));
});
}