/* * ================================================================== * 网络组建封装 * ================================================================== */ import axios from 'axios' import { Dialog, Toast } from 'vant' axios.defaults.timeout = 15000 // HTTP Request axios.interceptors.request.use( config => { config.data = JSON.stringify(config.data) config.headers = { 'Content-Type': 'application/json', token: localStorage.getItem('token'), 'Istoken':false } if ('get' == config.method) { config.headers = { 'Content-Type': 'application/x-www-form-urlencoded', token: localStorage.getItem('token') } } return config }, error => { return Promise.reject(error) } ) // HTTP Response axios.interceptors.response.use( response => { if (response.data.code === 401) { Dialog.confirm({ title: '提示信息', message: '您的登录信息已失效, 请重新登录' }) .then(() => { const opt = { success: function(data) { alert('success:' + JSON.stringify(data)) localStorage.clear() }, fail: function(data) { alert('error:' + JSON.stringify(data)) } } // 插件调用代码 SelfHelper.logout(opt) }) .catch(() => { // on cancel }) return false } else if (response.data.code === 200) { return Promise.resolve(response) } else { Toast.fail(response.data.message) return Promise.reject(response) } }, error => { if (error.code == 'ECONNABORTED' && error.message.indexOf('timeout') != -1) console.log('请求超时!') return Promise.reject(error) } ) export function fetch(url, params = {}) { // 宣城工业大脑iwork url = 'http://www.iworkos.com:30100/smartservice/' + url //生产地址 return new Promise((resolve, reject) => { axios .get(url, { params }) .then(response => { resolve(response.data) }) .catch(err => { reject(err) }) }) } export function post(url, data = {}) { // 宣城工业大脑iwork url = 'http://www.iworkos.com:30100/smartservice/' + url //生产地址 if (!localStorage.getItem('token')) { const option = { success: function(data) { localStorage.setItem('token', data.retData) }, fail: function() {} } try { SelfHelper.getUserToken(option) } catch (e) { console.log(e) } } return new Promise((resolve, reject) => { axios.post(url, data).then( response => { resolve(response.data) }, err => { reject(err) } ) }) }