DWHRequest.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. import { RUAN_URL, sf } from '../config'
  2. import { USER_TOKEN, T_STORAGE_KEY } from '../constant'
  3. import store from '../store'
  4. const request = (base_url) => function (url, data = {}, method = 'post', cb, header = {}) {
  5. return new Promise((resolve, reject) => {
  6. const res = uni.getStorageSync(T_STORAGE_KEY) || {}
  7. if (res.ssoUserInfo && res.ssoUserInfo.token) header['satoken-user'] = res.ssoUserInfo.token
  8. uni.request({
  9. url: base_url + url,
  10. data,
  11. method,
  12. header: {
  13. ...header,
  14. token: uni.getStorageSync(USER_TOKEN)
  15. },
  16. success: (res) => {
  17. resolve(res.data)
  18. },
  19. fail: (error) => {
  20. reject(error)
  21. },
  22. complete: () => {
  23. cb && typeof cb === 'function' && cb()
  24. }
  25. })
  26. })
  27. }
  28. const service = (base_url, hideLoading) => function (url, data = {}, method = 'post', cb, header = {}) {
  29. const res = uni.getStorageSync(T_STORAGE_KEY) || {}
  30. if (res.ssoUserInfo && res.ssoUserInfo.token) header['satoken-user'] = res.ssoUserInfo.token
  31. uni.showLoading()
  32. return new Promise((resolve, reject) => [
  33. uni.request({
  34. url: base_url + url,
  35. data,
  36. header,
  37. method,
  38. success: (res) => {
  39. if (res.data.errno === 780) {
  40. uni.showToast({
  41. title: '系统内部错误',
  42. icon: 'none',
  43. mask: true
  44. })
  45. reject(res.data.errmsg)
  46. return
  47. }
  48. if (res.data.errmsg.includes('当前token已失效')) {
  49. uni.showToast({
  50. title: '登录失效,请重新登陆',
  51. icon: 'none',
  52. mask: true
  53. })
  54. store.dispatch('auth/logoutAction')
  55. setTimeout(() => {
  56. uni.navigateTo({
  57. url: '/pages/login/login'
  58. })
  59. }, 1000)
  60. return
  61. }
  62. if (res.data.errno !== 0) {
  63. uni.showToast({
  64. title: res.data.errmsg,
  65. icon: 'none',
  66. mask: true
  67. })
  68. reject(res.data.errmsg)
  69. return
  70. } else if (res.data.errmsg == '用户未登录') {
  71. uni.showModal({
  72. title: '提示',
  73. content: '您还未登录,请先去登录',
  74. showCancel: true,
  75. success(res) {
  76. uni.navigateTo({ url: '/pages/login/login' })
  77. }
  78. })
  79. } else {
  80. resolve(res.data)
  81. }
  82. uni.hideLoading()
  83. },
  84. fail: (error) => {
  85. uni.hideLoading()
  86. reject(error)
  87. },
  88. complete: () => {
  89. cb && typeof cb === 'function' && cb()
  90. }
  91. })
  92. ])
  93. }
  94. const endService = (base_url) => function (config) {
  95. const { url, data = {}, method = 'post', cb, header = {}, loading } = config
  96. const res = uni.getStorageSync(T_STORAGE_KEY) || {}
  97. if (res.ssoUserInfo && res.ssoUserInfo.token) header['satoken-user'] = res.ssoUserInfo.token
  98. loading && uni.showLoading()
  99. return new Promise((resolve, reject) => [
  100. uni.request({
  101. url: base_url + url,
  102. data,
  103. header,
  104. method,
  105. success: (res) => {
  106. const data = res.data
  107. if (data.statusCode) {
  108. if (data.statusCode === 20000) {
  109. resolve(data.data)
  110. } else {
  111. reject(data.statusMsg)
  112. }
  113. } else if (data.code == '20000' || data.code == '0') {
  114. resolve(data.data)
  115. } else {
  116. reject(data.msg)
  117. }
  118. loading && uni.hideLoading()
  119. },
  120. fail: (error) => {
  121. loading && uni.hideLoading()
  122. reject(error)
  123. },
  124. complete: () => {
  125. cb && typeof cb === 'function' && cb()
  126. loading && uni.hideLoading()
  127. }
  128. })
  129. ])
  130. }
  131. export const RuanRequest = request(RUAN_URL)
  132. export const shopRequest = service(RUAN_URL)
  133. export const endRequest = endService(sf)