import useStores from "@/store/modules/user.js"; import config from "@/config"; import { getToken } from "@/utils/auth"; import modal from "@/plugins/modal"; import common from "@/plugins/common"; let timeout = 10000; const baseUrl = config.baseUrl; const request = (config) => { const useStore = useStores(); // 是否需要设置 token const isToken = (config.headers || {}).isToken === false; config.header = config.header || {}; if (getToken() && !isToken) { config.header["Authorization"] = getToken(); } // get请求映射params参数 if (config.params) { let url = config.url + "?" + common.tansParams(config.params); url = url.slice(0, -1); config.url = url; } return new Promise((resolve, reject) => { uni .request({ method: config.method || "get", timeout: config.timeout || timeout, url: config.baseUrl || baseUrl + config.url, data: config.data, header: config.header, dataType: "json", }) .then((response) => { let res = response; if (res.error) { modal.msg("后端接口连接异常"); reject("后端接口连接异常"); return; } const code = res.data.code || 200; if (code === 401) { modal.confirm("登录状态已过期,您可以继续留在该页面,或者重新登录?").then((res) => { if (res) { useStore.LogOut().then((res) => { uni.reLaunch({ url: "/pages/login" }); }); } }); modal.closeLoading(); reject("无效的会话,或者会话已过期,请重新登录。"); } else if (code === 500 || res.statusCode === 500) { if (res.data.msg.indexOf(":") !== -1) { modal.msg(res.data.msg.split(":")[1]); reject(res.data.msg.split(":")[1]); } else { modal.msg(res.data.msg); reject(res.data.msg); } modal.closeLoading(); } else if (code !== 200 && code !== "0") { reject(code); } resolve(res.data); }) .catch((error) => { let { message } = error; if (message === "Network Error") { message = "后端接口连接异常"; } else if (message.includes("timeout")) { message = "系统接口请求超时"; } else if (message.includes("Request failed with status code")) { message = "系统接口" + message.substr(message.length - 3) + "异常"; } reject(error); }); }); }; export default request;