request.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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(parmas) {
  7. return new Promise(function(resolve, reject) {
  8. try {
  9. uni.showLoading({
  10. title: '加载中',
  11. mask: true
  12. });
  13. if(!getToken()){
  14. uni.clearStorageSync()
  15. uni.reLaunch({
  16. url: '/pages/login/index'
  17. })
  18. }
  19. uni.request({
  20. ...formatRequestBody(parmas),
  21. success(response) {
  22. uni.hideLoading();
  23. let data = response.data;
  24. let code = data.code;
  25. let msg = data.msg
  26. if (code === 0) {
  27. resolve(data)
  28. } else {
  29. if (code === 401) {
  30. uni.showToast({
  31. title: msg || "登录失效!",
  32. mask: true,
  33. icon: "none",
  34. complete() {
  35. uni.reLaunch({
  36. url: '/pages/login/index'
  37. })
  38. }
  39. })
  40. } else {
  41. reject(data)
  42. uni.showToast({
  43. title: msg,
  44. mask: true,
  45. icon: "none"
  46. })
  47. }
  48. }
  49. },
  50. fail(res) {
  51. uni.hideLoading();
  52. uni.showToast({
  53. title: res,
  54. mask: true,
  55. icon: "none"
  56. })
  57. reject(res)
  58. }
  59. })
  60. } catch (err) {
  61. uni.hideLoading();
  62. console.log(err)
  63. reject(err)
  64. }
  65. })
  66. }
  67. function formatRequestBody(parmas) {
  68. let url = parmas.url;
  69. url = baseUrl + url;
  70. let data = {
  71. ...parmas.data
  72. };
  73. let header = {
  74. ...parmas.header
  75. };
  76. header[config.TokenKey]=getToken();
  77. let method = parmas.method || "get";
  78. let dataType = parmas.dataType || "json";
  79. let requestBody = {
  80. url,
  81. data,
  82. header,
  83. method,
  84. dataType
  85. };
  86. return requestBody;
  87. };