|
@@ -1,85 +1,92 @@
|
|
|
// uni-app请求封装
|
|
|
+import store from "@/store";
|
|
|
export default class Request {
|
|
|
- http(router, data = {}, method,contentType,url) {
|
|
|
+ http(router, data = {}, method, contentType, url) {
|
|
|
let that = this;
|
|
|
// let path = 'http://127.0.0.1:8113';
|
|
|
- var path=uni.getStorageSync('requestPath')
|
|
|
+ var path = uni.getStorageSync('requestPath')
|
|
|
// var path = 'https://userapp.his.cdwjyyh.com';
|
|
|
// var path = 'https://app.rtys.cdwjyyh.com';
|
|
|
- let token="";
|
|
|
- if(url!=null){
|
|
|
- path= url;
|
|
|
- token= uni.getStorageSync('AppTokenmini_RTCourse')
|
|
|
- }
|
|
|
- else{
|
|
|
- // path= 'https://app.rtys.cdwjyyh.com';
|
|
|
- uni.setStorageSync('requestPath',path)
|
|
|
- token= uni.getStorageSync('AppToken');
|
|
|
+ let token = "";
|
|
|
+ let pathType = 0
|
|
|
+ if (url != null) {
|
|
|
+ path = url;
|
|
|
+ pathType = 1
|
|
|
+ token = uni.getStorageSync('AppTokenmini_RTCourse')
|
|
|
+ } else {
|
|
|
+ pathType = 0
|
|
|
+ uni.setStorageSync('requestPath', path)
|
|
|
+ token = uni.getStorageSync('AppToken');
|
|
|
}
|
|
|
// uni.showLoading({
|
|
|
// title: '加载中'
|
|
|
// });
|
|
|
- // var path = 'https://test.userapp.his.cdwjyyh.com';
|
|
|
- return new Promise((resolve, reject) => {
|
|
|
- // let token = uni.getStorageSync('AppToken');
|
|
|
- let CompanyUserToken = uni.getStorageSync('CompanyUserToken');
|
|
|
- var httpContentType='application/x-www-form-urlencoded';
|
|
|
- if(contentType!=undefined){
|
|
|
- //application/json;charset=UTF-8
|
|
|
- httpContentType=contentType;
|
|
|
- }
|
|
|
- var routers=router;
|
|
|
- // 请求
|
|
|
- uni.request({
|
|
|
- header: {
|
|
|
- // 'Content-Type': 'application/x-www-form-urlencoded',
|
|
|
- 'Content-Type': httpContentType,
|
|
|
- 'AppToken': token,
|
|
|
- 'CompanyUserToken':CompanyUserToken
|
|
|
- },
|
|
|
- url: `${path}${router}`,
|
|
|
- data: data,
|
|
|
- method: method,
|
|
|
- success: (res) => {
|
|
|
- //收到开发者服务器成功返回的回调函数
|
|
|
- if(res.data.code==401){//没有权限直接退出到登录界面
|
|
|
- let pages = getCurrentPages();
|
|
|
- let url = pages[ pages.length - 1]; //当前页页面实例
|
|
|
- console.log(url)
|
|
|
- //如果登录界面已打开,自动关闭
|
|
|
- if(url!=undefined&&url.route=="pages/auth/login"){
|
|
|
- resolve(res.data)
|
|
|
- return;
|
|
|
+ // 内部真正发请求的方法
|
|
|
+ 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,
|
|
|
+ method,
|
|
|
+ success: (res) => {
|
|
|
+ if(pathType == 1) {
|
|
|
+ store.commit("networkErrorInfo/setStatus", '0');
|
|
|
}
|
|
|
- uni.navigateTo({
|
|
|
- url:'/pages/auth/login',
|
|
|
- success: () => {
|
|
|
-
|
|
|
- },
|
|
|
- fail: () => {
|
|
|
+ //没有权限直接退出到登录界面
|
|
|
+ if (res.data.code == 401) {
|
|
|
+ const pages = getCurrentPages();
|
|
|
+ const cur = pages[pages.length - 1];
|
|
|
+ if (cur && cur.route == 'pages/auth/login') {
|
|
|
+ resolve(res.data);
|
|
|
+ return;
|
|
|
}
|
|
|
- })
|
|
|
- return;
|
|
|
- }
|
|
|
- if (res.data.token) {
|
|
|
- uni.setStorageSync('AppToken',res.data.token)
|
|
|
- }
|
|
|
- resolve(res.data)
|
|
|
- },
|
|
|
- fail:(res) =>{
|
|
|
- //接口调用失败的回调函数
|
|
|
- },
|
|
|
- complete:(res) =>{
|
|
|
- //接口调用结束的回调函数(调用成功、失败都会执行)
|
|
|
- if (res.data.code == 401) {
|
|
|
- return false
|
|
|
+ uni.navigateTo({
|
|
|
+ url: '/pages/auth/login'
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新 token
|
|
|
+ if (res.data.token && pathType == 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 &&pathType == 1&&err.errMsg.indexOf('request:fail') !== -1) {
|
|
|
+ // // 第一次失败 -> 重试
|
|
|
+ // if (!retry) {
|
|
|
+ // _request(true).then(resolve).catch(reject);
|
|
|
+ // return;
|
|
|
+ // }
|
|
|
+ // 第二次仍失败
|
|
|
+ store.commit("networkErrorInfo/setStatus", '1');
|
|
|
+ }
|
|
|
+ reject(err);
|
|
|
+ },
|
|
|
+ complete: (res) => {
|
|
|
+ if (res.data && res.data.code == 401) return;
|
|
|
}
|
|
|
- //uni.hideLoading();
|
|
|
- }
|
|
|
-
|
|
|
- })
|
|
|
- })
|
|
|
-
|
|
|
+ });
|
|
|
+ });
|
|
|
+ };
|
|
|
+
|
|
|
+ return _request(); // 第一次调用
|
|
|
}
|
|
|
-
|
|
|
-}
|
|
|
+
|
|
|
+}
|