history.js 4.4 KB
// pages/me/history.js
import util from '../../utils/util';
import App from '../../utils/api';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    sellers:[],
    hasMore:true,
    hasFirstShow:true,
  },
  sellers:[],
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },
  formatSellers(data){
    let sellers=[];
    let hasChange=false
    this.sellers.forEach(seller=>{
      if(seller.id==data.sid){
        hasChange=true
        seller.hasFollow=data.hasFollow
      }
      if(seller.hasFollow){
        sellers.push(seller)
      }
    })
    if(!hasChange){
      sellers=[]
    }
    this.setData({
      sellers:sellers
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  hasOnShow:true,
  onShow: function () {
    if(this.data.sellers.length==0){
      wx.showLoading({
        title: '加载中',
      })
      this.setData({
        hasFirstShow:true,
      })
    }
    if(this.hasMore || this.data.sellers.length==0){
      this.sellers=[]
      this.offset=1
      // this.setData({
      //   sellers:[]
      // })
      this.hasOnShow=true;
      this.selectComponent('#getpos').getPos();
    }
  },

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

  },

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

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function (e) {
    console.log(e)
    if(this.hasMore){
      this.GetCollectionSellerList();
    }
  },
  offset:1,
  size:10,
  hasMore:true,
  GetCollectionSellerList(){
    App.Customer.GetCollectionSellerList({
      openid:getApp().openid,
      lat:this.location.latitude,
      lng:this.location.longitude,
      offset:this.offset,
      size:this.size,
    }).then(res=>{
      let sellers=res.data;
      let sellersLength=sellers.length;
      this.hasMore=sellersLength>=this.size
      if(this.hasMore){
        this.offset+=1
      }
      sellers.forEach((seller,si) => {
        // if(seller.distance || seller.distance===0){
        //   seller.distance = parseInt(seller.distance);
        //   if (seller.distance > 1000) {
        //     seller.distance = (seller.distance / 1000).toFixed(2) + 'km'
        //   } else {
        //     seller.distance += 'm';
        //   }
        // }
        if(seller.seller_tel){
          seller.seller_tel=seller.seller_tel.split(',');
        }else{
          seller.seller_tel=[]
        }
        seller.hasFollow=true
      })
      if(!this.hasOnShow){
        sellers=[...this.data.sellers,...sellers]
      }
      this.hasOnShow=false;
      this.setData({
        sellers:sellers,
        hasMore:this.hasMore,
        hasFirstShow:false,
      })
      this.sellers=sellers
      wx.hideLoading()
      if(res.data.length==0 && this.offset==1){
        this.GetRecommendSellerLists()
      }
    })
  },
  gotoDetail(e){
    wx.navigateTo({
      url:'/pages/reserve/detail?id='+util.attr(e,'sid')
    })
  },
  onpos(e){
    console.log(e);
    this.location=e.detail
    this.GetCollectionSellerList();
  },

  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
      }
    }
  },
  goHome(){
    wx.switchTab({
      url: '/pages/reserve/index'
    })
  },
  clean(){
    wx.showModal({
      title: '              '+'确定清空浏览记录?',
      cancelColor:'#999999',
      confirmColor:'',
      success (res) {
        if (res.confirm) {
          console.log('用户点击确定')
        } else if (res.cancel) {
          console.log('用户点击取消')
        }
      }
    })
  },
})