// pages/o2oHome/o2oHome.js
var location = require("../../../mybehaviors/location/location");

var app = getApp();
Page({
  behaviors: [location],
  /**
   * 页面的初始数据
   */
  data: {
    address: "",
    point: {
      lat: "",
      lng: "",
    },
    city: "",
    page: 1,
    ads: [],
    total_page: 0,
    category: [],
    loading: false,
    isLoadMore: true,
    stores: [],
    carousels: [],
    bannerData: [],
    // 选项卡
    shop: "",
    is_open: 0,
    Height: 0,
    LastHeight: 0,

    hot_arrondi:{},//热门团购模块信息
    plugin_name:'拓客卡',
    openTemplate: 0, //门店列表样式
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    if (options.mid) {
      app._setMid(options.mid);
    }
    if (options.addressData) {
      let addressData = JSON.parse(options.addressData);
      this.setData({
        "point.lat": addressData.latitude,
        "point.lng": addressData.longitude,
        address: addressData.title,
        title: addressData.title,
        city: addressData.city,
      });
      this.getStorePage();
    } else {
      this._getLocation((res) => {
        let address_on = wx.getStorageSync('address-point');
        this.setData({
          address:address_on.city
        });
        this.getStorePage();
      },(err)=>{
        this.getStorePage();
      });
    }
    // console.log(this.data.city)
  },
  imgHeight: function (e) {
    var winWid = wx.getSystemInfoSync().windowWidth; //获取当前屏幕的宽度
    var imgh = e.detail.height; //图片高度
    var imgw = e.detail.width; //图片宽度
    var swiperH = (winWid * imgh) / imgw + "px"; //等比设置swiper的高度。 即 屏幕宽度 / swiper高度 = 图片宽度 / 图片高度  ==》swiper高度 = 屏幕宽度 * 图片高度 / 图片宽度
    if (parseInt(swiperH) > this.data.LastHeight) {
      this.setData({
        Height: swiperH, //设置高度
      });
      this.data.LastHeight = parseInt(swiperH);
    }
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    this.storeList = this.selectComponent("#storeList");
    this.business = this.selectComponent("#business");
  },

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

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

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

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

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    // if (!this.data.loading) {
    if (this.data.stores.length > 0 && !this.data.is_open) {
      this.storeList.getMoreStores();
    }
    if (this.data.shop && this.data.is_open) {
      this.business.getMoreList();
    }
    // this.getMoreData();
    // } else {
    //   console.log("没有更多了");
    // }
  },

  /**
   * 用户点击右上角分享
   */
  onShareTimeline: function () {
    let value = wx.getStorageSync("yz_uid");
    let mid = "";
    if (value) {
      mid = value;
    }
    return {
      title: "",
      path: "packageC/o2o/o2oHome/o2oHome?mid=" + mid,
      // query: `mid=${mid}`
    };
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    var value = wx.getStorageSync("yz_uid");
    var mid = "";
    if (value) {
      mid = value;
    }
    return {
      path: "/packageC/o2o/o2oHome/o2oHome?mid=" + mid,
    };
  },

  getStores(data) {
    this.setData({
      total_page: data.last_page,
    });
    if (!this.data.total_page) {
      this.setData({
        total_page: 0,
      });
    }

    if (data.total <= 0 || data.current_page == data.last_page) {
      this.setData({
        isLoadMore: false,
      });
    }
    this.setData({
      stores: data.data,
    });
  },
  getStoresCategory() {
    var that = this;
    let urlStr = app.getNetAddresss(
      "plugin.store-cashier.frontend.store.store-category.get-list"
    );
    app._getNetWork({
      url: urlStr,
      success: function (resdata) {
        var res = resdata.data;
        if (res.result == 1) {
          that.setData({
            category: res.data ? res.data : [],
          });
          let category_10 = that.chunk(that.data.category, 10);
          that.setData({
            category_10: category_10,
          });
        }
      },
      fail: function (res) {
        console.log(res);
      },
    });
  },
  //默认首页数据
  _indexData(data) {
    this.setData({
      bannerData: data.banner,
      carousels: data.carousels ? data.carousels : [],
      ads: data.advs,
    });
  },
  chunk(arr, n) {
    var result = [];
    for (var i = 0, len = arr.length; i < len; i += n) {
      result.push(arr.slice(i, i + n));
    }
    return result;
  },
  getMoreData() {
    var that = this;
    if (this.data.page == this.data.total_page) {
      return;
    }
    if (this.data.page >= this.data.total_page) {
      that.setData({
        loading: true,
      });
      return;
    } else {
      this.setData({
        page: this.data.page + 1,
      });
      let urlStr = app.getNetAddresss(
        "plugin.store-cashier.frontend.store.store.get-store-list-to-page"
      );
      let point = app.qqMapTransBMap(
        parseFloat(that.data.point.lng),
        parseFloat(that.data.point.lat)
      );
      urlStr += "&kwd=";
      urlStr += "&lng=" + (point.lng ? point.lng : "");
      urlStr += "&lat=" + (point.lat ? point.lat : "");
      urlStr += "&city_name=" + this.data.city;
      urlStr += "&page=" + this.data.page;
      urlStr += "&is_aggregation=1";
      app._getNetWork({
        url: urlStr,
        success: function (resdata) {
          var res = resdata.data;
          if (res.result == 1) {
            var myData = res.data;
            that.setData({
              loading: false,
            });

            if (myData.current_page >= myData.last_page) {
              that.setData({
                loading: true
              });
            }
            that.setData({
              stores: that.data.stores.concat(myData.data)
            });
          } else {
            that.setData({
              page: that.data.page - 1,
              loading: true,
              isLoadMore: false
            });
          }
        },
        fail: function(res) {
          console.log(res);
        }
      });
    }
  },
  tolocation() {
    wx.navigateTo({
      url: '/packageC/o2o/o2oLocation/o2oLocation'
    });
  },
  //banner点击
  bannerClick(e) {
    let item = e.currentTarget.dataset.item;
    if(item&&item.min_url){
      this.goUrl(item.min_url);
    }else{
      wx.showToast({
        title: '请设置链接',
        icon: 'none',
        duration: 2000
      });
    }
  },
  goUrl(url) {
    if (url) {
      try {
        wx.navigateTo({
          url: url
        });
      } catch (e) {
        wx.showToast({
          title: '链接设置错误:' + url,
          icon: 'none',
          duration: 2000
        });
        //TODO handle the exception
      }
    }
  },
  tosearch() {
    if (!this.data.city) {
      wx.showToast({
        icon: 'none',
        title: '请先选择城市',
        duration: 1000
      });
      return;
    }
    wx.navigateTo({
      url: '/packageC/o2o/o2oSearch/o2oSearch?city=' + this.data.city + '&point=' + JSON.stringify(this.data.point)
    });
  },
  getStorePage() {
    let that = this;
    let urlStr = app.getNetAddresss("plugin.store-cashier.frontend.store.store.get-store-page");
    let point = app.qqMapTransBMap(parseFloat(that.data.point.lng), parseFloat(that.data.point.lat));
    if(!point.lng){
      point.lng = '',
      point.lat = '';
    }
    // console.log(point)
    that.setData({
      page: 1
    });
    app._getNetWork({
      url: urlStr,
      data: {
        kwd: "",
        lng: point.lng,
        lat: point.lat,
        city_name: that.data.city,
        page: that.data.page
      },
      success: function(resdata) {
        var res = resdata.data;
        if (res.result == 1) {
          if (res.data.store_list) {
            that.getStores(res.data.store_list);
            console.log("gggggggggggggggg",res.data.store_list_style);
            that.setData({
              openTemplate: res.data.store_list_style || 0
            });
          }else{
            that.setData({
              stores: []
            });
          }
          if(res.data.customer_development){
            // 拓客卡插件开启
            that.setData({
              customer: res.data.customer_development,
              plugin_name:res.data.customer_development_name
            });
          }
          that.setData({
            category: res.data.category_list ? res.data.category_list : [],
            hot_arrondi: res.data.hot_arrondi||{}
          });
          let category_10 = that.chunk(that.data.category, 10);
          that.setData({
            category_10: category_10
          });
          that._indexData(res.data.get_default);
          that.getShopData(res.data.get_tab);
        } else {
          that.setData({
            stores: [],
            page: 1
          });
          wx.showToast({
            icon: 'none',
            title: res.msg,
            duration: 1000
          });
        }
      },
      fail: function(res) {
        console.log(res);
      }
    });
  },
  getShopData(data) {
    this.setData({
      shop: data
    });
    for (let val of this.data.shop) {
      if (val.is_open) {
        this.setData({
          is_open: val.is_open
        });
        break;
      }
    }
    console.log(this.data.is_open,"is_open");
  },
  gotoGrouplist(){
    wx.navigateTo({
      url: '/packageC/o2o/o2oGrouplist/o2oGrouplist'
    });
  },
  toDetail(e){
    let id = e.currentTarget.dataset.id;
    let storeid = e.currentTarget.dataset.storeid;
    wx.navigateTo({
      url: "/packageA/detail_v2/detail_v2?id=" + id +'/'+storeid+ '&name=group'
    });
  },
  tocustomer(e){
    let id = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: "/packageA/detail_v2/detail_v2?id=" + id
    });
  },
  tokerSetMeal(){
    wx.navigateTo({
      url: '/packageH/toker/tokerIndex/tokerIndex?city='+this.data.city+"&point="+JSON.stringify(this.data.point),
    });
  }
});
