// 网络请求封装 // 根据环境配置 BASE_URL // 开发环境:改成你的本地 IP,如 'http://192.168.1.100:8080' // 生产环境:改成实际的服务器地址 const BASE_URL = 'http://yp1.yingpaipay.com:9053'; // OSS 文件上传基地址(与后端网关地址保持一致) const UPLOAD_URL = BASE_URL; export { BASE_URL, UPLOAD_URL }; const request = (options) => { return new Promise((resolve, reject) => { const token = uni.getStorageSync('token'); // 处理 GET 请求的 params(将 params 对象拼接到 URL) let url = BASE_URL + options.url; if (options.params && Object.keys(options.params).length > 0) { const queryString = Object.entries(options.params) .filter(([, value]) => value !== undefined && value !== null && value !== '') .map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`) .join('&'); if (queryString) { url += '?' + queryString; } } console.log('请求 URL:', url, '方法:', options.method); uni.request({ url: url, method: options.method || 'GET', data: options.data || {}, header: { ...options.header, 'clientid': 'e5cd7e4891bf95d1d19206ce24a7b32e', 'PLATFORM_CODE': 'PINGTAIDUAN', 'Authorization': token ? `Bearer ${token}` : '', 'Content-Type': 'application/json' }, success: (res) => { console.log('响应状态码:', res.statusCode, '响应数据:', res.data); if (res.statusCode === 200) { if (res.data.code === 200 || res.data.code === 0) { resolve(res.data); } else if (res.data.code === 401) { // 登录失效,清除本地 token 并跳转登录页 uni.removeStorageSync('token'); uni.navigateTo({ url: '/pages/login/login' }); reject(res.data); } else { uni.showToast({ title: res.data.msg || '服务器错误', icon: 'none' }); reject(res.data); } } else { uni.showToast({ title: '连接服务器失败: ' + res.statusCode, icon: 'none' }); reject(res); } }, fail: (err) => { console.error('网络请求失败:', err); uni.showToast({ title: '网络请求失败: ' + (err.errMsg || '未知错误'), icon: 'none' }); reject(err); } }); }); }; export default request;