管灌系统农户端微信小程序(嘉峪关应用)
zuoxiao
2025-03-06 91751b1b9b16c0044e16ad80c237b7275a409046
api/request.js
@@ -1,7 +1,7 @@
// 引入状态码statusCode
const statusCode = require('./statusCode')
// 定义请求路径, BASEURL: 普通请求API; CBASEURL: 中台API,不使用中台可不引入CBASEURL
const { BASEURL } = require('./config')
const config = require('./config')
// 定义默认参数
const defaultOptions = {
  data: {},
@@ -17,12 +17,24 @@
 * ignoreToken: <Boolean> 是否忽略token验证
 * form: <Boolean> 是否使用formData请求
 */
function request (options) {
  let _options = Object.assign(defaultOptions, options)
  let { method, url, data, ignoreToken, form } = _options
function request(options) {
  // let _options = Object.assign(defaultOptions, options)
  let _options = {
    ...defaultOptions,
    ...options
  }
  let {
    method,
    url,
    data,
    ignoreToken,
    form,
    isShowLoding,
    timeout,
    header
  } = _options
  const app = getApp()
  // 设置请求头
  let header = {}
  if (form) {
    header = {
      'content-type': 'application/x-www-form-urlencoded'
@@ -32,23 +44,51 @@
      'content-type': 'application/json' //自定义请求头信息
    }
  }
  if (!timeout) {
    timeout = 60000
  }
  if (!ignoreToken) {
    // 从全局变量中获取token
    let token = app.globalData.token
    header.Authorization = `Bearer ${token}`
  }
  header.tag = app.globalData.tag;
  return new Promise((resolve, reject) => {
    // 获取最新的 BASEURL
    let currentBaseUrl = app.globalData.baseUrl || config.BASEURL;
    console.log("url:" + currentBaseUrl + url);
    if (isShowLoding) {
      wx.showLoading({
        title: '通信中...', // 加载动画标题
        mask: true, // 是否显示透明蒙层,防止触摸穿透
      });
    }
    let myUrl;
    if (url.startsWith('http')) {
      myUrl = url;
    } else {
      myUrl = currentBaseUrl + url;
    }
    wx.request({
      url: BASEURL + url,
      url: myUrl,
      data,
      header,
      method,
      timeout: timeout,
      success: (res) => {
        let { statusCode: code } = res
        let {
          statusCode: code
        } = res
        console.log("success  statusCode:" + code);
        if (isShowLoding) {
          wx.hideLoading(); // 隐藏加载动画
        }
        if (code === statusCode.SUCCESS) {
          if (res.data.code !== 0) {
          if (res.data.code !== "0001") {
            // 统一处理请求错误
            showToast(res.data.errorMsg)
            // showToast(res.data.errorMsg)
            reject(res.data)
            return
          }
@@ -58,13 +98,18 @@
          showToast(`登录过期, 请重新刷新页面`)
          reject(res.data)
        } else {
          showToast(`请求错误${url}, CODE: ${code}`)
          // showToast(`请求错误${url}, CODE: ${code}`)
          console.log("success  请求错误:" + code);
          reject(res.data)
        }
        console.log("success  statusCode:1111111111");
      },
      fail: (err) => {
        console.log('%c err', 'color: red;font-weight: bold', err)
        showToast(err.errMsg)
        console.log("Error  " + err);
        if (isShowLoding) {
          wx.hideLoading(); // 隐藏加载动画
        }
        // showToast(err.errMsg)
        reject(err)
      }
    })
@@ -72,7 +117,7 @@
}
// 封装toast函数
function showToast (title, icon='none', duration=2500, mask=false) {
function showToast(title, icon = 'none', duration = 2500, mask = false) {
  wx.showToast({
    title: title || '',
    icon,
@@ -81,14 +126,14 @@
  });
}
function get (options) {
function get(options) {
  return request({
    method: 'GET',
    ...options
  })
}
function post (options) {
function post(options) {
  // url, data = {}, ignoreToken, form
  return request({
    method: 'POST',
@@ -97,5 +142,7 @@
}
module.exports = {
  request, get, post
}
  request,
  get,
  post
}