| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- // 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(); // 第一次调用
- }
-
- }
|