import Vue from 'vue' import axios from 'axios' import qs from 'qs' import md5 from 'js-md5'; import constant from './constant.js'; // #ifdef H5 let baseURL = constant.H5 let key = constant.H5_KEY // #endif // #ifdef APP-PLUS let baseURL = constant.APP let key = constant.APP_KEY // #endif const service = axios.create({ withCredentials: true, crossDomain: true, baseURL, timeout: 160000 }) // request拦截器,在请求之前做一些处理 // service.interceptors.request.use( // config => { // // console.log('showDialog' + Vue.prototype.$showDialog) // if (Vue.prototype.$showDialog) { // uni.showLoading({ // title: 'loading', // mask: true // }) // } // const ticket = uni.getStorageSync('ticket') // let dataStr = []; // if (config.method == 'get') { // if (config.url.split('?').length > 1) { // dataStr = config.url.split('?')[1].split('&'); // } // } // if (config.method == 'post') { // dataStr = qs.stringify(config.data).split('&'); // // dataStr = JSON.stringify(config.data); // // dataStr = config.data; // // dataStr = config.data.name; // } // config.data = {}; // dataStr.forEach(function(e) { // console.log(e,666666) // config.data[e.split('=')[0]] = e.split('=')[1]; // }); // // console.log(ticket) // if (ticket != '') { // config.data['ticket'] = ticket // } // var keys = []; // let sign = ''; // for (var k in config.data) // keys.push(k); // keys.sort(function(a, b) { // return a < b ? -1 : 1; // }) // // console.log("keys==========="); // keys.forEach(function(e) { // if (config.data[e] || config.data[e] == '') { // sign += e + '=' + config.data[e] + '&' // } // }); // // console.log("签名参数==========="); // // console.log(config.url); // // console.log(sign + key); // sign = md5(sign + key); // // console.log("提交参数==========="); // // console.log(qs.stringify(config.data)); // if (config.method == 'post') { // // console.log(config.data,666666) // config.data['sign'] = sign // config.data = qs.stringify(config.data) // // config.data = config.data.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1"); // // if(config.url == ){ // // #ifdef H5 // if(config.url=='/api/index/goodsList'){ // config.data = config.data.replaceAll('20', ""); // config.data = config.data.replaceAll('26', ""); // config.data = config.data.replaceAll('2F', "/"); // config.data = config.data.replaceAll('28', ""); // config.data = config.data.replaceAll('29', ""); // // config.data = config.data.replaceAll('%C2%AE', "®"); // } // // #endif // // #ifdef APP-PLUS // if(config.url=='/api/index/goodsList'){ // config.data = config.data.replace(new RegExp('20',"gm"), ""); // config.data = config.data.replace(new RegExp('26',"gm"), ""); // config.data = config.data.replace(new RegExp('2F',"gm"), "/"); // config.data = config.data.replace(new RegExp('28',"gm"), ""); // config.data = config.data.replace(new RegExp('29',"gm"), ""); // // config.data = config.data.replaceAll('%C2%AE', "®"); // } // // #endif // // config.data = config.data.replaceAll('2528',"("); // // config.data = config.data.replaceAll('2529',")"); // // config.data = config.data.replaceAll('252',"%2F"); // // } // } // if (config.method == 'get') { // if (ticket != '') { // config.url = config.url + '&ticket=' + ticket + '&sign=' + sign // } else { // config.url = config.url + '?sign=' + sign // } // } // // console.log(config) // return config; // }, // error => { // // console.log(error); // for debug // return Promise.reject(error); // } // ); // //配置成功后的拦截器 // service.interceptors.response.use(res => { // console.log('过期了吗') // uni.hideLoading() // // console.log(res) // // console.log(res.data) // // console.log(res.data.data[0].nameAlias) // if (res.data.success || res.data.errCode === 'USER.0017') { // // console.log(res.data.success) // return res.data // } else { // uni.showToast({ // title: res.data.errMsg, // icon: 'none', // duration: 1500 // }) // if (res.data.errCode === 'USER.0010') { // uni.removeStorage({ // key: 'logInfo', // success: function (res) { // uni.reLaunch({url: '/pages/login/index'}) // }, // fail: (err) => { // } // }); // // #ifdef H5 // var url = location.href; // if(url.indexOf('pages')>-1){ // uni.setStorage({ // key: 'url', // data: url, // success: function() { // console.log('success') // } // }); // }else{ // uni.removeStorageSync('url') // } // // #endif // } // uni.$emit('refreshQrCode') // return Promise.reject(res.data.errMsg); // } // }, error => { // return Promise.reject(error) // }) axios.defaults.adapter = function(config) { //自己定义个适配器,用来适配uniapp的语法 return new Promise((resolve, reject) => { // console.log(config) var settle = require('axios/lib/core/settle'); var buildURL = require('axios/lib/helpers/buildURL'); uni.request({ method: config.method.toUpperCase(), // url: config.baseURL + buildURL(config.url, config.params, config.paramsSerializer), url: config.baseURL + '/' + config.url, header: config.headers, data: config.data, dataType: config.dataType, responseType: config.responseType, sslVerify: config.sslVerify, complete: function complete(response) { //console.log("执行完成:",config.baseURL + buildURL(config.url, config.params, config.paramsSerializer),response.data) response = { data: response.data, status: response.statusCode, errMsg: response.errMsg, header: response.header, config: config }; settle(resolve, reject, response); }, fail: res => { uni.showToast({ title: res, icon: 'none', duration: 1500 }) } }) }) } export default service