// 导入项目配置 - 使用相对路径替代@符号 import config from '../../../../config.js' // 使用uni-app内置的网络请求API替代axios const service = { // 基础配置 baseURL: config.baseUrl, timeout: 40000, // request方法封装 request(options = {}) { // 合并默认配置和传入配置 const requestOptions = { url: options.url, method: options.method || 'GET', header: { 'X-Requested-With': 'XMLHttpRequest', 'Content-Type': 'application/json; charset=UTF-8', ...options.header }, data: options.data, timeout: options.timeout || this.timeout } // 处理baseURL if (requestOptions.url && !requestOptions.url.startsWith('http')) { requestOptions.url = this.baseURL + requestOptions.url } // 返回Promise return new Promise((resolve, reject) => { uni.request({ ...requestOptions, success: (res) => { // 模拟axios的响应拦截器 const responseData = res.data || {}; resolve(responseData); }, fail: (error) => { console.error('Request failed:', error); reject(error); } }) }) }, // GET快捷方法 get(url, params = {}, options = {}) { return this.request({ ...options, url, method: 'GET', data: params }) }, // POST快捷方法 post(url, data = {}, options = {}) { return this.request({ ...options, url, method: 'POST', data }) } } export default service