b_reserve.js 2.68 KB
// pack-book/pages/book/b_reserve.js
// pages/book/setting/index.js
import util from '../../../utils/util';
import App from '../../../utils/api';
const {regeneratorRuntime} = global
import PubSub from '../../../utils/PubSub'
import RS from '../../../utils/reserveStatus'
Page({
  offset: 1,
  limit: 10,
  hasMore: true,
  list:[],
  /**
   * 页面的初始数据
   */
  data: {
    list:[],
    hasMore:true,
    activeType:1,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  enter_params: {},
  onLoad: function (options) {
    this.enter_params = util.cache('enter_params');
    this.seller_id=options.seller_id||this.enter_params.seller_id;
    this.getMembers();
    PubSub.on('fulshReseveList',()=>{
      this.switchTab({
        currentTarget:{
          dataset:{
            type:this.data.activeType
          }
        }
      });
    })
  },
  onUnload(){
    PubSub.off('fulshReseveList')
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

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

  },
  onUnload(){

  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    if(this.hasMore){
      this.getMembers(true);
    }
  },
  getMembers(hasReachBottom=false){
    let params={
      sid:this.seller_id,
      page:this.offset,
      size:this.limit,
    }
    if(this.data.activeType==1){
      params.flag='0'
    }else{
      params.flag='1'
    }
    App.Reserve.GetOnlineReserveList(params).then((res)=>{
      let list = res.data
      if(list.length>0){
        list.forEach((r,i)=>{
          list[i]=RS.reserve(r)
        })
      }
      this.list=this.list.concat(list)
      let obj={list:this.list};
      if(list.length<this.limit && hasReachBottom){
        this.hasMore=false;
        obj.hasMore=false;
      }else{
        this.offset++;
      }
      this.setData(obj)
    }).catch(e=>{})
  },
  gotoDetail(e){
    let url='./b_detail?id='+util.attr(e,'id')
    return wx.navigateTo({
      url:url
    })
  },
  switchTab(e){
    let activeType=util.attr(e,'type')
    this.setData({
      activeType:activeType,
      hasMore:true,
    })
    this.list=[]
    this.offset= 1
    this.limit= 10
    this.hasMore=true
    this.pageScrollToTop()
    setTimeout(()=>{
      this.getMembers()
    },300)
  },
  pageScrollToTop: function () {
    wx.createSelectorQuery().select('.pages').boundingClientRect(function (rect) {
      // 使页面滚动到底部
      if(rect && rect.top){
        wx.pageScrollTo({
          scrollTop: rect.top
        })
      }
    }).exec()
  },
})