import axios from 'axios' import { useUserStore } from '@/stores/user' const api = axios.create({ baseURL: import.meta.env.VITE_API_URL, headers: { 'Content-Type': 'application/json' } }) // 请求拦截器 api.interceptors.request.use( (config) => { const userStore = useUserStore() if (userStore.token) { config.headers.Authorization = `Bearer ${userStore.token}` } return config }, (error) => { return Promise.reject(error) } ) // 响应拦截器 api.interceptors.response.use( (response) => response, (error) => { if (error.response?.status === 401) { const userStore = useUserStore() userStore.logout() } console.log('errorxxx', error.response?.data || error) return Promise.reject(error.response?.data || error) } ) export const login = async (name, password) => { const response = await api.post('/users/admin-login', { name, password }) return response.data } export const profile = async () => { const response = await api.get('/users/profile') return response.data } export const resetPasswordApi = async (password) => { const response = await api.post('/users/reset-password', { password }) return response.data } export const listUsersApi = async (page, size) => { const response = await api.get('/users', { params: { page, size } }) return response.data } export const allUsersApi = async () => { const response = await api.get('/users/all') return response.data } export const createUserApi = async (userData) => { const response = await api.post('/users/create', userData) return response.data } export const updateUserApi = async (userData) => { const response = await api.post('/users/update', userData) return response.data } // 系统配置相关API export const listSysConfig = async (page = 0, size = 20, type) => { const params = { page, size } if (type) params.type = type const response = await api.get('/sys-config', { params }) return response.data } export const createSysConfig = async (configData) => { const response = await api.post('/sys-config', configData) return response.data } export const updateSysConfig = async (name, configData) => { const response = await api.post(`/sys-config/update/${name}`, configData) return response.data } export const deleteSysConfig = async (name) => { const response = await api.post(`/sys-config/delete/${name}`) return response.data } export const getSysConfigByName = async (name) => { const response = await api.get(`/sys-config/${name}`) return response.data } // 文件上传API export const uploadFile = async (file) => { const formData = new FormData() formData.append('file', file) const response = await api.post('/files/upload', formData, { headers: { 'Content-Type': 'multipart/form-data' } }) return response.data } // 文件下载API export const downloadFile = async (key) => { const response = await api.post( '/files/download', { key }, { responseType: 'blob' } ) return response.data } // ==================== 二维码管理相关API ==================== // 生成二维码 export const generateQrCodes = async (qrType, quantity) => { const response = await api.post('/qr/generate', { qrType, quantity }) return response.data } // 查询二维码列表 export const queryQrCodes = async (params) => { const response = await api.get('/qr/list', { params }) return response.data } // 获取二维码信息 export const getQrCodeInfo = async (id) => { const response = await api.get('/qr/admin/info', { params: { id } }) return response.data } // 获取二维码扫描记录 export const getQrCodeScanRecords = async (qrCode, limit = 10) => { const response = await api.get('/qr/scan', { params: { qrCode, limit } }) return response.data } // 按日期下载二维码 export const downloadQrCodesByDate = async (date) => { const response = await api.get('/qr/download', { params: { date }, responseType: 'blob' }) return response.data } // 验证维护码 export const verifyMaintenanceCode = async (qrCode, maintenanceCode) => { const response = await api.post('/qr/verify', { qrCode, maintenanceCode }) return response.data } // 重置维护码 export const resetMaintenanceCode = async (qrCode, maintenanceCode) => { const response = await api.post('/qr/reset', { qrCode, maintenanceCode }) return response.data } // ==================== 人员信息相关API ==================== // 创建人员信息 export const createPersonInfo = async (data) => { const response = await api.post('/person/create', data) return response.data } // 获取人员信息 export const getPersonInfo = async (qrCode) => { const response = await api.get('/person/get', { params: { qrCode } }) return response.data } // 更新人员信息(前台,需要维护码) export const updatePersonInfo = async (data) => { const response = await api.put('/person/update', data) return response.data } // 管理员更新人员信息 export const adminUpdatePersonInfo = async (data) => { const response = await api.post('/person/admin/update', data) return response.data } // 查询人员信息列表(管理员) export const queryPersonInfo = async (params) => { const response = await api.get('/person/admin/list', { params }) return response.data } // 管理员查询人员详情 export const getPersonAdminDetail = async (qrCodeId) => { const response = await api.get('/person/admin/detail', { params: { qrCodeId } }) return response.data } // ==================== 宠物信息相关API ==================== // 创建宠物信息 export const createPetInfo = async (data) => { const response = await api.post('/pet/create', data) return response.data } // 获取宠物信息 export const getPetInfo = async (qrCode) => { const response = await api.get('/pet/get', { params: { qrCode } }) return response.data } // 更新宠物信息(前台,需要维护码) export const updatePetInfo = async (data) => { const response = await api.put('/pet/update', data) return response.data } // 管理员更新宠物信息 export const adminUpdatePetInfo = async (data) => { const response = await api.post('/pet/admin/update', data) return response.data } // 查询宠物信息列表(管理员) export const queryPetInfo = async (params) => { const response = await api.get('/pet/admin/list', { params }) return response.data } // 管理员查询宠物详情 export const getPetAdminDetail = async (qrCodeId) => { const response = await api.get('/pet/admin/detail', { params: { qrCodeId } }) return response.data } // ==================== 物品信息相关API ==================== // 创建物品信息 export const createGoodsInfo = async (data) => { const response = await api.post('/goods/create', data) return response.data } // 获取物品信息 export const getGoodsInfo = async (qrCode) => { const response = await api.get('/goods/get', { params: { qrCode } }) return response.data } // 更新物品信息(前台,需要维护码) export const updateGoodsInfo = async (data) => { const response = await api.put('/goods/update', data) return response.data } // 管理员更新物品信息 export const adminUpdateGoodsInfo = async (data) => { const response = await api.post('/goods/admin/update', data) return response.data } // 查询物品信息列表(管理员) export const queryGoodsInfo = async (params) => { const response = await api.get('/goods/admin/list', { params }) return response.data } // 管理员查询物品详情 export const getGoodsAdminDetail = async (qrCodeId) => { const response = await api.get('/goods/admin/detail', { params: { qrCodeId } }) return response.data } // ==================== 扫描记录相关API ==================== // 创建扫描记录 export const createScanRecord = async (data) => { const response = await api.post('/scan/create', data) return response.data } // 获取最近扫描记录 export const getRecentScanRecords = async (qrCode, limit = 10) => { const response = await api.get('/scan/recent', { params: { qrCode, limit } }) return response.data } // 查询扫描记录 export const queryScanRecords = async (params) => { const response = await api.get('/scan/list', { params }) return response.data } // ==================== 链接信息相关API ==================== // 创建链接信息 export const createLinkInfo = async (data) => { const response = await api.post('/link/create', data) return response.data } // 获取链接信息 export const getLinkInfo = async (qrCode) => { const response = await api.get('/link/get', { params: { qrCode } }) return response.data } // 更新链接信息(前台,需要维护码) export const updateLinkInfo = async (data) => { const response = await api.put('/link/update', data) return response.data } // 管理员更新链接信息 export const adminUpdateLinkInfo = async (data) => { const response = await api.post('/link/admin/update', data) return response.data } // 查询链接信息列表(管理员) export const queryLinkInfo = async (params) => { const response = await api.get('/link/admin/list', { params }) return response.data } // 管理员查询链接详情 export const getLinkAdminDetail = async (qrCodeId) => { const response = await api.get('/link/admin/detail', { params: { qrCodeId } }) return response.data }