import _config from './config'; // 导入私有配置 export default function $http(options) { options.url = _config.url + options.url; if (options.type) _config.header['Content-Type'] = options.type; if (uni.getStorageSync("ztc_token")) { _config.header.token = uni.getStorageSync("ztc_token"); } else _config.header.token = ''; return new Promise((resolve, reject) => { // 进行url字符串拼接 // 拦截请求 _config.complete = (response) => { // request請求访问成功 if (response.statusCode === 200 || response.statusCode === 403) { // 接口请求成功 if([401,403,404,405,500].includes(response.data.code)){ _page_error(response.data.code , response.data.msg); }else{ if(response.data.code!=200){ if(response.data.msg.indexOf("用户不存在,请重新登录")!=-1 || response.data.msg.indexOf("请重新登录后进行操作")!=-1){ uni.removeStorageSync("ztc_token"); uni.removeStorageSync("user_nickname"); uni.removeStorageSync("user_avatar"); uni.navigateTo({ url:"/pages/login/login" }) }else{ _page_error(response.data.code , response.data.msg); } resolve(response.data); }else{ resolve(response.data); } } } else { // 处理catch 请求,不在本页面之外处理,统一在这里处理 if (options.handle) { reject(response) } else { try { Promise.reject(response).catch(err => { // console.error(err); _page_error(response.statusCode , response.errMsg); }); } catch (e) { console.log(e) } } } } // 开始请求 uni.request(Object.assign({}, _config, options)); }) } // request 錯誤 function _page_error(err, msg) { switch (err) { case 401: // 错误码404的处理方式 uni.showToast({ title: '请登录后操作', icon: 'none', mask: true }) uni.removeStorageSync("ztc_token"); uni.removeStorageSync("user_nickname"); uni.removeStorageSync("user_avatar"); setTimeout(() => { uni.navigateTo({ url: '/pages/login/login' }) }, 1500) break; case 403: uni.showToast({ title: "您没有权限,请联系管理员", icon: "none", mask: true }) break; case 404: uni.showToast({ title: '请求页面不存在,请联系管理员', icon: 'none', mask: true }) // 错误码404的处理方式 setTimeout(() => { uni.navigateBack() }, 1500) break; case 405: console.error("错误的请求") break; case 500: uni.showToast({ title: msg, icon: 'none', mask: true }) break; } }