/** * 统一请求封装(基于 Nuxt 内置 ofetch) * 响应格式约定:{ code, data, message },成功码 '0000' */ interface ApiResponse { code: string; data: T; message: string; } export function useRequest() { const config = useRuntimeConfig(); const baseURL = config.public.apiBaseUrl as string; async function request(url: string, options?: Parameters[1]): Promise { const res = await $fetch>(url, { baseURL, ...options }); if (res.code !== '0000') { throw new Error(res.message || 'Request failed'); } return res.data; } function get(url: string, params?: Record) { return request(url, { method: 'GET', params }); } function post(url: string, body?: Record) { return request(url, { method: 'POST', body }); } return { request, get, post }; }