request.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. // uni-app请求封装
  2. export default class Request {
  3. http(router, data = {}, method,contentType,timeout=60000, hideLoading=true) {
  4. let that = this;
  5. //let path ='https://api.cdwjyyh.com';//app正式环境
  6. let path = 'https://h5api.his.cdwjyyh.com';//h5接口
  7. // 看课模块
  8. if(router.indexOf("/course_auto") != -1 ) {
  9. router = router.replace('/course_auto', '')
  10. path ='https://h5api.his.cdwjyyh.com';
  11. }
  12. // 直播模块
  13. if(router.indexOf("/appLive") !== -1) {
  14. // router = router.replace('/appLive','')
  15. path ='https://api.fhhx.runtzh.com';
  16. // router = router.replace('/appLive','')
  17. // path ='http://z2fae9e9.natappfree.cc'
  18. }
  19. //直播静默登录配置
  20. // if (router.indexOf("/live") !== -1 || router.indexOf("/liveAPP") !== -1) {
  21. // if(router.indexOf("/liveAPP") !== -1){
  22. // router = router.replace('/liveAPP', '')
  23. // }
  24. // token = uni.getStorageSync('LiveToken');
  25. // }
  26. uni.setStorageSync('requestPath',path);
  27. // uni.showLoading({
  28. // title: '加载中'
  29. // });
  30. return new Promise((resolve, reject) => {
  31. let token = uni.getStorageSync('AppToken');
  32. let liveToken = uni.getStorageSync('liveToken');
  33. let CompanyUserToken = uni.getStorageSync('CompanyUserToken');
  34. var httpContentType='application/x-www-form-urlencoded';
  35. if(contentType!=undefined){
  36. httpContentType=contentType;
  37. }
  38. var routers=router;
  39. // 直播模块使用liveToken
  40. let useToken = token;
  41. // 检查是否为直播模块路径
  42. const isLiveApi = router.indexOf("/appLive") !== -1 || router.indexOf("/liveAPP") !== -1;
  43. if(isLiveApi) {
  44. // 检查liveToken是否存在
  45. if (!liveToken || liveToken === '') {
  46. // 获取当前页面路径,以便登录成功后返回
  47. // const pages = getCurrentPages();
  48. // if (pages.length > 0) {
  49. // const currentPage = pages[pages.length - 1];
  50. // if (currentPage && currentPage.route) {
  51. // const routeStr = String(currentPage.route || '');
  52. // if (routeStr.startsWith('pages/auth/login') || routeStr === 'pages/auth/loginIndex') {
  53. // uni.navigateTo({
  54. // url: '/pages/auth/login?quickLogin=true'
  55. // });
  56. // reject({errMsg: 'On login page, cannot set loginReturnUrl'});
  57. // return;
  58. // }
  59. // let backUrl = '/' + currentPage.route;
  60. // const opts = currentPage.options || {};
  61. // const keys = Object.keys(opts);
  62. // if (keys.length > 0) {
  63. // const qs = keys.map(k => `${k}=${encodeURIComponent(opts[k])}`).join('&');
  64. // backUrl = backUrl + '?' + qs;
  65. // }
  66. // uni.setStorageSync('loginReturnUrl', backUrl);
  67. // }
  68. // }
  69. // // 跳转到手机号码一键登录页面
  70. // uni.navigateTo({
  71. // url: '/pages/auth/login?quickLogin=true'
  72. // });
  73. // // 拒绝请求
  74. // reject({errMsg: 'No liveToken, redirect to login'});
  75. // return;
  76. }
  77. useToken = liveToken;
  78. if(router.indexOf("/appLive") !== -1){
  79. router = router.replace('/appLive', '')
  80. }
  81. if(router.indexOf("/liveAPP") !== -1){
  82. router = router.replace('/liveAPP', '')
  83. }
  84. }
  85. // 请求
  86. uni.request({
  87. header: {
  88. // 'Content-Type': 'application/x-www-form-urlencoded',
  89. 'Content-Type': httpContentType,
  90. 'AppToken': useToken,
  91. 'CompanyUserToken':CompanyUserToken //业务员token
  92. },
  93. url: `${path}${router}`,
  94. data: data,
  95. method: method,
  96. timeout: timeout,
  97. success: (res) => {
  98. //收到开发者服务器成功返回的回调函数
  99. if(res.data.code==401){ //没有权限直接退出到登录界面
  100. // let pages = getCurrentPages();
  101. // let url = pages[ pages.length - 1]; //当前页页面实例
  102. // //如果登录界面已打开,自动关闭
  103. // if(url!=undefined&&url.route=="pages/auth/login"){
  104. // resolve(res.data)
  105. // return;
  106. // }
  107. }
  108. resolve(res.data)
  109. },
  110. fail:(res) =>{
  111. //接口调用失败的回调函数
  112. reject(res);
  113. },
  114. complete:(res) =>{
  115. if(hideLoading){
  116. uni.hideLoading();
  117. }
  118. }
  119. });
  120. })
  121. }
  122. }