// API模块主入口 import request from './request.js' import * as services from './services.js' // 导出所有服务 export * from './services.js' // 导出请求实例 export { request } // 默认导出 export default { // 请求实例 request, // 所有服务 ...services, // 工具函数 utils: services.apiUtils, // 初始化配置 init(config = {}) { // 可以在这里进行一些初始化配置 console.log('API模块初始化完成', config) }, // 设置认证token setAuthToken(token) { uni.setStorageSync('token', token) }, // 获取认证token getAuthToken() { return uni.getStorageSync('token') }, // 清除认证信息 clearAuth() { uni.removeStorageSync('token') uni.removeStorageSync('refreshToken') }, // 检查是否已登录 isLoggedIn() { return !!this.getAuthToken() }, // 统一错误处理 handleError(error, defaultMessage = '操作失败') { const errorMessage = error.message || defaultMessage const errorCode = error.code || 'UNKNOWN_ERROR' // 可以根据错误码进行不同的处理 switch (errorCode) { case 'UNAUTHORIZED': this.clearAuth() uni.navigateTo({ url: '/pages/auth/login' }) break case 'NETWORK_ERROR': uni.showToast({ title: '网络连接失败', icon: 'none' }) break default: uni.showToast({ title: errorMessage, icon: 'none' }) } return { error: true, code: errorCode, message: errorMessage } }, // 请求包装器,自动处理错误 async withErrorHandling(promise, successMessage = '操作成功') { try { const result = await promise if (successMessage) { uni.showToast({ title: successMessage, icon: 'success' }) } return { success: true, data: result } } catch (error) { return this.handleError(error) } } } // 自动初始化 const api = { request, ...services } // 全局错误处理 const originalRequest = uni.request uni.request = function(config) { return originalRequest.call(this, config).catch(error => { console.error('请求失败:', error) throw error }) } export default api