/** * Web唐明明 * 匆匆数载恍如梦,岁月迢迢华发增。 * 碌碌无为枉半生,一朝惊醒万事空。 */ import store from '@/store' import router from '../router' // 基础配置 const config = { apiUrl : 'https://api.gongli.vip/api/', // 正式环境 // apiUrl : 'http://api.gl.shangkelian.cn/api/', // 测试 timeout : 60000 } let loginHintState = false // 网络请求 const request = (parameter, hideLoding = true) => { // 检查url配置 if(parameter.url === 'undefined' || parameter.url === ''){ uni.showToast({ title: '请求地址不能为空', icon : 'none' }) return } // 注入header config.header = { 'Accept': 'application/json', 'Authorization': store.getters.getToken || uni.getStorageSync('token') } // 加载提示 if(!hideLoding) uni.showLoading({ title: '加载中', mask : true }); // 请求实例 return new Promise((resolve, reject) => { uni.request({ url : config.apiUrl + parameter.url, timeout : config.timeout, header : config.header || {}, data : parameter.data || {}, method : parameter.method || 'GET', success : res => { console.log(res) if (res.header.Authorization){ updateToken('token', res.header.Authorization) } if(res.statusCode === 200){ uni.hideLoading() const resolveData = res.data if(resolveData.status_code === 200) { resolve(resolveData.data) return } if(resolveData.status_code === 401) { loginHint() return } reject(resolveData) return } errToast(res.statusCode) }, fail(err) { uni.showToast({ title: '网络错误,请检查您设备网络状态', icon : 'none' }) } }) }) } // 文件上传 const uploading = (paths) => { uni.showLoading({ title: '上传中', mask : true }); // 注入header config.header = { 'Accept': 'application/json', 'Authorization': store.getters.getToken || '' } // 上传图片 return new Promise((resolve, reject) => { uni.uploadFile({ url : config.apiUrl + 'storage/uploads', files : paths, header : config.header || {}, success : res=>{ if(res.statusCode === 200){ uni.hideLoading() let updData = JSON.parse(res.data) if(updData.status_code === 200){ resolve(updData.data) return } reject(updData) return } errToast(res.statusCode) } }) }) } // 处理一些http请求错误提示 const errToast = (code) => { switch (code){ case 404: uni.showToast({ title: code + '接口不存在,请联系系统管理员', icon : 'none' }) break; case 405: uni.showToast({ title: code + '请检查接口请求方式错误', icon : 'none' }) break; case 500: uni.showToast({ title: code + '服务端错误,请检查服务器信息', icon : 'none' }) break; } } // 更新token const updateToken = (token) => { store.commit('setToken', token) // 清除退出登录标识 uni.removeStorageSync('isnew') } // 处理登录提示 const loginHint = () => { if( loginHintState ) return if(!loginHintState) loginHintState = true updateToken('') uni.showModal({ title: '登录提示', content: '您的登录信息已过期,请重新登录', confirmColor: '#8b64fd', showCancel:false, success: res=> { loginHintState = false if (res.confirm) { uni.reLaunch({ url:'/pages/auth/auth' }) } } }) } export { request, uploading, config }