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