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/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 uploadImage = async (file) => { const formData = new FormData() formData.append('file', file) const response = await api.post('/files/upload/image', 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 createIncome = async (incomeData) => { const response = await api.post('/income', incomeData) return response.data } // 获取收入记录列表 export const listIncome = async (page = 0, size = 20, agentName, incomeType, startDate, endDate) => { const params = { page, size } if (agentName) params.agentName = agentName if (incomeType) params.incomeType = incomeType if (startDate) params.startDate = startDate if (endDate) params.endDate = endDate const response = await api.get('/income', { params }) return response.data } // 获取单个收入记录 export const getIncome = async (id) => { const response = await api.get(`/income/${id}`) return response.data } // 更新收入记录 export const updateIncome = async (id, incomeData) => { const response = await api.put(`/income/${id}`, incomeData) return response.data } // 软删除收入记录 export const deleteIncome = async (id) => { const response = await api.delete(`/income/${id}`) return response.data } // 永久删除收入记录 export const hardDeleteIncome = async (id) => { const response = await api.delete(`/income/${id}/hard`) return response.data } // 获取收入统计数据 export const getIncomeStatistics = async (startDate, endDate) => { const params = {} if (startDate) params.startDate = startDate if (endDate) params.endDate = endDate const response = await api.get('/income/statistics/summary', { params }) return response.data } // ==================== 财务记录相关API ==================== // 创建财务记录 export const createFinance = async (financeData) => { const response = await api.post('/finance', financeData) return response.data } // 获取财务记录列表 export const listFinance = async (page = 0, size = 20, status, paymentName, startDate, endDate) => { const params = { page, size } if (status) params.status = status if (paymentName) params.paymentName = paymentName if (startDate) params.startDate = startDate if (endDate) params.endDate = endDate const response = await api.get('/finance', { params }) return response.data } // 获取单个财务记录 export const getFinance = async (id) => { const response = await api.get(`/finance/${id}`) return response.data } // 更新财务记录 export const updateFinance = async (id, financeData) => { const response = await api.put(`/finance/${id}`, financeData) return response.data } // 更新财务状态 export const updateFinanceStatus = async (id, statusData) => { const response = await api.patch(`/finance/${id}/status`, statusData) return response.data } // 软删除财务记录 export const deleteFinance = async (id) => { const response = await api.delete(`/finance/${id}`) return response.data } // 永久删除财务记录 export const hardDeleteFinance = async (id) => { const response = await api.delete(`/finance/${id}/hard`) return response.data } // 获取财务统计数据 export const getFinanceStatistics = async (startDate, endDate) => { const params = {} if (startDate) params.startDate = startDate if (endDate) params.endDate = endDate const response = await api.get('/finance/statistics/summary', { params }) return response.data } // ==================== 团队相关API ==================== // 创建团队 export const createTeam = async (teamData) => { const response = await api.post('/teams', teamData) return response.data } // 获取团队列表 export const listTeams = async (page = 0, size = 20, name) => { const params = { page, size } if (name) params.name = name const response = await api.get('/teams', { params }) return response.data } // 获取单个团队 export const getTeam = async (id) => { const response = await api.get(`/teams/${id}`) return response.data } // 更新团队 export const updateTeam = async (id, teamData) => { const response = await api.put(`/teams/${id}`, teamData) return response.data } // 更新团队收入 export const updateTeamRevenue = async (id, revenueData) => { const response = await api.patch(`/teams/${id}/revenue`, revenueData) return response.data } // 删除团队 export const deleteTeam = async (id) => { const response = await api.delete(`/teams/${id}`) return response.data } // 重置今日收入 export const resetAllTodayRevenue = async () => { const response = await api.post('/teams/reset-today-revenue') return response.data } // 获取团队统计数据 export const getTeamStatistics = async () => { const response = await api.get('/teams/statistics/summary') return response.data } // ==================== 推广链接相关API ==================== // 创建推广链接 export const createLink = async (linkData) => { const response = await api.post('/links', linkData) return response.data } // 获取推广链接列表 export const listLinks = async (page = 0, size = 20, name, type) => { const params = { page, size } if (name) params.name = name if (type) params.type = type const response = await api.get('/links', { params }) return response.data } // 获取单个推广链接 export const getLink = async (id) => { const response = await api.get(`/links/${id}`) return response.data } // 更新推广链接 export const updateLink = async (id, linkData) => { const response = await api.put(`/links/${id}`, linkData) return response.data } // 删除推广链接 export const deleteLink = async (id) => { const response = await api.delete(`/links/${id}`) return response.data } // 按类型获取推广链接 export const getLinksByType = async (type) => { const response = await api.get(`/links/type/${type}`) return response.data } // 获取推广链接统计数据 export const getLinkStatistics = async () => { const response = await api.get('/links/statistics/summary') return response.data }