| 
						 | 
						- import config from "@/config";
 - 
 - export default function request({
 -   url = '',
 -   method = 'GET',
 -   data = {},
 -   showLoading = false,
 -   header = {},
 -   needToken = false, // 需要token
 -   showToast = true // 默认显示失败的提示
 - 
 - }) {
 -   if (showLoading) uni.showLoading({ title: '加载中' })
 -   if (needToken) {
 -     const token = uni.getStorageSync('token')
 -     if (token) {
 -       header['X-Access-Token'] = token
 -     } else {
 -       if (showLoading) {
 -         uni.hideLoading()
 -       }
 -       uni.showToast({
 -         title: '请先登录',
 -         icon: 'none'
 -       })
 -       uni.reLaunch({ url: '/subPages/login/login' })
 -       return Promise.reject({
 -         code: 401,
 -         message: '请先登录'
 -       })
 -     }
 -   }
 -   return new Promise((resolve, reject) => {
 -     uni.request({
 -       url: config.baseURL + url,
 -       method,
 -       data,
 -       header: {
 -         'Content-Type': 'application/x-www-form-urlencoded',
 -         ...header
 -       },
 -       success: (res) => {
 -         console.log(`Success ${method} ${url}`, res);
 - 
 -         // 优先处理业务逻辑响应
 -         if (res.statusCode === 200 && res.data) {
 -           // 业务成功
 -           if (res.data.code === 200) {
 -             if (showLoading) {
 -               uni.hideLoading()
 -             }
 -             resolve(res.data)
 -             return
 -           }
 - 
 -           // 业务失败但有具体错误信息
 -           const errorMsg = res.data.message || '请求失败'
 - 
 -           if (showToast) {
 -             if (showLoading) {
 -               uni.hideLoading()
 -             }
 -             uni.showToast({
 -               title: errorMsg,
 -               icon: 'none',
 -               duration: 3000
 -             })
 -           }
 -           reject({
 -             code: res.data.code,
 -             message: errorMsg,
 -             data: res.data
 -           })
 -           return
 -         }
 - 
 -         // 处理HTTP状态码错误(无有效响应体的情况)
 -         const error = {
 -           code: res.statusCode,
 -           message: '网络请求错误'
 -         }
 - 
 -         switch (res.statusCode) {
 -           case 401:
 -             uni.reLaunch({ url: '/subPages/login/login' })
 -             error.message = '请先登录'
 -             break;
 -           case 403:
 -             uni.removeStorageSync('token')
 -             uni.reLaunch({ url: '/subPages/login/login' })
 -             error.message = '登录已过期,请重新登录'
 -             break;
 -           case 404:
 -             error.message = '资源不存在'
 -             break;
 -           case 500:
 -             error.message = '服务器错误'
 -             break;
 -         }
 -         if (showToast) {
 -           if (showLoading) {
 -             uni.hideLoading()
 -           }
 -           uni.showToast({
 -             title: error.message,
 -             icon: 'none'
 -           })
 -         }
 -         reject(error)
 -       },
 -       fail: (err) => {
 -         console.log(`Fail ${method} ${url}`, err);
 -         const errorMsg = err.errMsg || '请求失败'
 -         if (showToast) {
 -           if (showLoading) {
 -             uni.hideLoading()
 -           }
 -           uni.showToast({
 -             title: errorMsg,
 -             icon: 'none'
 -           })
 -         }
 - 
 -         reject({
 -           code: -1,
 -           message: errorMsg,
 -           data: err
 -         })
 -       },
 - 
 -     })
 -   })
 - }
 
 
  |