request.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. import config from "@/config/index.js"
  2. const baseUrl = process.env.NODE_ENV === 'development' ? config.base.dev : config.base.pro;
  3. import {
  4. getToken
  5. } from '@/libs/auth.js';
  6. export async function request(params) {
  7. return new Promise(function(resolve, reject) {
  8. try {
  9. uni.showLoading({
  10. title: '加载中',
  11. mask: true
  12. });
  13. if(!getToken()&&params.url!=='/login'){
  14. uni.clearStorageSync()
  15. uni.reLaunch({
  16. url: '/pages/login/index'
  17. })
  18. return
  19. }
  20. uni.request({
  21. ...formatRequestBody(params),
  22. success(response) {
  23. let data = response.data;
  24. let code = data.code;
  25. let msg = data.msg
  26. if (code === 200) {
  27. resolve(data)
  28. } else {
  29. if (code === 401) {
  30. uni.showToast({
  31. title: "登录失效!",
  32. mask: true,
  33. icon: "none",
  34. duration:3000,
  35. complete() {
  36. // let pages=getCurrentPages()
  37. // console.log({
  38. // page:pages[pages.length-1].$route.fullPath
  39. // })
  40. // let qrcode=uni.getStorageSync('qrcode')
  41. // if(qrcode){uni.setStorageSync('qrcode',qrcode)}
  42. uni.clearStorageSync()
  43. setTimeout(()=>{
  44. uni.reLaunch({
  45. url: '/pages/login/index'
  46. })
  47. },3000)
  48. }
  49. })
  50. } else {
  51. reject(data)
  52. uni.showToast({
  53. title: msg,
  54. mask: true,
  55. duration:3000,
  56. icon: "none"
  57. })
  58. }
  59. }
  60. },
  61. fail(res) {
  62. uni.showToast({
  63. title: res,
  64. mask: true,
  65. icon: "none"
  66. })
  67. reject(res)
  68. },
  69. complete(res) {
  70. uni.hideLoading();
  71. }
  72. })
  73. } catch (err) {
  74. console.log(err)
  75. reject(err)
  76. }
  77. })
  78. }
  79. function formatRequestBody(params) {
  80. let url = params.url;
  81. url = baseUrl + url;
  82. let data = {
  83. ...params.data
  84. };
  85. let header = {
  86. ...params.header,
  87. AppID:config.appID,
  88. AppKey:config.appKey,
  89. AppSecret:config.appSecret
  90. };
  91. if(getToken()){
  92. header[config.TokenKey]=getToken();
  93. }
  94. let method = params.method || "get";
  95. let dataType = params.dataType || "json";
  96. let requestBody = {
  97. url,
  98. data,
  99. header,
  100. method,
  101. dataType
  102. };
  103. return requestBody;
  104. };