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

305 lines
7.3 KiB
JavaScript

// packageC/o2o/o2oSearchMultiple/o2oSearchMultiple.js
var location = require("../../../mybehaviors/location/location");
var app = getApp();
Page({
behaviors: [location],
/**
* 页面的初始数据
*/
data: {
city: '',
point: {
lat: '',
lng: ''
},
stores: [],
inputs: "",
//more
page: 1, //分页数,当前页数
isLoadMore: true, //判断是否要加载更多的标志
total_page: 0, //总页数
listData: [],
networkLoading: false,
screenMenu: [{
name: '商品',
api: 'goods.goods.search-goods'
}],
screenType: ["good"],
screenIndex: 0,
screenShow: false,
goods_template: {
name: '02'
},
openTemplate: 0 //门店列表样式
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: async function (options) {
await this.getScreenList(options.search_type);
if (options.city && options.city !== '1') {
if (options.city) {
this.setData({
city: options.city
});
}
if (options.point) {
this.setData({
point: JSON.parse(options.point)
});
}
this.getListData();
} else {
this._getLocation(() => {
this.getListData();
});
}
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
if (this.data.isLoadMore) {
console.log("111111111111111");
this.getMoreData();
} else {
console.log('没有更多数据');
}
},
setScreenShow() {
this.setData({
screenShow: !this.data.screenShow
});
},
setScreenIndex(evt) {
let index = evt.currentTarget.dataset.index;
if (index == this.data.screenIndex) return;
this.setData({
screenIndex: index,
screenShow: false
});
this.getListData();
},
gotoGoods(evt) {
let id = evt.currentTarget.dataset.id;
wx.navigateTo({
url: '/packageA/detail_v2/detail_v2?id=' + id
});
},
gotoSupplier(evt) {
let id = evt.currentTarget.dataset.id;
wx.navigateTo({
url: '/packageA/member/supplier/SupplierShop/SupplierShop?id=' + id,
});
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
let point = JSON.stringify(this.data.point);
return {
title: '',
path: '/packageC/o2o/o2oSearchMultiple/o2oSearchMultiple?city=' + this.data.city + '&point=' + point,
};
},
initPage() {
this.setData({
listData: [],
networkLoading: false
});
this.data.page = 1;
this.data.total_page = 0;
this.data.isLoadMore = true;
},
getListData() {
this.initPage();
let urlStr = app.getNetAddresss(this.data.screenMenu[this.data.screenIndex].api);
let point = app.qqMapTransBMap(parseFloat(this.data.point.lng), parseFloat(this.data.point.lat));
urlStr += '&lng=' + point.lng;
urlStr += '&lat=' + point.lat;
urlStr += '&city_name=' + this.data.city;
urlStr += '&page=' + this.data.page;
let json = {};
if (this.data.screenIndex == 0) {
json["search[keyword]"] = this.data.inputs;
} else if (this.data.screenMenu[this.data.screenIndex].name == '门店商品') {
json["goods_title"] = this.data.inputs;
} else {
json.kwd = this.data.inputs;
}
app._getNetWork({
url: urlStr,
data: json,
success: (resdata) => {
var res = resdata.data;
this.setData({
networkLoading: true
});
if (res.result != 1) return app.tips(res.msg);
this.setData({
isLoadMore: true,
total_page: res.data.last_page,
listData: res.data.data,
});
if (!this.data.total_page) {
this.data.total_page = 0;
}
if (res.data.hasOwnProperty("store_list_style")) {
this.setData({
openTemplate: res.data.store_list_style || 0
});
}
}
});
},
//获取更多数据
getMoreData() {
let urlStr = app.getNetAddresss(this.data.screenMenu[this.data.screenIndex].api);
let point = app.qqMapTransBMap(parseFloat(this.data.point.lng), parseFloat(this.data.point.lat));
urlStr += '&lng=' + point.lng;
urlStr += '&lat=' + point.lat;
urlStr += '&city_name=' + this.data.city;
// 防止多次请求分页数据
this.data.isLoadMore = false;
if (this.data.page >= this.data.total_page) {
console.log("111111111111111", this.data.page, this.data.total_page);
return;
} else {
this.data.page++;
let json = {
page: this.data.page
};
if (this.data.screenIndex == 0) {
json["search[keyword]"] = this.data.inputs;
} else if (this.data.screenMenu[this.data.screenIndex].name == '门店商品') {
json["goods_title"] = this.data.inputs;
} else {
json.kwd = this.data.inputs;
}
app._getNetWork({
url: urlStr,
success: (resdata) => {
var res = resdata.data;
if (res.result == 1) {
this.data.isLoadMore = true;
var myData = res.data.data;
this.setData({
listData: this.data.listData.concat(myData)
});
} else {
this.data.isLoadMore = false;
this.data.page--;
}
}
});
}
},
getScreenList(search_type = "good") {
return new Promise((resolve, reject) => {
let urlStr = app.getNetAddresss('plugins.get-enabled-plugins');
app._getNetWork({
url: urlStr,
success: resdata => {
let res = resdata.data;
let screenMenu = this.data.screenMenu;
let screenType = this.data.screenType;
if (res.data.is_supplier == 1) {
screenMenu.push({
name: "供应商",
api: "plugin.supplier.frontend.supplier.get-supplier-list"
});
screenType.push("supplier");
}
if (res.data.is_store == 1) {
screenMenu.push({
name: "门店",
api: "plugin.store-cashier.frontend.store.store.get-store-list-to-page"
});
screenType.push("store");
screenMenu.push({
name: "门店商品",
api: "plugin.store-cashier.frontend.store.store.get-store-list-to-page"
});
screenType.push("store");
}
if (res.data.is_hotel == 1) {
screenMenu.push({
name: "酒店",
api: "plugin.hotel.frontend.hotel.goods.get-hotel-goods-by-title"
});
screenType.push("hotel");
}
this.setData({
screenMenu,
screenType
});
let index = screenType.indexOf(search_type);
if (this.data.screenMenu[index]) {
this.setData({
screenIndex: index
});
}
resolve();
}
});
});
},
});