/** * 请求封装 */ // 基础配置 const BASE_URL = 'https://api.example.com' // TODO: 替换为实际接口地址 const TIMEOUT = 10000 /** * 统一请求方法 */ export const request = (options) => { return new Promise((resolve, reject) => { // 获取 token const token = uni.getStorageSync('token') || '' uni.request({ url: BASE_URL + options.url, method: options.method || 'GET', data: options.data || {}, header: { 'Content-Type': 'application/json', 'Authorization': token ? `Bearer ${token}` : '' }, timeout: TIMEOUT, success: (res) => { const { statusCode, data } = res // HTTP 状态码判断 if (statusCode === 200) { // 业务状态码判断 if (data.code === 0 || data.code === 200 || data.success) { resolve(data) } else { // 业务错误 uni.showToast({ title: data.message || data.msg || '请求失败', icon: 'none', duration: 2000 }) reject(data) } } else if (statusCode === 401) { // 未授权,清除缓存并跳转登录页 uni.removeStorageSync('userInfo') uni.removeStorageSync('token') uni.reLaunch({ url: '/pages/login/login' }) reject({ message: '未授权,请重新登录' }) } else { // 其他错误 uni.showToast({ title: '网络请求失败', icon: 'none', duration: 2000 }) reject(res) } }, fail: (err) => { uni.showToast({ title: '网络连接失败', icon: 'none', duration: 2000 }) reject(err) } }) }) } /** * 快捷请求方法 */ export const get = (url, data) => { return request({ url, method: 'GET', data }) } export const post = (url, data) => { return request({ url, method: 'POST', data }) } export const put = (url, data) => { return request({ url, method: 'PUT', data }) } export const del = (url, data) => { return request({ url, method: 'DELETE', data }) } export default request