request.js 3.04 KB
// import config from '@/config.js'
import _ from 'lodash'

const excludeUrls = ['getMemberCountInfo', 'getInfoForPc']

// 获取Token
function getToken() {
  try {
    const token = uni.getStorageSync('token')
    if (token) {
      return token
    } else {
      return ''
    }
  } catch (e) {
    console.log(e)
  }
}

// 获取请求头
function getHeaders() {
  const token = getToken()
  const header = {
    'Authorization': token,
    'Content-Type': 'application/json', // 根据自己的数据类型
    // "Content-Type":"application/x-www-form-urlencoded",
    'Ztx-Per-Id': uni.getStorageSync('perId') || '-1'
  }
  return header
}

const request = function(req) {
  req.method = req.method.toUpperCase()
  if (!['GET', 'POST', 'PUT', 'DELETE'].includes(req.method)) {
    uni.showToast({
      title: `暂不支持的请求方式: ${req.method}`,
      icon: 'none'
    })
    return
  }

  // if (req.method === 'GET') {
  // if (!req.params) {
  // req.params = {}
  // }
  // req.params.pageNum = req.params.pageNum || 1
  // req.params.pageSize = req.params.pageSize || 50
  // }

  // if (req.method == 'POST' && !req.hideLoding) {
  // 	uni.showLoading({
  // 		title: '提交中...'
  // 	})
  // }

  return new Promise((resolve, reject) => {
    uni.request({
      url: req.url,
      method: req.method,
      data: req.params,
      header: getHeaders()
    }).then(res => {
      switch (res.statusCode) {
        case 200:
          const data = res.data || {}
          if (!data || data.code === 0 || data.code === 200 || data.pageData?.code === 200) {
            resolve(data)
          } else if (_.some(excludeUrls, (url) => req.url.indexOf(url) > -1)) {
            resolve(data)
          } else {
            if (data.msg) {
              uni.showToast({
                title: data.msg,
                icon: 'none',
                duration: 2000
              })
            }

            // 登录超时
            // if (data.code === 60002 || data.code === 60001) {
            //   uni.redirectTo({
            //     url: '/pages/index/login'
            //   })
            // } else if (data.code === 401) {
            // h5LoginAuto()
            //   .then(() => {
            //     uni.hideLoading()
            //     uni.redirectTo({
            //       url: getCurrentPages()[getCurrentPages()
            //         .length - 1].$page.fullPath
            //     })
            //   })
            //   .catch(() => {
            //     debugger
            //     uni.showToast({
            //       title: '服务异常,请稍后重试',
            //       icon: 'none'
            //     })
            //   })
            // }

            reject(res)
          }
          break
        default:
          reject(res)
      }
    }).catch(res => {
      reject(res)
    }).finally(() => {
      // if (req.method == 'POST' && !req.hideLoding) {
      // 	uni.hideLoading()
      // }
    })
  })
}

export default request