request.js 1.8 KB

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