425 lines
10 KiB
JavaScript
425 lines
10 KiB
JavaScript
// 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),
|
|
});
|
|
}
|
|
});
|