/* eslint-disable */ import axios from 'axios' import {MessageBox, Message} from 'element-ui' import utilVue from '../utils/utilVue.js' const baseUrl = process.env.VUE_APP_BASE_API // create an axios instance const service = axios.create({ baseURL: baseUrl + 'wms/', // url = base url + request url timeout: 120000 // request timeout }) // request interceptor service.interceptors.request.use( (config) => { // do something before request is sent // if (store.getters.currentUser) { // // let each request carry token // // ['X-Token'] is a custom headers key // // please modify it according to the actual situation // config.headers['Authorization'] = sessionStorage.getItem('Authorization') // // config.headers['warehouseId'] = store.getters.currentWarehouse.id // // config.headers['requestType'] = 'spdpc' // } if (config.method != 'get' && window.appendParam && config.data) { Object.keys(window.appendParam).forEach((key) => { if (Object.prototype.hasOwnProperty.call(window.appendParam, key)) { if (window.appendParam[key]) { if (Array.isArray(config.data)) { config.data.forEach(data => { if (typeof data == 'object') { data[key] = window.appendParam[key] } }) } else { config.data[key] = window.appendParam[key] } } } }) window.appendParam = null } return config }, (error) => { return Promise.reject(error) } ) const download = (resp) => { //这里res.data是返回的blob对象 var blob = new Blob([resp.data], {type: resp.headers['content-type']}); // 自定义响应头 let fileName = resp.headers['content-filename'] && decodeURIComponent(resp.headers['content-filename']) if (fileName === undefined || fileName === null || fileName === "") { fileName = new Date().getTime() + '.xlsx' } if (window.navigator.msSaveOrOpenBlob) { // 如果是IE浏览器 navigator.msSaveBlob(blob, fileName);//filename文件名包括扩展名,下载路径为浏览器默认路径 return } // chrome、Firefox var downloadElement = document.createElement('a'); var href = window.URL.createObjectURL(blob); //创建下载的链接 downloadElement.href = href; downloadElement.download = fileName document.body.appendChild(downloadElement); downloadElement.click(); //点击下载 document.body.removeChild(downloadElement); //下载完成移除元素a window.URL.revokeObjectURL(href); //释放掉blob对象 } // response interceptor service.interceptors.response.use( /** * If you want to get http information such as headers or status * Please return response => response */ /** * Determine the request status by custom code * Here is just an example * You can also judge the status by HTTP Status Code */ (response) => { let {headers, data} = response // 处理文件下载 let contentType = headers['content-type'] if (headers && contentType && (contentType.indexOf('application/x-msdownload') != -1 || contentType.indexOf('application/octet-stream') != -1 || contentType.indexOf('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') != -1)) { download(response) return response } if (contentType && contentType.indexOf('application/json') == -1) { return response } let isValidexception = headers && '1' == headers.validexception const res = data // if the custom code is not 0, it is judged as an error. if (res.success) { return res } utilVue.loadHide() if (res.success == undefined) { //如果未定义,直接返回 return res } Message({ message: '