api.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import axios from 'axios'
  2. // 简单 axios 封装,保留原有接口定义,方便后续扩展
  3. const api = axios.create({
  4. baseURL: import.meta.env.VITE_API_URL,
  5. headers: {
  6. 'Content-Type': 'application/json'
  7. }
  8. })
  9. api.interceptors.request.use(
  10. (config) => config,
  11. (error) => Promise.reject(error)
  12. )
  13. api.interceptors.response.use(
  14. (response) => response,
  15. (error) => Promise.reject(error.response?.data || error)
  16. )
  17. export const uploadFile = async (file) => {
  18. const formData = new FormData()
  19. formData.append('file', file)
  20. const response = await api.post('/files/upload/image', formData, {
  21. headers: {
  22. 'Content-Type': 'multipart/form-data'
  23. }
  24. })
  25. return response.data
  26. }
  27. export const downloadFile = async (key) => {
  28. const response = await api.post(
  29. '/files/download',
  30. { key },
  31. {
  32. responseType: 'blob'
  33. }
  34. )
  35. return response.data
  36. }
  37. export const fetchQrInfoApi = async (qrCode) => {
  38. const response = await api.get('/qr/info', {
  39. params: { qrCode }
  40. })
  41. return response.data
  42. }
  43. export const verifyMaintenanceCodeApi = async (payload) => {
  44. const response = await api.post('/qr/verify', payload)
  45. return response.data
  46. }
  47. export const verifyMaintenanceCodeInfoApi = async (payload) => {
  48. const response = await api.post('/qr/verify/info', payload)
  49. return response.data
  50. }
  51. export const updatePersonProfileApi = async (profilePayload) => {
  52. const response = await api.put('/person/update', profilePayload)
  53. return response.data
  54. }
  55. export const updatePetProfileApi = async (profilePayload) => {
  56. const response = await api.put('/pet/update', profilePayload)
  57. return response.data
  58. }
  59. export const updateGoodsInfoApi = async (goodsPayload) => {
  60. const response = await api.put('/goods/update', goodsPayload)
  61. return response.data
  62. }
  63. export const createScanRecordApi = async (recordPayload) => {
  64. const response = await api.post('/scan/create', recordPayload)
  65. return response.data
  66. }
  67. export const fetchRecentScanRecordsApi = async (qrCode, maintenanceCode) => {
  68. const response = await api.get('/scan/recent', {
  69. params: { qrCode, maintenanceCode }
  70. })
  71. return response.data
  72. }