管灌系统农户端微信小程序(嘉峪关应用)
api/request.js
@@ -1,9 +1,7 @@
// 引入状态码statusCode
const statusCode = require('./statusCode')
// 定义请求路径, BASEURL: 普通请求API; CBASEURL: 中台API,不使用中台可不引入CBASEURL
const {
  BASEURL
} = require('./config')
const config = require('./config')
// 定义默认参数
const defaultOptions = {
  data: {},
@@ -31,11 +29,20 @@
    data,
    ignoreToken,
    form,
    isShowLoding
    isShowLoding,
    timeout,
    header,
    useParams
  } = _options
  // 检查url是否为undefined
  if (!url) {
    console.error('请求URL不能为空');
    return Promise.reject(new Error('请求URL不能为空'));
  }
  const app = getApp()
  // 设置请求头
  let header = {}
  if (form) {
    header = {
      'content-type': 'application/x-www-form-urlencoded'
@@ -45,13 +52,22 @@
      '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;
  header.appId = app.globalData.AppID;
  return new Promise((resolve, reject) => {
    console.log("url:" + BASEURL + url);
    // 获取最新的 BASEURL
    let currentBaseUrl = app.globalData.baseUrl || config.BASEURL;
    console.log("url:" + currentBaseUrl + url);
    if (isShowLoding) {
      wx.showLoading({
        title: '通信中...', // 加载动画标题
@@ -62,13 +78,20 @@
    if (url.startsWith('http')) {
      myUrl = url;
    } else {
      myUrl = BASEURL + url;
      myUrl = currentBaseUrl + url;
    }
    // 如果 useParams 为 true,拼接查询参数
    if (useParams && data) {
      const queryString = objToQueryString(data); // 使用上面定义的函数
      myUrl += `?${queryString}`; // 拼接查询字符串
      data = {}; // 请求体数据设为空
    }
    wx.request({
      url: myUrl,
      data,
      header,
      method,
      timeout: timeout,
      success: (res) => {
        let {
          statusCode: code
@@ -80,7 +103,7 @@
        if (code === statusCode.SUCCESS) {
          if (res.data.code !== "0001") {
            // 统一处理请求错误
            showToast(res.data.errorMsg)
            // showToast(res.data.errorMsg)
            reject(res.data)
            return
          }
@@ -101,14 +124,20 @@
        if (isShowLoding) {
          wx.hideLoading(); // 隐藏加载动画
        }
        showToast(err.errMsg)
        // showToast(err.errMsg)
        reject(err)
      }
    })
  })
}
function objToQueryString(obj) {
  return Object.keys(obj)
      .map(key => {
          // 对键和值进行 URL 编码
          return `${encodeURIComponent(key)}=${encodeURIComponent(obj[key])}`;
      })
      .join('&'); // 将所有键值对用 '&' 连接起来
}
// 封装toast函数
function showToast(title, icon = 'none', duration = 2500, mask = false) {
  wx.showToast({