// uni-app请求封装 import store from "@/store"; export default class Request { http(router, data = {}, method,contentType,url) { let that = this; // let path = 'http://192.168.10.135:8113'; // var path=uni.getStorageSync('requestPath') // var path= "https://h5api.xintaihlwyy.cn" var path= "https://userapp.tytzhongyi.cn"//泰医堂 // var path= "http://192.168.10.165:8113" // var path = 'https://userapp.his.cdwjyyh.com'; // var path = 'https://app.rtys.cdwjyyh.com'; // var path = "http://cde2e8d4.natappfree.cc" let token=""; let type =0 if(router.indexOf("/course_auto")!=-1){ type = 1 router =router.replace('/course_auto','') token= uni.getStorageSync('AppTokenmini_AutoCourse') }else if(router.indexOf("/course_uniapp")!=-1){ type = 2; router =router.replace('/course_uniapp','') token =uni.getStorageSync('TOKEN_WEXIN') }else if(router.indexOf("/store")!=-1){ router =router.replace('/store','/store') token= uni.getStorageSync('AppToken'); } else{ type = 0 uni.setStorageSync('requestPath',path) token= uni.getStorageSync('AppToken'); } // uni.showLoading({ // title: '加载中' // }); // var path = 'https://test.userapp.his.cdwjyyh.com'; const _request = (retry = false) => { return new Promise((resolve, reject) => { let CompanyUserToken = uni.getStorageSync('CompanyUserToken'); var httpContentType='application/x-www-form-urlencoded'; if(contentType!=undefined){ //application/json;charset=UTF-8 httpContentType=contentType; } uni.request({ header: { 'Content-Type': httpContentType, 'AppToken': token, 'CompanyUserToken':CompanyUserToken }, url: `${path}${router}`, data: data, method: method, success: (res) => { if(type == 1) { store.commit("courseStore/SET_NETWORKERROR", '0'); } //收到开发者服务器成功返回的回调函数 if(res.data.code==401){//没有权限直接退出到登录界面 let pages = getCurrentPages(); let url = pages[ pages.length - 1]; //当前页页面实例 // console.log(url) if(type == 1||type == 2) { store.commit('courseStore/setCoureLogin', 2); resolve({ code: 401, msg: '处理中', data: null }); return } //如果登录界面已打开,自动关闭 if(url!=undefined&&url.route=="pages/auth/login"){ resolve(res.data) return; } uni.navigateTo({ url:'/pages/auth/login', success: () => { }, fail: () => { } }) return; } if (res.data.token&&type == 0) { uni.setStorageSync('AppToken',res.data.token) } resolve(res.data) }, fail:(err) =>{ //接口调用失败的回调函数 // 看课页面网络异常,刷新重试 const excludeRouter = ['/app/course/updateWatchDuration','/app/course/getInternetTraffic','/app/course/getIntegralByH5Video','/app/course/getErrMsg'] if (excludeRouter.indexOf(router) == -1 &&type == 1&&err.errMsg.indexOf('request:fail') !== -1) { // // 第一次失败 -> 重试 // if (!retry) { // _request(true).then(resolve).catch(reject); // return; // } // 第二次仍失败 store.commit("courseStore/SET_NETWORKERROR", '1'); } reject(err); }, complete:(res) =>{ //接口调用结束的回调函数(调用成功、失败都会执行) if (res.data &&res.data.code == 401) { return false } //uni.hideLoading(); } }) }) }; return _request(); // 第一次调用 } }