// packageE/stores/stores.js var location = require("../../../mybehaviors/location/location"); var app = getApp(); Component({ behaviors: [location], properties: { datas: { type: null, }, component_id: { type: null, }, bottomShowBol: { type: null }, bottomShowBolIndex: { type: null }, index: { type: null, }, btnFlag: { type: null }, }, // 私有数据,可用于模板渲染 data: { emptyImage: "https://mini-app-img-1251768088.cos.ap-guangzhou.myqcloud.com/image.png", clientWidth: "375", active: "3", titleName: [ { id: "popularity_short", text: "人气商家", url: "plugin.store-cashier.frontend.store.store.get-store-list-rank" }, { id: "new_short", text: "新入驻商家", url: "plugin.store-cashier.frontend.store.store.get-store-list-rank" }, { id: "preferential_short", text: "优惠商家", url: "plugin.store-cashier.frontend.store.store.get-store-list-rank" }, { id: "nearby", text: "附近商家", url: "plugin.store-cashier.frontend.store.store.get-store-list-rank" } ], api: "", dataJson: {}, //人气商家数组和分页数据 shopList0: [], isLoadMore0: false, page0: 1, total_page0: 0, //新入驻商家数组和分页数据 shopList1: [], isLoadMore1: false, page1: 1, total_page1: 0, //优惠商家数组和分页数据 shopList2: [], isLoadMore2: false, page2: 1, total_page2: 0, //附近商家数组和分页数据 shopList3: [], isLoadMore3: false, page3: 1, total_page3: 0, }, lifetimes: { // 生命周期函数,可以为函数,或一个在methods段中定义的方法名 attached() { let language = wx.getStorageSync("langIndex"); this.setData({language: language.en}); }, moved() { }, detached() { }, }, // 生命周期函数,可以为函数,或一个在methods段中定义的方法名 attached() { }, // 此处attached的声明会被lifetimes字段中的声明覆盖 ready() { if (this.data.datas.discount_list.indexOf("1") > -1) { this.setData({ showMun: true, }); } else if (this.data.datas.discount_list.indexOf("1") < 0) { this.setData({ showMun: false, }); } this.setData({ clientWidth: wx.getSystemInfoSync().windowWidth, }); this._getLocation(()=> { if (this.data.datas.tab_list.indexOf("4") > -1) { this.chooseTab(" ", "nearby"); this.setData({active:'3'}); } else if (this.data.datas.tab_list.indexOf("1") > -1) { this.chooseTab(" ", "popularity_short"); this.setData({active:'0'}); } else if (this.data.datas.tab_list.indexOf("2") > -1) { this.chooseTab(" ", "new_short"); this.setData({active:'1'}); } else if (this.data.datas.tab_list.indexOf("3") > -1) { this.chooseTab(" ", "preferential_short"); this.setData({active:'2'}); } }); }, pageLifetimes: { // 组件所在页面的生命周期函数 show() { }, hide() { }, resize() { }, }, methods: { // 跳转到店铺 toRouter(e) { let item = e.currentTarget.dataset.item; if (item.specify_show == 1) { wx.navigateTo({ url: "/packageC/o2o/o2oStore/o2oStore?store_id=" + item.id + "&fromHome=1", }); } else { if (item.store_decorate == 1) { wx.navigateTo({ url: "/packageG/o2o/HomeSeller/HomeSeller?store_id=" + item.id, }); } else { wx.navigateTo({ url: "/packageC/o2o/HomeSeller/HomeSeller?store_id=" + item.id, }); } } }, toClassify(e) { let id = e.currentTarget.dataset.id; wx.navigateTo({ url: "/packageC/o2o/o2oCategory/o2oCategory?id=" + id + "&city=" + this.data.city + "&point=" + JSON.stringify(this.data.point), }); }, toGoods(e) { let item = e.currentTarget.dataset.item; wx.navigateTo({ url: "/packageA/detail_v2/detail_v2?id=" + item.goods_id, }); }, // 打开地图 goToAdress(e) { let latitude = e.currentTarget.dataset.items.latitude; let longitude = e.currentTarget.dataset.items.longitude; let store_name = e.currentTarget.dataset.items.store_name; let point = app.BMapTransqqMap( parseFloat(longitude), parseFloat(latitude) ); wx.openLocation({ latitude: point.lat, longitude: point.lng, scale: 18, name: store_name, }); }, onClick(e) { if (e.detail.title == "人气商家") { this.setData({ active: 0, }); this.chooseTab("", "popularity_short"); } else if (e.detail.title == "新入驻商家") { this.setData({ active: 1, }); this.chooseTab("", "new_short"); } else if (e.detail.title == "优惠商家") { this.setData({ active: 2, }); this.chooseTab("", "preferential_short"); } else if (e.detail.title == "附近商家") { this.setData({ active: 3, }); this.chooseTab("", "nearby"); } }, chooseTab(key, index) { // 找到对应的索引 function pFn(p) { return p.id == index; } this.setData({ tab: this.data.titleName.findIndex(pFn), }); // console.log(this.data.tab, this.data.titleName, "this.data.titleName"); this.setData({ api: this.data.titleName[this.data.tab].url, }); let sorting = this.data.titleName[this.data.tab].id; if( sorting == 'preferential_short' ) { this.data.datas.discount_type == '1' ? sorting = 'preferential_short_percentage' : sorting = 'preferential_short'; } this.setData({ [`isLoadMore${this.data.tab}`]: false, [`total_page${this.data.tab}`]: 0, [`page${this.data.tab}`]: 1, }); let point = app.qqMapTransBMap( parseFloat(this.data.point.lng), parseFloat(this.data.point.lat) ); this.setData({ dataJson: { lng: point.lng ? point.lng : "", lat: point.lat ? point.lat : "", city_name: this.data.city, page: this.data[`page${this.data.tab}`], sorting: sorting, is_aggregation: 1 }, }); this.getList(); }, getList() { let that = this; // console.log(this.data.api,"api") let urlStr = app.getNetAddresss(that.data.api); app._getNetWork({ url: urlStr, data: this.data.dataJson, success: (resdata) => { let res = resdata.data; if (res.result == 1) { that.setData({ [`shopList${that.data.tab}`]: res.data.data, [`total_page${that.data.tab}`]: res.data.last_page, }); if (that.data[`total_page${that.data.tab}`] <= 1) { that.setData({ [`isLoadMore${that.data.tab}`]: false, }); } else { that.setData({ [`isLoadMore${that.data.tab}`]: true, }); } if ( that.data[`shopList${that.data.tab}`].length > that.data.datas.get_number ) { that.data[`shopList${that.data.tab}`].splice( that.data.datas.get_number, that.data[`shopList${that.data.tab}`].length - that.data.datas.get_number ); that.setData({ [`shopList${that.data.tab}`]: res.data.data, [`isLoadMore${that.data.tab}`]: false, }); } // console.log(this.data[`shopList${that.data.tab}`], "aa"); } else { console.log(res.msg); } // console.log(that.data.shopList0) }, fail: function (res) { console.log(res); wx.showToast({ title: res.msg, duration: 1000, icon: "none", }); }, }); }, getMoreList() { let that = this; let point; //获取更多数据 this.setData({ [`isLoadMore${this.data.tab}`]: false, }); if ( this.data[`page${this.data.tab}`] >= this.data[`total_page${this.data.tab}`] ) { return; } else { this.data[`page${this.data.tab}`] = this.data[`page${this.data.tab}`] + 1; point = app.qqMapTransBMap( parseFloat(this.data.point.lng), parseFloat(this.data.point.lat) ); let sorting = this.data.titleName[this.data.tab].id; if( sorting == 'preferential_short' ) { this.data.datas.discount_type == '1' ? sorting = 'preferential_short_percentage' : sorting = 'preferential_short'; } this.setData({ dataJson: { lng: point.lng ? point.lng : "", lat: point.lat ? point.lat : "", city_name: this.data.city, page: this.data[`page${this.data.tab}`], sorting: sorting, is_aggregation: 1 }, }); let urlStr = app.getNetAddresss(that.data.api); app._getNetWork({ url: urlStr, data: that.data.dataJson, success: (resdata) => { var res = resdata.data; if (res.result == 1) { that.setData({ [`shopList${that.data.tab}`]: that.data[`shopList${that.data.tab}`].concat(res.data.data), [`total_page${that.data.tab}`]: res.data.last_page, }); if ( that.data[`page${that.data.tab}`] >= that.data[`total_page${that.data.tab}`] ) { that.setData({ [`isLoadMore${that.data.tab}`]: false, }); } else { that.setData({ [`isLoadMore${that.data.tab}`]: true, }); } if ( that.data[`shopList${that.data.tab}`].length > that.data.datas.get_number ) { that.data[`shopList${that.data.tab}`].splice( that.data.datas.get_number, that.data[`shopList${that.data.tab}`].length - that.data.datas.get_number ); that.setData({ [`shopList${that.data.tab}`]: that.data[`shopList${that.data.tab}`], [`isLoadMore${that.data.tab}`]: false, }); } // console.log(that.data.shopList0) } else { that.setData({ [`page${that.data.tab}`]: [`page${that.data.tab}`] - 1, [`isLoadMore${that.data.tab}`]: false, }); } }, fail: function (res) { console.log(res); }, }); } }, }, observers: { 'bottomShowBol': function (flag) { if (flag && this.data.bottomShowBolIndex == this.data.index && this.data[`isLoadMore${this.data.tab}`]) { this.getMoreList(); } }, } });