list.js 2.94 KB
// components/reserve/caixi.js
import util from '../../../utils/util';
import App from '../../../utils/api';
const {regeneratorRuntime} = global
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    multiArray:{
      type:Array,
      value:[]
    },
    multiIndex: {
      type:Array,
      value:[]
    },
    tags: {
      type:Array,
      value:[]
    },
  },

  /**
   * 组件的初始数据
   */
  data: {
    hidden:true,
    statusBarHeight: 20,
    titleBarHeight:44,
    markers:[],
    hasMore:true,
  },
  attached(){
    //导航栏自适应
    let systemInfo = wx.getSystemInfoSync();
    let reg = /ios/i;
    let pt = 20;//导航状态栏上内边距
    let h = 44;//导航状态栏高度
    if(reg.test(systemInfo.system)){
      pt = systemInfo.statusBarHeight;
    }else{
      pt = systemInfo.statusBarHeight;
      h = 48;
    }
    this.setData({
      statusBarHeight: pt,
      titleBarHeight:h,
    })
  },
  /**
   * 组件的方法列表
   */
  methods: {
    hide(){
      this.setData({
        hidden:true,
      })
    },
    show(){
      this.setData({
        hidden:false,
      })
    },
    getList(mapParam){
      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.centre_pos){
        this.param.centre_pos=mapParam.centre_pos
      }
      if(mapParam.tags){
        this.param.tags=mapParam.tags
      }
      if(mapParam.cuisine){
        this.param.cuisine=mapParam.cuisine
      }
      if(mapParam.when_date){//日期
        this.param.when_date=mapParam.when_date
      }
      if(mapParam.several){//人数
        this.param.several=mapParam.several
      }
      if(mapParam.daily){//时段
        this.param.daily=mapParam.daily
      }
      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),
        })
      })
    },
    caixiShow(){
      this.triggerEvent('event',{type:'caixiShow'})
    },
    tagsChange(e){
      this.triggerEvent('event',{type:'tagsChange',e:e})
    },
    gotoDetail(e){
      wx.navigateTo({
        url:'/pages/reserve/shopHome?id='+util.attr(e,'sid')
      })
    },
  }
})