request.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import store from '@/store'
  2. import config from '@/config'
  3. import { getToken } from '@/utils/auth'
  4. import errorCode from '@/utils/errorCode'
  5. import { toast, showConfirm, tansParams } from '@/utils/common'
  6. let timeout = 10000
  7. const baseUrl = config.baseUrl
  8. const request = config => {
  9. console.log(33333333)
  10. // 是否需要设置 token
  11. const isToken = (config.headers || {}).isToken === false
  12. config.header = config.header || {}
  13. if (getToken() && !isToken) {
  14. config.header['sessionId'] = getToken()
  15. }
  16. // get请求映射params参数
  17. if (config.params) {
  18. let url = config.url + '?' + tansParams(config.params)
  19. url = url.slice(0, -1)
  20. config.url = url
  21. }
  22. return new Promise(resolve => {
  23. uni.request({
  24. method: config.method || 'get',
  25. timeout: config.timeout || timeout,
  26. url: config.baseUrl || baseUrl + config.url,
  27. data: config.data,
  28. header: config.header,
  29. dataType: 'json'
  30. }).then(response => {
  31. const error = response.statusCode !== 200
  32. const res = response
  33. console.log(response)
  34. if (error) {
  35. toast('后端接口连接异常')
  36. resolve({
  37. success: false,
  38. code: response.statusCode,
  39. msg: '后端接口连接异常',
  40. data: null
  41. })
  42. return
  43. }
  44. const code = res.data.code !== undefined ? res.data.code : 200
  45. const msg = res.data.msg || errorCode[code] || errorCode.default
  46. // 构造统一返回结构
  47. const result = {
  48. success: code === 0,
  49. code,
  50. msg,
  51. data: res.data.data || null,
  52. raw: res.data
  53. }
  54. if (code === 401 || code === -10) {
  55. if (getToken()) {
  56. store.dispatch('LogOut').then(() => {
  57. uni.reLaunch({ url: '/pages/login' })
  58. })
  59. }
  60. result.success = false
  61. resolve(result)
  62. return
  63. }
  64. if (code === 500) {
  65. result.success = false
  66. resolve(result)
  67. return
  68. }
  69. if (code !== 0) {
  70. result.success = false
  71. resolve(result)
  72. return
  73. }
  74. resolve(result)
  75. }).catch(error => {
  76. let { message } = error
  77. if (message === 'Network Error') {
  78. message = '后端接口连接异常'
  79. } else if (message.includes('timeout')) {
  80. message = '系统接口请求超时'
  81. } else if (message.includes('Request failed with status code')) {
  82. message = '系统接口' + message.substr(message.length - 3) + '异常'
  83. }
  84. toast(message)
  85. resolve({
  86. success: false,
  87. code: -999,
  88. msg: message,
  89. data: null
  90. })
  91. })
  92. })
  93. }
  94. export default request