var util = require('../../utils/util.js'); var status = require('../../utils/index.js'); var app = getApp(); Page({ mixins: [require('../../mixin/globalMixin.js')], data: { classification: { tabs: [], activeIndex: 0 }, slider_list: [], pintuan_show_type: 0, loadMore: true, loadText: "加载中...", loadOver: false, showEmpty: false, rushList: [], isIpx: app.globalData.isIpx }, pageNum: 1, handlerGobackClick(delta) { const pages = getCurrentPages(); if (pages.length >= 2) { wx.navigateBack({ delta: delta }); } else { wx.switchTab({ url: '/eaterplanet_ecommerce/pages/index/index' }); } }, handlerGohomeClick(url) { wx.switchTab({ url: '/eaterplanet_ecommerce/pages/index/index' }); }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { app.setShareConfig(); status.setNavBgColor(); this.initFn(); }, initFn: function(){ wx.showLoading(); this.getTabs(); this.getData(); }, authSuccess: function () { let that = this; this.pageNum = 1; this.setData({ classification: { tabs: [], activeIndex: 0 }, slider_list: [], pintuan_show_type: 0, loadMore: true, loadText: "加载中...", loadOver: false, showEmpty: false, rushList: [] }, () => { that.initFn(); }) }, authModal: function () { if (this.data.needAuth) { this.setData({ showAuthModal: !this.data.showAuthModal }); return false; } return true; }, /** * 获取分类 */ getTabs: function () { let that = this; app.util.request({ url: 'entry/wxapp/index', data: { controller: 'group.pintuan_slides' }, dataType: 'json', success: function (res) { if(res.data.code==0) { let { category_list, pintuan_show_type, slider_list, pintuan_index_share_title, pintuan_index_share_img } = res.data; let params = { classification: {} }; params.slider_list = slider_list || []; params.pintuan_show_type = pintuan_show_type; params.pintuan_index_share_title = pintuan_index_share_title || ''; params.pintuan_index_share_img = pintuan_index_share_img || ''; category_list = category_list || []; let index_type_first_name = '推荐'; if (category_list.length > 0) { category_list.unshift({ name: index_type_first_name, id: 0 }) params.isShowClassification = true; params.classification.tabs = category_list; } else { params.isShowClassification = false; } that.setData(params) } } }) }, /** * 生命周期函数--监听页面显示 */ onShow: function () { let that = this; (0, status.cartNum)('', true).then((res) => { res.code == 0 && that.setData({ cartNum: res.data }) }); }, /** * 监控分类导航 */ classificationChange: function (t) { console.log(t.detail.e) wx.showLoading(); var that = this; this.pageNum = 1; this.setData({ rushList: [], showEmpty: false, "classification.activeIndex": t.detail.e, classificationId: t.detail.a }, function () { that.getData(); }); }, /** * 获取商品列表 */ getData: function () { let that = this; let token = wx.getStorageSync('token'); let gid = that.data.classificationId; let community = wx.getStorageSync('community'); let head_id = community.communityId || 0; app.util.request({ url: 'entry/wxapp/index', data: { controller: 'group.get_pintuan_list', pageNum: this.pageNum, gid, token, head_id, is_index: 1 }, dataType: 'json', success: function (res) { wx.hideLoading(); wx.stopPullDownRefresh(); if (res.data.code == 0) { let oldRushList = that.data.rushList; if (that.pageNum == 1) oldRushList = []; let h = {}, list = res.data.list; if (that.pageNum == 1 && list.length == 0) h.showEmpty = true; let rushList = oldRushList.concat(list); let rdata = res.data; let reduction = { full_money: rdata.full_money, full_reducemoney: rdata.full_reducemoney, is_open_fullreduction: rdata.is_open_fullreduction } let pintuan_model_buy = rdata.pintuan_model_buy || 0; h.rushList = rushList; h.reduction = reduction; h.loadOver = true; let loadMore = that.data.loadMore; if(res.data.list.length<20) { loadMore = false } h.loadMore = loadMore; h.loadText = loadMore ? "加载中..." : "没有更多商品了~"; h.pintuan_model_buy = pintuan_model_buy; h.pintuan_show_type = rdata.pintuan_show_type; if (pintuan_model_buy == 1) h.needPosition=true,(!head_id&&that.needCommunity()); that.setData(h, function () { that.pageNum += 1; }) } else if (res.data.code == 1) { let s = { loadMore: false } if (that.pageNum == 1) s.showEmpty = true; that.setData(s); } else if (res.data.code == 2) { //no login that.setData({ needAuth: true }) } } }) }, /** * 需要社区 * 判断是否已绑定 */ needCommunity: function(){ let token = wx.getStorageSync('token'); let that = this; console.log('需要社区') if (token) { util.getCommunityInfo().then(res=>{ if(res) { that.pageNum = 1; that.setData({ loadMore: true, loadText: "加载中...", loadOver: false, showEmpty: false, rushList: [] }, () => { that.getData(); }) } }) } }, /** * 幻灯片跳转 */ goBannerUrl: function (t) { let idx = t.currentTarget.dataset.idx; let { slider_list, needAuth } = this.data; if (slider_list.length > 0) { let url = slider_list[idx].link; let type = slider_list[idx].linktype; if (util.checkRedirectTo(url, needAuth)) { this.authModal(); return; } if (type == 0) { // 跳转webview url && wx.navigateTo({ url: '/eaterplanet_ecommerce/pages/web-view?url=' + encodeURIComponent(url) }) } else if (type == 1) { if (url.indexOf('eaterplanet_ecommerce/pages/index/index') != -1 || url.indexOf('eaterplanet_ecommerce/pages/order/shopCart') != -1 || url.indexOf('eaterplanet_ecommerce/pages/user/me') != -1 || url.indexOf('eaterplanet_ecommerce/pages/type/index') != -1) { url && wx.switchTab({ url: url }) } else { url && wx.navigateTo({ url: url }) } } else if (type == 2) { // 跳转小程序 let appid = slider_list[idx].appid; appid && wx.navigateToMiniProgram({ appId: slider_list[idx].appid, path: url, extraData: {}, envVersion: 'release', success(res) { // 打开成功 }, fail(error) { console.log(error) } }) } } }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { let that = this; this.pageNum = 1; this.setData({ loadMore: true, loadText: "加载中...", loadOver: false, showEmpty: false, rushList: [] }, () => { that.getData(); }) }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { console.log('这是我的底线'); this.data.loadMore && (this.setData({ loadOver: false }), this.getData()); }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { var member_id = wx.getStorageSync('member_id'); let { pintuan_index_share_title, pintuan_index_share_img } = this.data; return { title: pintuan_index_share_title, path: "eaterplanet_ecommerce/moduleA/pin/index?share_id=" + member_id, imageUrl: pintuan_index_share_img, success: function () { }, fail: function () { } }; }, onShareTimeline: function() { var member_id = wx.getStorageSync('member_id'); let { pintuan_index_share_title, pintuan_index_share_img } = this.data; var query= `share_id=${member_id}`; return { title: pintuan_index_share_title, imageUrl: pintuan_index_share_img, query, success: function() {}, fail: function() {} }; } })