index.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. import {
  2. baseUrl
  3. } from "@/config"
  4. import platform from "@/utils/platform"
  5. import getEnv from "@/utils/env" // 获取环境变量
  6. import store from "@/store"
  7. import {
  8. wipeNulish
  9. } from '@/utils/utils.js'
  10. function requestHandle(obj) {
  11. let header = obj.header || {}
  12. const reqData = wipeNulish(obj.data) || {}
  13. const accessToken = uni.getStorageSync('accessToken') || ''
  14. const tokenType = uni.getStorageSync('tokenType') || ''
  15. const Authorization = accessToken && tokenType ? `${tokenType} ${accessToken}` : ''
  16. const customRes = obj.customRes
  17. const plat = platform()
  18. const env = getEnv()
  19. let base = baseUrl
  20. const BASE_URL = obj.url.indexOf("http") > -1 || obj.url.indexOf("https://") > -1 ? obj.url : base + obj.url;
  21. console.log(plat,env,baseUrl);
  22. Object.assign(header, {
  23. accessToken: accessToken,
  24. platform: plat,
  25. })
  26. // header.channel = 2 // 渠道-提货卡
  27. if (obj.loading) {
  28. uni.showLoading({
  29. mask: true
  30. })
  31. }
  32. return new Promise((resolve, reject) => {
  33. uni.request({
  34. method: obj.method,
  35. url: BASE_URL,
  36. data: reqData,
  37. header: header,
  38. dataType: "json"
  39. }).then(response => {
  40. uni.hideLoading()
  41. let [error, {
  42. data: {
  43. data,
  44. code,
  45. msg
  46. }
  47. }] = response
  48. if (error) {
  49. uni.showToast({
  50. title: "服务器炸了",
  51. icon: 'none'
  52. })
  53. }
  54. if (customRes) {
  55. resolve(response[1].data)
  56. } else if (code === 424) { // 登录过期
  57. uni.removeStorageSync('accessToken')
  58. uni.removeStorageSync('tokenType')
  59. uni.removeStorageSync('userInfo')
  60. uni.removeStorageSync('currentBuyerAddr')
  61. // uni.removeStorageSync('payOpenId')
  62. // const pages = getCurrentPages()
  63. // if (pages[pages.length - 1].$page.fullPath.includes('login')) {
  64. // return
  65. // }
  66. // uni.showToast({
  67. // title: msg,
  68. // icon: 'none',
  69. // mask: true
  70. // })
  71. setTimeout(() => {
  72. uni.reLaunch({
  73. url: '/pages/login/index'
  74. })
  75. }, 1000)
  76. } else if (code !== 0) {
  77. uni.showToast({
  78. title: msg || '服务器开小差',
  79. icon: 'none'
  80. })
  81. } else {
  82. resolve(data)
  83. }
  84. }).catch(error => {
  85. uni.hideLoading()
  86. /**获取网络状态 */
  87. uni.getNetworkType({
  88. success: function(res) {
  89. if (res.networkType === 'none') {
  90. console.log('网络未连接,请检查网络状态')
  91. uni.showToast({
  92. title: '网络未连接,请检查网络状态',
  93. mask: false,
  94. icon: 'none'
  95. })
  96. } else {
  97. uni.showToast({
  98. title: '网络连接超时',
  99. icon: 'none'
  100. })
  101. }
  102. }
  103. })
  104. reject(error)
  105. })
  106. })
  107. }
  108. // customRes 用于自定义反参状态处理,凡是未加此参数 都当作反参code是0处理
  109. const request = {
  110. get: (obj) => {
  111. return new Promise((resolve, reject) => {
  112. requestHandle({
  113. method: 'GET',
  114. url: obj.url,
  115. data: obj.data,
  116. header: obj.header,
  117. customRes: obj.customRes,
  118. loading: obj.loading
  119. })
  120. .then((res) => {
  121. resolve(res)
  122. })
  123. .catch((err) => {
  124. reject(err)
  125. })
  126. });
  127. },
  128. post: (obj) => {
  129. return new Promise((resolve, reject) => {
  130. requestHandle({
  131. method: 'POST',
  132. url: obj.url,
  133. data: obj.data,
  134. header: obj.header,
  135. customRes: obj.customRes,
  136. loading: obj.loading
  137. })
  138. .then((res) => {
  139. resolve(res)
  140. })
  141. .catch((err) => {
  142. reject(err)
  143. })
  144. })
  145. },
  146. put: (obj) => {
  147. return new Promise((resolve, reject) => {
  148. requestHandle({
  149. method: 'PUT',
  150. url: obj.url,
  151. data: obj.data,
  152. header: obj.header,
  153. customRes: obj.customRes,
  154. loading: obj.loading
  155. })
  156. .then((res) => {
  157. resolve(res)
  158. })
  159. .catch((err) => {
  160. reject(err)
  161. })
  162. })
  163. },
  164. del: (obj) => {
  165. return new Promise((resolve, reject) => {
  166. requestHandle({
  167. method: 'DELETE',
  168. url: obj.url,
  169. data: obj.data,
  170. header: obj.header,
  171. customRes: obj.customRes,
  172. loading: obj.loading
  173. })
  174. .then((res) => {
  175. resolve(res)
  176. })
  177. .catch((err) => {
  178. reject(err)
  179. })
  180. })
  181. }
  182. }
  183. export default request