const app = getApp() const api = require('../../../request/api'); const http = require('../../../request/http'); const storeKeys = require('../../../utils/storageKeys.js'); const utils = require('../../../utils/util'); Page({ data: { isLogOn: false, //是否已登录 userRole: 1, //用户身份 isTop: false, //是否固定头部 appleSId: null, //分享人id statusBarHeight: app.globalData.statusBarHeight, scene: app.globalData.scene, isLoading: true, //是否处于加载 goodsList: [], //页面推荐商品 oneData: [], //数据1(轮播1) twoData: [], //数据2(轮播2) threeData: [], //数据3(探秘 体验模块) fourData: [], //数据4(轮播3) popupData: [], //弹窗广告数据 showPopupAd: false, //是否显示弹窗广告 goLog: false, //是否点击弹窗广告前往登陆 isPlay: false, //视频是否处于播放 videoCtx: null, //video对象 videoPath: "", //视频地址 videoImage: `${api.URL}/uploads/image/home_video_cover.png`, //视频封面图 dataset:{}, //记录页面广告点击项 isActivityPage: false, //是否为活动版首页 activityBack:"", //活动版首页背景 activityViewData:[], //活动版首页数据 }, onLoad(options) { console.log("123456") if (options) { //小程序分享人id let appleSId = options.apple_s_id || ""; if (appleSId) { utils.setStorageSync(storeKeys.APPLESID, appleSId); this.setData({ appleSId }) } } console.log("123456") this.getActivityPageData(); this.promotion(); app.countRecord() }, onShow() { console.log("123456") if (this.data.videoCtx) { this.data.videoCtx.pause(); } let activityPage = this.selectComponent("#activityPage") activityPage && activityPage.pauseVideo(); let userInfo = utils.getStorageSync(storeKeys.USERINFO) || {}; this.setData({ userRole: userInfo.role, isLogOn: utils.getStorageSync(storeKeys.TOKEN) ? true : false }) this.data.goLog = false; app.changeTabBarBadge(utils.getStorageSync(storeKeys.CARETOTAl)); app.countRecordPublic(0); }, onHide() { if (this.data.videoCtx) { this.data.videoCtx.pause(); this.data.videoCtx.stop(); } let activityPage = this.selectComponent("#activityPage") activityPage && activityPage.pauseVideo(); this.setData({ isPlay: false }) if (!this.data.goLog) { this.setData({ showPopupAd: false }) } }, navigateTo: utils.throttle(function (e) { app.navigateTo(e); }), navigateToToken: utils.throttle(function (e) { if (!utils.getStorageSync(storeKeys.TOKEN)) { wx.navigateTo({ url: "/pages/tabBar/login/login" }) return; } app.navigateTo(e); }), onPullDownRefresh: function () { wx.stopPullDownRefresh(); this.getActivityPageData(); }, //获取活动首页数据 getActivityPageData(){ http.request({ method: 'GET', url: api.URL + '/api/Setting/getHomePage', noToast: true, success: (res) => { let page = res.data.data.page || null; //page存在则显示活动主页 if(page && page.setting){ let setting = page.setting; let activityBack = setting.bgUrl || ""; let activityViewData = setting.jumpArr || []; // 过滤是否存在弹窗数据 let popupData = activityViewData.filter((item)=>{ return item.type == 4 }) let {scene, appleSId } = this.data; //是否满足弹窗条件(进入小程序未弹窗过&& 非扫码进入或扫码进入没有店员分享人id) if (!utils.getStorageSync(storeKeys.ISPOPUPAD) && popupData && popupData.length > 0 && (scene != 1047 || (scene == 1047 && (!appleSId || (appleSId && utils.getStorageSync(storeKeys.TOKEN)))))) { this.setData({ popupData, showPopupAd: true }) utils.setStorageSync(storeKeys.ISPOPUPAD, "1"); } this.setData({ activityBack, activityViewData, isLoading:false, isActivityPage:true }) }else{ //活动主页数据不存在 获取常规版主页 this.getNormalPageData() this.setData({ isActivityPage:false }) } }, error: (res) => { this.getNormalPageData() }, }) }, // 广告点击 adClick: utils.throttle(function (e) { this.data.dataset = e.currentTarget.dataset || {}; //点击类型 1弹窗广告 let type = e.currentTarget.dataset.type; // 活动版弹窗触发子组件方法 if(type == 1 && this.data.isActivityPage){ this.selectComponent("#activityPage").pageViewClick(e) return; } this.adJumpPage() }), //登录回调 loginCallback(){ let type = this.data.dataset.type; // 活动版弹窗触发子组件方法 if(type == 1 && this.data.isActivityPage){ this.selectComponent("#activityPage").adJumpPage(this.data.dataset) return; } this.adJumpPage() }, adJumpPage(){ let dataset = this.data.dataset // 广告id let adId = dataset.id; //点击类型 1弹窗广告 let type = dataset.type; //跳转id let jumpId = dataset.jumpid; /** * 跳转类型 * 0:不跳转 * 1:商品详情 * 2:探秘 * 3:体验 * 4:购买购物卡(惠存) * 5:领券中心(惠买) * 6:我的优惠卷(可使用) * 7:裂变礼包活动 * 8:砍价活动 * 9:拼团活动 * 10:拼团裂变活动 * 11:全场满件送 * 12:限时秒杀 * 13:推荐官页面 */ let jumpType = dataset.jumptype; if (jumpType == 6 || jumpType == 8 || jumpType == 9 || jumpType == 10) { if (!utils.getStorageSync(storeKeys.TOKEN)) { let callback = ""; if(type == 1){ callback = "1" } wx.navigateTo({ url: "/pages/tabBar/login/login?callback="+callback }) this.data.goLog = true; return; } } switch (jumpType) { case 0: //不跳转 break; case 1: //商品详情 wx.navigateTo({ url: "/pages/cart/pages/goodsDetail/goodsDetail?goods_id=" + jumpId }) break; case 2: //探秘 wx.navigateTo({ url: "/pages/index/pages/explore/explore" }) break; case 3: //体验 wx.navigateTo({ url: "/pages/index/pages/experience/experience" }) break; case 4: //购买购物卡(惠存) wx.navigateTo({ url: "/pages/index/pages/riceCard/cardList/cardList" }) break; case 5: //领券中心(惠买) wx.navigateTo({ url: "/pages/index/pages/couponCenter/couponCenter" }) break; case 6: //我的优惠卷(可使用) wx.navigateTo({ url: "/pages/index/pages/coupon/myCoupon" }) break; case 7: //裂变礼包活动 wx.navigateTo({ url: "/pages/activity/pages/fission/index/index?activityId=" + jumpId }) break; case 8: //砍价活动 wx.navigateTo({ url: "/pages/activity/pages/bargain/index/index?activity_id=" + jumpId }) break; case 9: //拼团活动 wx.navigateTo({ url: "/pages/activity/pages/groupShopping/groupGoodsDetail/groupGoodsDetail?activity_id=" + jumpId }) break; case 10: //拼团裂变活动 wx.navigateTo({ url: "/pages/activity/pages/groupShopping/groupGoodsDetail/groupGoodsDetail?activity_id=" + jumpId + '&isfission=1' }) break; case 11: //全场满件送 wx.navigateTo({ url: "/pages/activity/pages/wholeGift/index/index?activityId=" + jumpId }) break; case 12: //限时秒杀 wx.navigateTo({ url: "/pages/activity/pages/seckill/index/index?activityId=" + jumpId }) break; case 13: //申请推荐款 wx.navigateTo({ url: "/pages/user/pages/store/upgradeRetail/upgradeRetail" }) break; default: } this.popupClose(); http.request({ url: api.URL + '/api/ad/click_ad?id=' + adId + '&mac_id=' + Math.ceil(Math.random() * 100000).toString(), method: 'GET', token: utils.getStorageSync(storeKeys.TOKEN), success: (res) => { }, error: (res) => { }, }) }, //获取常规首页数据 getNormalPageData() { // 获取所有广告 let promise1 = new Promise((resolve) => { this.getAdList(() => { resolve(); }); }) // 获取视频 let promise2 = new Promise((resolve) => { this.getPageVideo(() => { resolve(); }); }) // 获取推荐商品 // let promise3 = new Promise((resolve) => { // this.getGoodsData(() => { // resolve(); // }); // }) this.getGoodsData(); Promise.all([promise1, promise2]).then((values) => { wx.hideLoading(); this.setData({ isLoading: false }); this.data.videoCtx = wx.createVideoContext('myVideo', this) let { popupData, scene, appleSId } = this.data; if (!utils.getStorageSync(storeKeys.ISPOPUPAD) && popupData && popupData.length > 0 && (scene != 1047 || (scene == 1047 && (!appleSId || (appleSId && utils.getStorageSync(storeKeys.TOKEN)))))) { this.setData({ showPopupAd: true }) utils.setStorageSync(storeKeys.ISPOPUPAD, "1"); } }).catch((error) => { }) }, //监听页面滚动 onPageScroll(e) { if (e.scrollTop < 20 && this.data.isTop) { this.setData({ isTop: false }) } else if (e.scrollTop >= 120 && !this.data.isTop) { this.setData({ isTop: true }) } }, // 普通用户切换绑定关系 promotion() { let sharerId = utils.getStorageSync(storeKeys.SHAREID) || utils.getStorageSync(storeKeys.APPLESID) || ""; if (!sharerId) { return; } let data = { sharerId: sharerId, isScanCode: "1" } http.request({ url: api.URL + '/api/promotion/ch_upper', data: data, method: 'POST', token: utils.getStorageSync(storeKeys.TOKEN), noLogin: true, noToast: true, success: function (res) { }, error: function (res) { } }) }, //获取页面广告数据 getAdList(resolve) { http.request({ url: api.URL + '/api/ad/list?ad_types=1,2,3,4,8', method: 'GET', token: utils.getStorageSync(storeKeys.TOKEN), success: (res) => { let data = res.data.data; let oneData, twoData, threeData, fourData, popupData = []; oneData = data[1] || []; twoData = data[2] || []; threeData = data[3] || []; fourData = data[4] || []; popupData = data[8] || []; resolve && resolve(); this.setData({ oneData, twoData, threeData, fourData, popupData }) }, error: (res) => { resolve && resolve(); }, }) }, // 获取视频数据 getPageVideo(resolve) { http.request({ method: 'GET', url: api.URL + '/api/shop/explores?type=3', success: (res) => { resolve && resolve(); let data = res.data.data.values || {}; let videoPath = data.ali_url || ""; this.setData({ videoPath }) }, error: (res) => { resolve && resolve(); }, }) }, //获取推荐商品 getGoodsData(resolve) { http.request({ url: api.URL + '/api', method: 'GET', success: (res) => { resolve && resolve(); let goodsList = res.data.data.custom_blocks || [] this.setData({ goodsList }) }, error: (res) => { resolve && resolve(); }, }) }, //前往商品详情 goToGoodsDetail: utils.throttle(function (e) { let goodsId = e.currentTarget.dataset.id; wx.navigateTo({ url: '/pages/cart/pages/goodsDetail/goodsDetail?goods_id=' + goodsId }) }), //添加购物车 addCart: utils.throttle(function (e) { if (!utils.getStorageSync(storeKeys.TOKEN)) { wx.navigateTo({ url: "/pages/tabBar/login/login" }) return; } let id = e.currentTarget.dataset.id; let stock_total = e.currentTarget.dataset.stock || 0; //库存不足 if (stock_total <= 0) { utils.toast("当前商品暂时缺货") return; } let staffUserId = utils.getStorageSync(storeKeys.SHAREID) || utils.getStorageSync(storeKeys.APPLESID) || 0; let data = { "goodsId": id, //商品ID "goodsSkuId": "", //商品规格ID "goodsNum": 1, //购买数量,不能小于1 staffUserId: parseInt(staffUserId) } wx.showLoading({ title: "加载中" }); http.request({ url: api.URL + '/api/cart/add', method: 'POST', data, token: utils.getStorageSync(storeKeys.TOKEN), success: (res) => { wx.hideLoading(); utils.setStorageSync(storeKeys.CARETOTAl, res.data.data.cartTotal); app.changeTabBarBadge(utils.getStorageSync(storeKeys.CARETOTAl)); utils.toast(res.data.message) }, error: (res) => { wx.hideLoading(); utils.toast(res.data.message) }, }) }), // 播放视频 videoPlay() { this.setData({ isPlay: true }) this.data.videoCtx.play(); }, //前往我的分享码 goToPoster: utils.throttle(function (e) { let url = "/pages/user/pages/appletIncomePoster/appletIncomePoster"; wx.navigateTo({ url: url }) }), //关闭弹窗广告 popupClose() { this.setData({ showPopupAd: false }) }, //开通会员、前往会员中心 memberClick: utils.throttle(function (e) { let userInfo = utils.getStorageSync(storeKeys.USERINFO) || {}; if (!utils.getStorageSync(storeKeys.TOKEN)) { wx.navigateTo({ url: "/pages/tabBar/login/login" }) return; } if (userInfo.is_member) { wx.navigateTo({ url: "/pages/member/pages/memberCenter/memberCenter" }) } else { wx.navigateTo({ url: "/pages/member/pages/membership/membership" }) } }), onShareAppMessage: function (e) { return { title: app.globalData.shareTitle, imageUrl: app.globalData.shareImage, path: app.globalData.sharePath, } }, onShareTimeline: function (e) { return { title: app.globalData.shareTitle, imageUrl: app.globalData.shareImage, path: app.globalData.sharePath, } } })