import axios from 'axios' import { ElMessage } from 'element-plus' import router from '@/router' const api = axios.create({ baseURL: '/api', timeout: 30000, }) api.interceptors.request.use((config) => { const token = localStorage.getItem('token') if (token) { config.headers.Authorization = `Bearer ${token}` } return config }) api.interceptors.response.use( (response) => response.data, (error) => { if (error.response?.status === 401) { localStorage.removeItem('token') if (router.currentRoute.value.path !== '/login') { router.push('/login') } return Promise.reject(error) } const msg = error.response?.data?.message || error.message || '请求失败' ElMessage.error(msg) return Promise.reject(error) } ) export default api export const authApi = { login: (data: { username: string; password: string }) => api.post('/auth/login', data), getMe: () => api.get('/auth/me'), } export const orgApi = { getDepartments: () => api.get('/org/departments'), createDepartment: (data: any) => api.post('/org/departments', data), updateDepartment: (id: string, data: any) => api.put(`/org/departments/${id}`, data), deleteDepartment: (id: string) => api.delete(`/org/departments/${id}`), getUsers: () => api.get('/org/users'), getUser: (id: string) => api.get(`/org/users/${id}`), createUser: (data: any) => api.post('/org/users', data), updateUser: (id: string, data: any) => api.put(`/org/users/${id}`, data), getSubordinates: () => api.get('/org/subordinates'), } export const rbacApi = { getRoles: () => api.get('/rbac/roles'), getRole: (id: string) => api.get(`/rbac/roles/${id}`), createRole: (data: any) => api.post('/rbac/roles', data), updateRole: (id: string, data: any) => api.put(`/rbac/roles/${id}`, data), deleteRole: (id: string) => api.delete(`/rbac/roles/${id}`), getPermissions: () => api.get('/rbac/permissions'), } export const monitorApi = { getEmployees: () => api.get('/monitor/employees'), getDashboard: (id: string) => api.get(`/monitor/employee/${id}/dashboard`), getAnalysis: (id: string) => api.get(`/monitor/employee/${id}/analysis`), } export const taskApi = { getTasks: () => api.get('/tasks'), createTask: (data: any) => api.post('/tasks', data), getTask: (id: string) => api.get(`/tasks/${id}`), updateTask: (id: string, data: any) => api.put(`/tasks/${id}`, data), deleteTask: (id: string) => api.delete(`/tasks/${id}`), pushTask: (id: string) => api.post(`/tasks/${id}/push`), } export const flowApi = { getFlows: () => api.get('/flow/definitions'), getFlow: (id: string) => api.get(`/flow/definitions/${id}`), createFlow: (data: any) => api.post('/flow/definitions', data), updateFlow: (id: string, data: any) => api.put(`/flow/definitions/${id}`, data), deleteFlow: (id: string) => api.delete(`/flow/definitions/${id}`), publishFlow: (id: string) => api.post(`/flow/definitions/${id}/publish`), unpublishFlow: (id: string) => api.post(`/flow/definitions/${id}/unpublish`), executeFlow: (id: string, data: any) => api.post(`/flow/definitions/${id}/execute`, data), testFlow: (id: string) => api.post(`/flow/definitions/${id}/test`), getMarket: () => api.get('/flow/market'), getTemplates: () => api.get('/flow/templates'), useTemplate: (id: string) => api.post(`/flow/templates/${id}/use`), } export const wecomApi = { sendMessage: (data: any) => api.post('/wecom/send', data), getConfig: () => api.get('/wecom/config'), updateConfig: (data: any) => api.put('/wecom/config', data), } export const agentApi = { chat: (type: string, data: any) => api.post(`/agent/chat/${type}`, data), getList: () => api.get('/agent/list'), getHistory: (sessionId: string) => api.get(`/agent/history/${sessionId}`), getAgent: (id: string) => api.get(`/agent/${id}`), createAgent: (data: any) => api.post('/agent/', data), updateAgent: (id: string, data: any) => api.put(`/agent/${id}`, data), deleteAgent: (id: string) => api.delete(`/agent/${id}`), } export const mcpApi = { getServers: () => api.get('/mcp/servers'), createServer: (data: any) => api.post('/mcp/servers', data), registerServer: (data: any) => api.post('/mcp/servers', data), updateServer: (id: string, data: any) => api.put(`/mcp/servers/${id}`, data), testServer: (id: string) => api.post(`/mcp/servers/${id}/test`), testConnection: (id: string) => api.post(`/mcp/servers/${id}/test`), deleteServer: (id: string) => api.delete(`/mcp/servers/${id}`), unregisterServer: (id: string) => api.delete(`/mcp/servers/${id}`), } export const auditApi = { getLogs: (params?: any) => api.get('/audit/logs', { params }), getActionTypes: () => api.get('/audit/actions'), getStats: () => api.get('/audit/stats'), exportLogs: (params?: any) => api.get('/audit/export', { params, responseType: 'blob' }), } export const documentApi = { upload: (formData: FormData) => api.post('/document/upload', formData, { headers: { 'Content-Type': 'multipart/form-data' } }), parse: (fileId: string) => api.post(`/document/parse/${fileId}`), deleteFile: (fileId: string) => api.delete(`/document/${fileId}`), format: (data: any) => api.post('/document/format', data), } export const notificationApi = { send: (data: any) => api.post('/notification/send', data), getTemplates: () => api.get('/notification/templates'), createTemplate: (data: any) => api.post('/notification/templates', data), deleteTemplate: (id: string) => api.delete(`/notification/templates/${id}`), getWsStats: () => api.get('/notification/ws/stats'), } export const systemApi = { health: () => api.get('/system/health'), getStats: () => api.get('/system/stats'), getMetrics: () => api.get('/system/metrics'), } export const ragApi = { upload: (file: File) => { const formData = new FormData() formData.append('file', file) return api.post('/rag/upload', formData, { headers: { 'Content-Type': 'multipart/form-data' }, }) }, indexText: (data: { text: string; source?: string }) => api.post('/rag/index-text', data), search: (q: string, limit?: number) => api.get('/rag/search', { params: { q, limit } }), retrieve: (q: string, limit?: number) => api.get('/rag/retrieve', { params: { q, limit } }), }