yuminge-app/yun-min-program-plugin-master/packageC/o2o/o2oHome/o2oHome.js

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),
});
}
});