index.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. import {
  2. baseUrl
  3. } from "@/config"
  4. import {
  5. wipeNulish
  6. } from '@/utils/utils.js'
  7. import {getWxUserInfo} from "../utils/wxAuth";
  8. function requestHandle(obj) {
  9. const reqData = wipeNulish(obj.data) || {}
  10. const token = uni.getStorageSync('token') || 'no-login'
  11. let base = baseUrl
  12. const BASE_URL = obj.url.indexOf("http") > -1 || obj.url.indexOf("https://") > -1 ? obj.url : base + obj.url;
  13. return new Promise((resolve, reject) => {
  14. uni.request({
  15. method: obj.method,
  16. url: BASE_URL,
  17. data: reqData,
  18. header: {
  19. token,
  20. },
  21. dataType: "json"
  22. }).then(response => {
  23. const {
  24. data: {
  25. data,
  26. code,
  27. msg
  28. }
  29. } = response || {}
  30. if (code === 10021) {
  31. getWxUserInfo()
  32. return
  33. }
  34. if (code === 0) {
  35. if (msg) {
  36. uni.showToast({
  37. title: msg,
  38. icon: 'success'
  39. })
  40. }
  41. } else {
  42. resolve(data)
  43. }
  44. if (code !== 0) {
  45. uni.showToast({
  46. title: msg || '服务器开小差',
  47. icon: 'none'
  48. })
  49. } else {
  50. resolve(data)
  51. }
  52. }).catch(error => {
  53. /**获取网络状态 */
  54. uni.getNetworkType({
  55. success: function (res) {
  56. if (res.networkType === 'none') {
  57. uni.showToast({
  58. title: '网络未连接,请检查网络状态',
  59. mask: false,
  60. icon: 'none'
  61. })
  62. } else {
  63. uni.showToast({
  64. title: '网络连接超时',
  65. icon: 'none'
  66. })
  67. }
  68. }
  69. })
  70. reject(error)
  71. })
  72. })
  73. }
  74. // customRes 用于自定义反参状态处理,凡是未加此参数 都当作反参code是0处理
  75. const request = {
  76. get: (obj) => {
  77. return new Promise((resolve, reject) => {
  78. requestHandle({
  79. method: 'GET',
  80. url: obj.url,
  81. data: obj.data,
  82. header: obj.header,
  83. customRes: obj.customRes
  84. })
  85. .then((res) => {
  86. resolve(res)
  87. })
  88. .catch((err) => {
  89. reject(err)
  90. })
  91. });
  92. },
  93. post: (obj) => {
  94. return new Promise((resolve, reject) => {
  95. requestHandle({
  96. method: 'POST',
  97. url: obj.url,
  98. data: obj.data,
  99. header: obj.header,
  100. customRes: obj.customRes
  101. })
  102. .then((res) => {
  103. resolve(res)
  104. })
  105. .catch((err) => {
  106. reject(err)
  107. })
  108. })
  109. },
  110. put: (obj) => {
  111. return new Promise((resolve, reject) => {
  112. requestHandle({
  113. method: 'PUT',
  114. url: obj.url,
  115. data: obj.data,
  116. header: obj.header,
  117. customRes: obj.customRes
  118. })
  119. .then((res) => {
  120. resolve(res)
  121. })
  122. .catch((err) => {
  123. reject(err)
  124. })
  125. })
  126. },
  127. del: (obj) => {
  128. return new Promise((resolve, reject) => {
  129. requestHandle({
  130. method: 'DELETE',
  131. url: obj.url,
  132. data: obj.data,
  133. header: obj.header,
  134. customRes: obj.customRes
  135. })
  136. .then((res) => {
  137. resolve(res)
  138. })
  139. .catch((err) => {
  140. reject(err)
  141. })
  142. })
  143. }
  144. }
  145. export default request