api.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. let isToLoginSend = false;
  2. var requestTask = null
  3. var elabprojectname = ''
  4. var elabsystem = ''
  5. var elabEnvironment = ''
  6. export const myRequest = (options) => {
  7. if (!options.hasOwnProperty("showLoading")) {
  8. var localDate = uni.getStorageSync('loadingStamp') || 0
  9. var date = new Date().getTime()
  10. if (date - localDate > 2000) {
  11. uni.setStorageSync('loadingStamp', date)
  12. uni.showLoading({
  13. mask: true,
  14. title: "正在加载中"
  15. })
  16. }
  17. }
  18. let token = getApp().globalData.token;
  19. if (token) {
  20. options.token = token
  21. } else {
  22. options.token = null
  23. }
  24. let BASE_URL = getApp().globalData.BASE_URL;
  25. var plat = getApp().globalData.platform
  26. if (plat == 'android') {
  27. elabprojectname = 'com.elab.damai'
  28. elabsystem = '1'
  29. elabEnvironment = '2'
  30. } else if (plat == 'ios') {
  31. elabprojectname = 'com.elab.damai'
  32. elabsystem = '1'
  33. elabEnvironment = '1'
  34. } else {
  35. elabprojectname = '大麦数字营销'
  36. elabsystem = '3'
  37. elabEnvironment = '4'
  38. }
  39. // console.log("param", JSON.stringify(options.data) + "token:" + options.token + ":url = " + BASE_URL + options.url)
  40. return new Promise((resolve, reject) => {
  41. let userInfo = uni.getStorageSync('userInfo');
  42. if (!userInfo) {
  43. var pages = getCurrentPages()
  44. var currentPage = pages[pages.length - 1]
  45. var url = currentPage.route
  46. if (url.indexOf('loginPage/index') == -1) {
  47. uni.redirectTo({
  48. url: '/pages/loginPage/index'
  49. })
  50. reject()
  51. }
  52. }
  53. requestTask = uni.request({
  54. url: BASE_URL + options.url,
  55. method: options.method || "POST",
  56. data: options.data || {},
  57. // header: {
  58. // 'token': options.token || null,
  59. // 'elabprojectname': elabprojectname,
  60. // 'elabsystem': elabsystem,
  61. // 'elabEnvironment': elabEnvironment
  62. // },
  63. success: res => {
  64. // console.log("token", options.token)
  65. // console.log("返回参数:", res);
  66. if (res.statusCode == 401) { //登出
  67. uni.removeStorage({
  68. key: 'userInfo',
  69. })
  70. getApp().globalData.token = "";
  71. uni.removeStorageSync('selectedData');
  72. uni.removeStorageSync('selecedProject');
  73. if (!isToLoginSend) {
  74. isToLoginSend = true;
  75. uni.reLaunch({
  76. url: "../loginPage/index",
  77. success() {
  78. setTimeout(() => {
  79. isToLoginSend = false;
  80. }, 1000)
  81. }
  82. })
  83. uni.showToast({
  84. title: "您的账号在别处登录,请重新登录",
  85. icon: "none",
  86. duration: 3000
  87. })
  88. }
  89. ekanfang.logout();
  90. return
  91. }
  92. uni.hideLoading()
  93. resolve(res)
  94. },
  95. fail: (err) => {
  96. uni.hideLoading()
  97. uni.hideNavigationBarLoading();
  98. uni.stopPullDownRefresh();
  99. reject(err)
  100. }
  101. })
  102. })
  103. }