import axios from "axios"; import qs from "qs"; // import { ls } from 'vue-lsp' // import context from '@/main' // 创建 axios 实例 const service = axios.create({ // baseURL: process.env.BASE_URL, // api base_url baseURL: "", timeout: 6000000, // 请求超时时间, withCredentials: false, headers: { "Content-Type": "application/json", // 'token': ls.get('token') }, }); const err = (error) => { if (error.response) { // 可在此处统一处理服务器端报错 // const { data } = error.response // notification.error({ // message: 'Error', // description: data.message || 'Try Again Later.' // }) } return Promise.reject(error); }; // request interceptor service.interceptors.request.use((config) => { // 可在此处添加请求自定义 token 请根据实际情况自行修改 // const token = Vue.ls.get('Access-Token') config.headers.token = localStorage.getItem("token"); return config; }, err); // const loginFailCodes = [208, 212] // const userFailCodes = [206, 207] // response interceptor // service.interceptors.response.use(response => { // let code = response.data.code // if (code && loginFailCodes.indexOf(code) > -1) { // context.config.globalProperties.$msgbox.confirm('登录失效,是否跳转登录界面?', 'Warning', { // confirmButtonText: '跳转', // cancelButtonText: '取消', // type: 'warning', // }).then(res => { // context.config.globalProperties.jump(-1, {}) // }) // } else if (code && userFailCodes.indexOf(code) > -1) { // context.config.globalProperties.$message({ message: '用户状态失效,请联系管理员', type: 'error' }) // } // return response.data // }, err) // const installer = { // vm: {}, // install(Vue) { // Vue.use(VueAxios, service) // } // } /** * 整合url中拼接的参数 * @method * @param {Object} params 传入需要拼接的参数对象 * @return {String} 返回的参数字符串 例:keyword=黄河&number=1&string=huanghe */ function splicingParam(params) { let str = ""; for (const key in params) { if (params.hasOwnProperty(key)) { str += "&" + key + "=" + params[key]; } } return str.substring(1, str.length); } function get(url, params) { return new Promise((resolve, reject) => { service({ method: "GET", url, params: params, }) .then((res) => { resolve(res.data); }) .catch((err) => { reject(err); }); }); } function post(url, data) { return new Promise((resolve, reject) => { service({ method: "POST", url, data: data, headers: { "Content-Type": "application/json;", }, }) .then((res) => { resolve(res.data); }) .catch((err) => { reject(err); }); }); } function postform(url, data) { return new Promise((resolve, reject) => { service({ method: "POST", url, data: qs.stringify(data), headers: { "Content-Type": "application/x-www-form-urlencoded;", }, }) .then((res) => { resolve(res.data); }) .catch((err) => { reject(err); }); }); } function postBody(url, data) { return new Promise((resolve, reject) => { const isFormData = typeof FormData !== "undefined" && data instanceof FormData; let params = { method: "POST", url, data: data, headers: isFormData ? {} : { "Content-Type": "application/json;", }, }; if (url.indexOf("downloadFile") != -1 || url.indexOf("downFileAllServiceDatas") != -1) { params.responseType = "blob"; } service(params) .then((res) => { resolve(res.data); }) .catch((err) => { reject(err); }); }); } function put(url, data) { return new Promise((resolve, reject) => { service({ method: "PUT", url, data: data, headers: { "Content-Type": "application/json;", }, }) .then((res) => { resolve(res.data); }) .catch((err) => { reject(err); }); }); } function putform(url, data) { return new Promise((resolve, reject) => { service({ method: "PUT", url, data: qs.stringify(data), headers: { "Content-Type": "application/x-www-form-urlencoded;", }, }) .then((res) => { resolve(res.data); }) .catch((err) => { reject(err); }); }); } function del(url, data) { return new Promise((resolve, reject) => { service({ method: "DELETE", url, data: data, headers: { "Content-Type": "application/json;", }, }) .then((res) => { resolve(res.data); }) .catch((err) => { reject(err); }); }); } function delform(url, data) { return new Promise((resolve, reject) => { service({ method: "DELETE", url, data: qs.stringify(data), headers: { "Content-Type": "application/x-www-form-urlencoded;", }, }) .then((res) => { resolve(res.data); }) .catch((err) => { reject(err); }); }); } function getFile(url, data) { return new Promise((resolve, reject) => { service({ method: "GET", url, params: data, contentType: false, processData: false, responseType: "blob", }) .then((res) => { resolve(res.data); }) .catch((err) => { reject(err); }); }); } function getFileStream(url, data) { return new Promise((resolve, reject) => { axios({ // baseURL: process.env.BASE_URL, // api base_url baseURL: "", timeout: 6000000, // 请求超时时间, headers: { "Content-Type": "application/octet-stream", token: ls.get("token"), }, method: "POST", url, params: data, contentType: false, processData: false, responseType: "blob", }) .then((res) => { resolve(res.data); }) .catch((err) => { reject(err); }); }); } function postFile(url, data) { return new Promise((resolve, reject) => { service({ method: "POST", url, data: data, contentType: false, processData: false, headers: { "Content-Type": "multipart/form-data", }, }) .then((res) => { resolve(res.data); }) .catch((err) => { reject(err); }); }); } export { splicingParam, get, post, del, put, putform, postform, postBody, delform, postFile, getFile, getFileStream, };