indexList.js 2.5 KB
// pages/reserve/indexList.js
import util from '../../utils/util';
import App from '../../utils/api';
const {regeneratorRuntime} = global
Page({

  /**
   * 页面的初始数据
   */
  data: {
    multiArray: ['全部菜系'],
    multiIndex: [0],
    tags:[
      {id:1,name:'环境好'},
      {id:2,name:'菜品有特色'},
      {id:3,name:'超大包间'},
    ],
    markers:[],
    hasMore:true,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //lat=34.21719&lng=108.89155&offset=0&rows=50&distance=100000&map={"errMsg":"getMapRegion:ok","southwest":{"longitude":108.87545674591064,"latitude":34.204520114013846},"northeast":{"longitude":108.90764325408935,"latitude":34.229857981005225},"scale":15}&cuisine=6&tags=1,2,3
    this.options=options;
    this.getList();
  },

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

  },

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

  },

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

  },

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

  },

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

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },
  getList(){
    let mapParam=this.options
    this.offset=1 //page
    this.size=20 //page size
    //计算视窗中心
    let map=JSON.parse(mapParam.map);
    let lat=map.northeast.latitude-(map.northeast.latitude-map.southwest.latitude)/2;
    let lng=map.northeast.longitude-(map.northeast.longitude-map.southwest.longitude)/2;
    this.param={
      lat:lat,
      lng:lng,
      lat_extend:mapParam.lat,
      lng_extend:mapParam.lng,
      offset:this.offset,
      size:this.size,
      distance:50,
    };
    if(mapParam.tags){
      this.param.tags=mapParam.tags
    }
    if(mapParam.cuisine){
      this.param.cuisine=mapParam.cuisine
    }
    App.Customer.SellerLists(this.param).then(res=>{
      this.setData({
        hasMore:res.data.length==this.size,
        markers:res.data,
      })
      this.triggerEvent('event',{type:'getListEnd',total:res.data.length})
    })
  },
  getListMore(){
    this.param.offset+=1;
    let markers=this.data.markers;
    App.Customer.SellerLists(this.param).then(res=>{
      this.setData({
        hasMore:res.data.length==this.size,
        markers:markers.concat(res.data),
      })
    })
  },
})