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
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));
|
|
});
|
|
}
|
|
|