import axios, { AxiosError } from 'axios'; import { Message } from '@arco-design/web-react'; import type { ApiResponse, PageData } from './types'; export const API_BASE_URL = import.meta.env.VITE_API_BASE_URL || 'http://localhost:3000'; export const TOKEN_KEY = 'cth_tk_admin_token'; export const api = axios.create({ baseURL: API_BASE_URL }); api.interceptors.request.use((config) => { const token = localStorage.getItem(TOKEN_KEY); if (token) { config.headers.Authorization = `Bearer ${token}`; } return config; }); api.interceptors.response.use( (response) => response, (error: AxiosError>) => { const message = error.response?.data?.message || error.message || '请求失败'; Message.error(message); return Promise.reject(error); }, ); export async function fetchPage(url: string): Promise> { const response = await api.get>>(url); return response.data.data; }