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, params?: { page?: number; pageSize?: number }, ): Promise> { const response = await api.get>>(url, { params }); return response.data.data; }