instance.ts 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import AdapterUniapp from '@alova/adapter-uniapp'
  2. import { createAlova } from 'alova'
  3. import vueHook from 'alova/vue'
  4. import { handleAlovaError, handleAlovaResponse } from './handlers'
  5. import { BASE_URL } from '@/config'
  6. export const alovaInstance = createAlova({
  7. baseURL: BASE_URL,
  8. ...AdapterUniapp(),
  9. statesHook: vueHook,
  10. beforeRequest: (method) => {
  11. // Add content type for POST/PUT/PATCH requests
  12. if (['POST', 'PUT', 'PATCH'].includes(method.type)) {
  13. method.config.headers['Content-Type'] = 'application/json'
  14. }
  15. const { token } = useUserStore()
  16. method.config.headers.Authorization = token || 'Basic c21xamgtYXBwbGV0OjEyMzQ1Ng=='
  17. const { tenantCode } = storeToRefs(useSysStore())
  18. const code = tenantCode.value || 'zswl'
  19. method.config.headers['X-Tenant-code'] = code
  20. console.log(code, 'tenantCode======================')
  21. if (method.type === 'GET' && CommonUtil.isObj(method.config.params)) {
  22. method.config.params._t = Date.now()
  23. }
  24. // Log request in development
  25. if (import.meta.env.MODE === 'development') {
  26. console.log(
  27. `[Alova Request] ${method.type} ${method.url}`,
  28. method.data || method.config.params,
  29. )
  30. }
  31. console.log(
  32. BASE_URL,
  33. '=================所连服务器==========================',
  34. )
  35. },
  36. // Response handlers
  37. responded: {
  38. // Success handler
  39. onSuccess: handleAlovaResponse,
  40. // Error handler
  41. onError: handleAlovaError,
  42. // Complete handler - runs after success or error
  43. },
  44. // We'll use the middleware in the hooks
  45. // middleware is not directly supported in createAlova options
  46. // Default request timeout (10 seconds)
  47. timeout: 60000,
  48. // 设置为null即可全局关闭全部请求缓存
  49. cacheFor: null,
  50. })
  51. export default alovaInstance