import axios from 'axios' import qs from 'Qs' const TIME_OUT_MS = 60 * 1000 // 默认请求超时时间 axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded' // // 请求拦截器 // axios.interceptors.request.use(function (config) { // return config // }, function (error) { // return Promise.reject(error) // }) // // 响应拦截器 // axios.interceptors.response.use(function (response) { // return response // }, function (error) { // return Promise.reject(error) // }) /* * @param response 返回数据列表 */ function handleResults (response) { let remoteResponse = response.data var result = { success: false, message: '', status: [], errorCode: '', data: { total: 0, results: [] } } if (remoteResponse.success) { result.data.results = remoteResponse.data result.data.total = remoteResponse.total result.success = true } if (!remoteResponse.success) { let code = remoteResponse.errorCode if (code === 400) { console.log('传参错误') } result.errorCode = remoteResponse.errorCode result.message = remoteResponse.message } return result } function handleUrl (url) { //url = 'http://crowd.mooctest.net' + url return url } /* * @param data 参数列表 * @return */ function handleParams (data) { return data } export default { post (url, data) { return new Promise((resolve, reject) => { axios.post(url, qs.stringify(data)).then( (result) => { resolve(result) } ).catch( (error) => { reject(error) } ) }) }, get (url) { return new Promise((resolve, reject) => { axios.get(handleUrl(url)) .then(response => { resolve(response.data) }).catch(error => { reject(error) }) }) }, put (url, data) { return new Promise((resolve, reject) => { axios.put(url, qs.stringify(data)).then( (result) => { resolve(result) } ).catch( (error) => { reject(error) } ) }) }, delete (url, data) { return new Promise((resolve, reject) => { axios.delete(url, {data: qs.stringify(data)}).then( (result) => { resolve(result) } ).catch( (error) => { reject(error) } ) }) }, // uploadFile (url, data, response, exception) { // axios({ // method: 'post', // url: handleUrl(url), // data: handleParams(data), // dataType: 'json', // processData: false, // contentType: false // }).then( // (result) => { // response(handleResults(result, data)) // } // ).catch( // (error) => { // if (exception) { // exception(error) // } else { // console.log(error) // } // } // ) // }, // downloadFile (url, data, fileName, exception) { // axios({ // method: 'post', // url: handleUrl(url), // data: handleParams(data), // responseType: 'blob' // }).then( // (result) => { // const excelBlob = result.data // if ('msSaveOrOpenBlob' in navigator) { // // Microsoft Edge and Microsoft Internet Explorer 10-11 // window.navigator.msSaveOrOpenBlob(excelBlob, fileName) // } else { // const elink = document.createElement('a') // elink.download = fileName // elink.style.display = 'none' // const blob = new Blob([excelBlob]) // elink.href = URL.createObjectURL(blob) // document.body.appendChild(elink) // elink.click() // document.body.removeChild(elink) // } // } // ).catch( // (error) => { // if (exception) { // exception(error) // } else { // console.log(error) // } // } // ) // }, // uploadFileFormData (url, data, response, exception) { // axios({ // method: 'post', // url: handleUrl(url), // data: data, // timeout: TIME_OUT_MS, // headers: { // 'Content-Type': 'multipart/form-data' // } // }).then( // (result) => { // response(handleResults(result)) // } // ).catch( // (error) => { // if (exception) { // exception(error) // } else { // console.log(error) // } // } // ) // } }