微信的接口封装 和页面的使用

97 阅读1分钟

在app.js中

   // 静默登录
    var that = this;
    
    var LOGIN_URL = that.API.ROOT_URL + that.API.USER_AUTH;

    wx.login({
      success:function(r){
        if(r.code){
          wx.request({
            url: LOGIN_URL,  
            method: 'POST',
            header: {
              'content-type': 'application/json'
            },
            data: { 
              code: r.code 
            },
            success: function (data) {
              if (data.data.rspCode == 200) {
                var userInfo_ = data.data.data;
                that.globalData.userInfo.authorizationToken = userInfo_.authorizationToken;
                that.globalData.userInfo.nickName = userInfo_.nickName;
                that.globalData.userInfo.gender = userInfo_.gender;
                that.globalData.userInfo.ownerMember = userInfo_.ownerMember; // 1会员 0否
     that.globalData.userInfo.newComer = userInfo_.newComer; // 1新人 0否
                that.globalData.userInfo.headUrl = userInfo_.headUrl;
                that.globalData.userInfo.unReadSysCount = userInfo_.unReadSysCount;
                that.globalData.userInfo.unReadActionCount = userInfo_.unReadActionCount;
      
              } else {
                console.log('解密失败')
              }
      
            },
            fail: function () {
              console.log('系统错误')
            }
          })
        }
      }
    });

globalDant

  globalData: {
    userInfo: {},
    /**
     * 
     * 临时文件
     */
    tmpFile: null,
    tmpAddress:{},
  },

封装层

_http: function({ method: method, url: url, data: data, loading: loading, callback: callback,failCb: failCb, baseUrl:baseUrl }) {
    var that = this;

    if(loading) {
      wx.showLoading({
        title: '加载中',
        mask: true,
      })
    }
    wx.request({
      header: {
        Authorization:  that.globalData.userInfo.authorizationToken || '',
        Device: "wxmini",
      },
      url: baseUrl?`${baseUrl}${url}`:`${this.API.ROOT_URL}${url}`,
      method: method,
      data: data,
      success: (res) => {
        const data = res.data;
        if (data) {
          callback(data)
        }
      },
      fail: (e) => {
        
        console.log(e)
        
        if (failCb) { 
          failCb(e);
        } else {
          wx.showToast({
            title: '操作失败!请稍后重试',
            icon: 'none',
            mask: true
          })
        }
      },
      complete: () => {
        if(loading) wx.hideLoading()
      }
    })
  },

API层

API:{
    //服务器地址

    ROOT_URL:'https://wap.jewel.vip/shijian/',

    // 安全签名
    CHECK_URL: 'https://wap.jewel.vip/sjservice/',
    
    /**
     * 签名
     */
    RESOURCE_VERIFY: 'storeResource/verify',

    //订单
    ORDER_LIST: 'order/list',
}

在页面应用的时候

getOrderList() {
    let params = {
      status: this.data.status
    }
    this.setData({ loadmore: true })
    app._http({
      url: app.API.ORDER_LIST,
      method:"POST",
      loading: false,
      data:{
        nowPage: this.data.nowPage,
        pageSize: this.data.pageSize,
        data: this.data.status?params:{}
      },
      callback: (res) => {
          if(res.rspCode == 200){
            let list = res.data;
            list.map(v => {
              v.buyAllCount = v.item.reduce((pre, cur) => {
                return pre + cur.buyCount;
              },0)
            })
            this.setData({
              orderList: this.data.orderList.concat(list)
            });

            let timer = setTimeout(() => {
              this.setData({
                loadmore: false,
              });
              // 小于pageSize时 无更多数据
              if(list.length < this.data.pageSize) {
                this.setData({
                  noData: true
                })
              }
              clearTimeout(timer);
            }, 600);
          }
      },
    })
  },