list.js 5.77 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
const defTabType=1
Page({

  /**
   * 页面的初始数据
   */
  data: {
    list: [
      [],[],[],[],[],
      [],[],[],[]
    ],
    total: 0,
    tabType:defTabType,
    hasMore:true,
    rsl:[],//推荐商家
  },
  tabType:0,
  offset:0,
  limit:10,
  hasMore:true,
  shownotice:false,
  /**
   * 生命周期函数--监听页面加载
   */
  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')
    console.log('getApp().meListType',getApp().meListType)
	if(getApp().meListType && getApp().meListType<5){
		this.getautomenu();
	}
    if(!getApp().meListType) getApp().meListType=defTabType
    if(this.data.list[this.tabType].length<1 || getApp().meListType!=this.tabType){
      if(getApp().meListType!=this.tabType) {
        if (getApp().meListType) {
          this.switchType({
            currentTarget: {
              dataset: {
                type: getApp().meListType,
              }
            }
          })
          //getApp().meListType = '';
        } else {
          this.getListData();
        }
      }
    }
  },

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

  },

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

  },
  getLisType(){
    if(this.tabType<5) return {type:this.tabType}
    //2=交易成功(待使用) 3=已使用 5=已退款 6=已过期
    return {status:{5:2,6:3,7:6,8:5}[this.tabType]}
  },
  getOffset(){
    if(this.tabType<5) return this.offset
    let page=parseInt(this.offset/this.limit)+1
    return page
  },
  getListData() {
    let tabType=this.tabType
    let lisFun=App.Customer.GetMyOrder
    if(tabType>4){
      lisFun=App.Foodset.GetUserFoodOrders
    }
    lisFun({
      ...this.getLisType(),//tabType,
      openid: getApp().openid,
      offset:this.getOffset(),
      limit:this.limit,
      size:this.limit,
    }).then(res => {
      let resData=res.data||[]
      let total = resData.length
      let data = this.formatList(resData);
      this.hasMore=resData.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()
      // }
    })
  },
  getautomenu(){
	App.Foodset.GetUserFoodOrders({
		status:2,//tabType,
		openid: getApp().openid,
		offset:1,
		limit:1,
		size:1,
	}).then(res=>{
		if(res.data.length>0){
			this.setData({
				shownotice:true
			})
		}
	})  
  },
  formatList(list) {
    if (list.length<1) return [];
    if(this.tabType>4) return list;
    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.tabType=util.attr(e, 'index')
    getApp().meListType=this.tabType
    this.setData({
      tabType: this.tabType,
    })
    this.getListData();
    console.log('getApp().meListType',getApp().meListType)
  },
  */
  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()
    getApp().meListType=this.tabType
    console.log('getApp().meListType',getApp().meListType)
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  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);
    }
  },
})