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