list.js 4.08 KB
// pages/customer/list.js
import util from '../../utils/util';
import App from '../../utils/api';
import RS from '../../utils/reserveStatus'
import PubSub from '../../utils/PubSub'

const {regeneratorRuntime} = global
Page({

  /**
   * 页面的初始数据
   */
  data: {
    list: [[],[],[],[],[]],
    total: 0,
    tabType:1,
    hasMore:true,
    rsl:[],//推荐商家
  },
  tabType:1,
  offset:0,
  limit:10,
  hasMore:true,
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    if(getApp().meListType){
      this.tabType=getApp().meListType
      this.setData({
        tabType:this.tabType
      })
    }
    this.getListData();
  },

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

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    PubSub.emit('custom-tab-bar')
  },

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

  },

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

  },
  getListData() {
    let tabType=this.tabType
    App.Customer.GetMyOrder({
      type: tabType,
      openid: getApp().openid,
      offset:this.offset,
      limit:this.limit,
    }).then(res => {
      let total = res.data.length
      let data = this.formatList(res.data);
      this.hasMore=res.data.length>=this.limit
      if(this.hasMore){
        this.offset+=this.limit
      }
      this.setData({
        [`list[`+tabType+`]`]: this.data.list[tabType].concat(data),
        hasMore:this.hasMore
      })
      // if(res.data.length==0){
      //   this.GetRecommendSellerLists()
      // }
    })
  },
  formatList(list) {
    if (list.length<1) return [];
    let dlist = [];
    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';
      //row=RS.reserve(row)
      dlist.push(row);
    })
    return dlist;
  },
  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,
    })
  },
  gotoSellerDetail(e){
    console.log(e)
    let url='/pages/reserve/detail?id='+e.currentTarget.id
    wx.navigateTo({
      url:url,
    })
  },
  switchType(e){
    this.hasRecommend=true
    this.offset=0
    this.tabType=util.attr(e,'type')
    this.setData({
      tabType:this.tabType,
      list: [[],[],[],[],[]],
      hasMore:false
    })
    this.getListData()
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function (e) {
    console.log(e)
    if(this.hasMore){
      this.getListData();
    }
  },
  hasRecommend:true,
  GetRecommendSellerLists(){
    if(!this.hasRecommend) return
    let param={}
    if(this.location){
      param={
        lat:this.location.latitude,
        lng:this.location.longitude
      }
    }
    App.Customer.GetRecommendSellerLists(param).then(res=>{
      this.setData({
        rsl:res.data
      })
    })
  },
  hasGoto:false,
  bindtransition(e){
    console.log(e)
    if('change'==e.type){
      this.hasGoto=false
    }
    if('animationfinish'==e.type){
      if(this.hasGoto && (e.detail.current+1)==this.data.rsl.length){
        wx.switchTab({
          url: '/pages/reserve/index'
        })
        return;
      }else{
        this.hasGoto=true
      }
    }
  },
  location:null,
  onpos(e){
    console.log('onpos',e);
    this.location=e.detail
    this.getListData();
  },
  sbtrEvent(e){
    console.log(e);
    if(e.detail.act=='oncall'){
      this.selectComponent('#as').show(e.detail.seller);
    }
  },
})