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 upload = (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.uploadFile({ timeout: config.timeout || timeout, url: baseUrl + config.url, filePath: config.filePath, name: config.name || "file", header: config.header, formData: config.formData, success: (res) => { let result = JSON.parse(res.data); const code = result.code || 200; if (code === 200) { resolve(result); } else if (code == 401) { modal.confirm("登录状态已过期,您可以继续留在该页面,或者重新登录?").then((res) => { if (res) { useStore.LogOut().then((res) => { uni.reLaunch({ url: "/pages/login" }); }); } }); 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); } } else if (code !== 200 && code !== "0") { reject(code); } }, fail: (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 upload;