list.js 2.79 KB
// pages/customer/list.js
import util from '../../utils/util';
import App from '../../utils/api';

const {regeneratorRuntime} = global
Page({

  /**
   * 页面的初始数据
   */
  data: {
    list: [],
    total: 0,
    tabType:1,
    hasMore:true,
  },
  tabType:1,
  offset:1,
  limit:10,
  hasMore:true,
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.getListData();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },
  getListData() {
    App.Reserve.GetListFromScheAndRes({
      flag: 1,
      type: this.tabType,
      openid: getApp().openid,
      offset:this.offset,
      limit:this.limit,
    }).then(res => {
      let total = res.data.success.length
      let data = this.formatList(res.data);

      this.hasMore=data.success.length>=this.limit
      if(this.hasMore){
        this.offset+=this.limit
      }
      this.setData({
        list: data.success,
        hasMore:this.hasMore
      })
    })
  },
  _formatList(list) {
    if (!list) return {};
    let dlist = {};
    if (list.length > 0) {
      let openid = getApp().openid;
      list.forEach(row => {
        row.rdateStr = util.unixtoTime(row.ddate, 'MM月DD日 WW HH:II');
        row.navigator = row.openid == openid ? 'detail_owner' : 'detail_customer';
        let d = util.unixtoTime(row.rdate, 'MM月DD日 DAY 星期WW');
        typeof dlist[d] == 'undefined' ? dlist[d] = [] : '';
        dlist[d].push(row);
      })
    }
    return dlist;
  },
  formatList(res) {
    res.success = this._formatList(res.success);
    res.padding = this._formatList(res.padding);
    return res;
  },
  switchTab(e) {
    this.setData({
      tabFlag: util.attr(e, 'index')
    })
    this.getListData();
  },
  userinfo(e) {
    let id = e.target.dataset.id;
    let type = e.target.dataset.type;
    if (type == 'padding') {
      App.Reserve.SetRelaSuccess({
        rid: id,
        openid: getApp().openid
      }).then(res => {
        this.getListData();
      })
    } else {
      wx.navigateTo({
        url: 'invite?id=' + id,
      });
    }
  },
  gotoDetail(e){
    let url='/pages/customer/'+e.detail.detail.navigator+'?id='+e.detail.detail.id
    wx.navigateTo({
      url:url,
    })
  },
  switchType(e){
    this.tabType=util.attr(e,'type')
    this.setData({
      tabType:this.tabType,
    })
    this.getListData()
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function (e) {
    console.log(e)
    if(this.hasMore){
      this.getListData();
    }
  },
})