123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522 |
- 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,
- }
- }
- })
|