request.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. // import md5 from 'md5'
  2. // import { createDiscreteApi } from 'naive-ui'
  3. export function request(url, options = {}) {
  4. const config = useRuntimeConfig()
  5. // const authStore = useAuthStore()
  6. const defatulOpts = {
  7. method: 'get',
  8. baseURL: config.public.baseApi,
  9. headers: {
  10. // 'Content-Type': 'application/json',
  11. // deviceType: config.public.deviceType,
  12. // authorization: authStore.token,
  13. project: '123',
  14. ...options.headers
  15. },
  16. onRequest({ options }) {
  17. console.log(1)
  18. if (options.method === 'post') {
  19. console.log(2)
  20. // const bodyJson = options.body ? JSON.stringify(options.body) : ''
  21. // const timestamp = new Date().getTime()
  22. // let sign = `yingdeweilai888${bodyJson}${timestamp}`
  23. // sign = md5(sign).toUpperCase()
  24. // options.headers.sign = sign
  25. // options.headers.timestamp = timestamp
  26. }
  27. },
  28. onRequestError() {
  29. console.log(3)
  30. // showErrorMessage('请求出错,请重试~')
  31. },
  32. onResponse({ response: { _data: data } }) {
  33. console.log(4)
  34. if (data && data.errorCode != 'NO-ERROR') {
  35. console.log(5)
  36. handleServerError(data.errorCode, data.errorMessage)
  37. }
  38. },
  39. onResponseError({ response }) {
  40. console.log(6)
  41. handleHttpError(response.status)
  42. },
  43. ...options
  44. }
  45. return new Promise((resolve, reject) => {
  46. console.log(7)
  47. $fetch(url, defatulOpts)
  48. .then((res) => {
  49. const { code } = res
  50. code === 200 ? resolve(res) : reject(res)
  51. })
  52. .catch((err) => reject(err))
  53. })
  54. }
  55. const handleHttpError = (status) => {
  56. switch (status) {
  57. case 400:
  58. // showErrorMessage('参数错误')
  59. break
  60. case 401:
  61. // showErrorMessage('没有访问权限')
  62. break
  63. case 403:
  64. // showErrorMessage('服务器拒绝访问')
  65. break
  66. case 404:
  67. // showErrorMessage('请求地址错误')
  68. break
  69. case (502, 503):
  70. // showErrorMessage('系统升级中')
  71. break
  72. default:
  73. // showErrorMessage('服务器出错了')
  74. break
  75. }
  76. }
  77. const handleServerError = async (code, msg) => {
  78. if (code === 'UNAUTHORIZED_LOGIN') {
  79. // const authStore = useAuthStore()
  80. // authStore.cleanToken()
  81. // jumpToLoginPage()
  82. // await navigateTo({
  83. // path: '/login',
  84. // replace: true
  85. // })
  86. return
  87. }
  88. if (msg) {
  89. showErrorMessage(msg)
  90. }
  91. }
  92. const showErrorMessage = (msg) => {
  93. // const { message } = createDiscreteApi(['message'])
  94. // if (process.server) return
  95. // const { message } = useMessage()
  96. // message.error(msg)
  97. }
  98. export const handleResponse = (response, isNeedData = true) => {
  99. return new Promise((resolve, reject) => {
  100. const success = response.success
  101. switch (success) {
  102. case true: {
  103. if (isNeedData) {
  104. if (response.data && !isEmptyValue(response.data)) return resolve()
  105. return reject(response)
  106. }
  107. return resolve()
  108. }
  109. default: {
  110. return reject(response)
  111. }
  112. }
  113. })
  114. }