const util = require('../utils/util'); const storeKeys = require('../utils/storageKeys'); const app = getApp() let timer = null; let goLoginState = false; //是否已经触发跳转登录页面 const http = { errorModel: (content, showCancel, confirmText, callback)=> { wx.showModal({ title: '提示', content: content, showCancel: showCancel, confirmText: confirmText, confirmColor: '#E73E2D', success(res) { if (res.confirm) { callback(); } } }) }, request: (model)=> { // if (model.data != null && url.indexOf("{") > 0 && url.indexOf("}") > 0) { // for (var key in model.data) { // if (url.indexOf("{" + key + "}") >= 0) { // url = url.replace("{" + key + "}", model.data[key]); // } // } // } // clearInterval(timer); // timer = null; // timer = setInterval(()=>{ // wx.showLoading({ // title: "加载中" // }); // },3000); wx.request({ url: model.url, data: model.data, header: { "Content-Type": "application/json", "Access-Token": model.token }, method: model.method, success: (res)=> { // clearInterval(timer); // timer = null; let statusCode = res.data.status; // let pages = getCurrentPages(), currPage = null; // if (pages.length) { // currPage = pages[pages.length - 1]; // } // let route = currPage.route; // 成功的请求状态 if (statusCode == 200 || statusCode == 201) { model.success(res); } else { wx.hideLoading(); // 未登录或者失效 if (statusCode == 401 || statusCode == 444) { util.removeStorageSync(storeKeys.TOKEN); util.removeStorageSync(storeKeys.CARETOTAl); wx.removeTabBarBadge({ index: 2, }) if(!model.noLogin && !goLoginState){ goLoginState = true; wx.navigateTo({ url: "/pages/tabBar/login/login" }) } } else { if (statusCode == 404) { wx.showToast({ title: '资源404', icon: 'none', duration: 2000 }) } // if (statusCode == 500) { // if (!model.noToast) { // wx.showToast({ // title: res.data.message, // icon: 'none', // duration: 1000 // }) // } // } else { if (res.data && res.data.message) { if (!model.noToast) { wx.showToast({ title: res.data.message, icon: 'none', duration: 1500 }) } } } } model.error(res); //异常后可操作 } }, fail:()=>{ wx.hideLoading(); // util.toast("网络不佳,请求超时",3000) } }) }, getRequest: (model)=> { wx.request({ url: model.url, data: model.data, header: { "Content-Type": "application/json", "Access-Token": model.token }, method: model.method, success: function (res) { let statusCode = res.statusCode; let pages = getCurrentPages(),currPage = null; if (pages.length) { currPage = pages[pages.length - 1]; } // 成功的请求状态 if (statusCode == 200 || statusCode == 201) { model.success(res); } else { wx.hideLoading(); // 未登录或者失效 if (statusCode == 401 || statusCode == 444) { util.removeStorageSync(storeKeys.TOKEN); utils.removeStorageSync(storeKeys.CARETOTAl); } else { if (statusCode == 404) { wx.showToast({ title: '资源404', icon: 'none', duration: 2000 }) }else if (statusCode == 500) { wx.showToast({ title: '服务器开小差', icon: 'none', duration: 1000 }) } else { if (res.data.error && res.data.error.message) { if(!model.noToast){ wx.showToast({ title: res.data.error.message, icon: 'none', duration: 1000 }) } } } } model.error(res); //异常后可操作 } } }) }, }; module.exports = { request: http.request, getRequest: http.getRequest }