request.js 1.5 KB

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