request.js 2.2 KB

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