index.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. import {
  2. baseUrl
  3. } from "@/config"
  4. import {
  5. wipeNulish
  6. } from '@/utils/utils.js'
  7. import {
  8. getWxUserInfo
  9. } from "../utils/wxAuth";
  10. function requestHandle(obj) {
  11. const reqData = wipeNulish(obj.data) || {}
  12. const token = uni.getStorageSync('token') || 'no-login'
  13. let base = baseUrl
  14. const BASE_URL = obj.url.indexOf("http") > -1 || obj.url.indexOf("https://") > -1 ? obj.url : base + obj.url;
  15. return new Promise((resolve, reject) => {
  16. uni.request({
  17. method: obj.method,
  18. url: BASE_URL,
  19. data: reqData,
  20. header: {
  21. token,
  22. },
  23. success: (resReq) => {
  24. // 判断请求状态码是否为 200
  25. if (resReq.statusCode === 200) {
  26. // 状态码为 200 时,将响应数据传递给 resolve 函数
  27. if (resReq.data.code === 0 && resReq.data.msg) {
  28. uni.showToast({
  29. title: resReq.data.msg,
  30. icon: 'success'
  31. })
  32. }
  33. if (resReq.data.code === 500) {
  34. uni.showToast({
  35. title: resReq.data.msg || '服务器开小差',
  36. icon: 'none'
  37. })
  38. }
  39. if (resReq.data.code === 10021) {
  40. uni.removeStorageSync('token')
  41. getWxUserInfo()
  42. return
  43. }
  44. resolve(resReq.data.data);
  45. } else {
  46. // 状态码不为 200 时,将错误信息传递给 reject 函数
  47. reject(new Error(`Request failed with status code ${resReq.statusCode}`));
  48. }
  49. },
  50. })
  51. })
  52. }
  53. // customRes 用于自定义反参状态处理,凡是未加此参数 都当作反参code是0处理
  54. const request = {
  55. get: (obj) => {
  56. return new Promise((resolve, reject) => {
  57. requestHandle({
  58. method: 'GET',
  59. url: obj.url,
  60. data: obj.data,
  61. header: obj.header,
  62. customRes: obj.customRes
  63. })
  64. .then((res) => {
  65. resolve(res)
  66. })
  67. .catch((err) => {
  68. reject(err)
  69. })
  70. });
  71. },
  72. post: (obj) => {
  73. return new Promise((resolve, reject) => {
  74. requestHandle({
  75. method: 'POST',
  76. url: obj.url,
  77. data: obj.data,
  78. header: obj.header,
  79. customRes: obj.customRes
  80. })
  81. .then((res) => {
  82. resolve(res)
  83. })
  84. .catch((err) => {
  85. reject(err)
  86. })
  87. })
  88. },
  89. put: (obj) => {
  90. return new Promise((resolve, reject) => {
  91. requestHandle({
  92. method: 'PUT',
  93. url: obj.url,
  94. data: obj.data,
  95. header: obj.header,
  96. customRes: obj.customRes
  97. })
  98. .then((res) => {
  99. resolve(res)
  100. })
  101. .catch((err) => {
  102. reject(err)
  103. })
  104. })
  105. },
  106. del: (obj) => {
  107. return new Promise((resolve, reject) => {
  108. requestHandle({
  109. method: 'DELETE',
  110. url: obj.url,
  111. data: obj.data,
  112. header: obj.header,
  113. customRes: obj.customRes
  114. })
  115. .then((res) => {
  116. resolve(res)
  117. })
  118. .catch((err) => {
  119. reject(err)
  120. })
  121. })
  122. }
  123. }
  124. export default request