// pages/index/index.js var app = getApp(); var zi = 0; var cont_time = 0; //首页tab点击 var WXAPI = require('../../utils/server.js'); var util = require('../../utils/util.js') Page({ data: { pop: null, inforList: [], //公告 banner: [], indicatorDots: true, // 是否显示面板指示点 autoplay: true, // 是否自动切换 interval: 5000, // 自动切换时间间隔 duration: 1000, // 滑动动画时长 circular: true, // 是否采用衔接滑动 scrollLeft: 0, //tab标题的滚动条位置 current: 0, //当前选中的Tab项 page: 1, index: 1, cont: 1, tabid: 58, loading: false, remind: '加载中', showModal: false, plug: [], timestamp: 0, searchView: false, images: {}, zjList: {}, zjList_box: false, cart: 0, //购物车数量 // mainHeight: 0, }, //下拉事件 onPullDownRefresh: function () { var that = this; that.getMore(); }, imgW: function (e) { var $width = e.detail.width, //获取图片真实宽度 $height = e.detail.height, ratio = $width / $height; //图片的真实宽高比例 var viewWidth = 718, //设置图片显示宽度,左右留有16rpx边距 viewHeight = 718 / ratio; //计算的高度值 var image = this.data.images; //将图片的datadata-index作为image对象的key,然后存储图片的宽高值 image[e.target.dataset.index] = { width: viewWidth, height: viewHeight } this.setData({ images: image }) }, getMore: function () { var that = this; var page = that.data.page; var cid = that.data.tabid; var current = that.data.current; that.setData({ page: page + 1 }); WXAPI.indexGetMore({ page: page, cid: cid, }).then(res => { if (res.code == 200) { var data = res.data; wx.hideNavigationBarLoading() //完成停止加载 wx.stopPullDownRefresh() //停止下拉刷新 that.setData({ loading: false, }); if (data == '') { return false; } else { var titleList = that.data.titleList; titleList[current].list.push(...prolist) var indexList = titleList[0].list that.setData({ titleList: titleList, indexList: indexList }); } } }); }, inputConfirm: function (e) { var that = this, value = e.detail.value; this.setData({ value: e.detail.value, }); if (value != '') { wx.navigateTo({ url: "../listdetail/listdetail?keyword=" + value }) } }, searchView: function (e) { console.log(e); this.setData({ searchView: !this.data.searchView, }); }, inputBlur: function (e) { this.setData({ value: e.detail.value, }); this.searchView(); }, search_cancel: function (e) { var formId = e.detail.formId; var value = e.detail.value.search_value; console.log(this.data.value, e); if (value.length > 0) { wx.navigateTo({ url: "../listdetail/listdetail?keyword=" + value }) } else { wx.showToast({ title: '请输入关键词!', icon: 'none', duration: 2000 }); } if (formId != 'the formId is a mock one') { var page = 'pages/index/index' WXAPI.productSaveFormid({ from_id: formId, userid: app.globalData.userInfo.openid }).then(res => { }); } }, search: function () { var that = this, value = this.data.value; if (value != '') { wx.navigateTo({ url: "../listdetail/listdetail?keyword=" + value }) } }, loadProductDetail: function () { var that = this; // var userinfo = wx.getStorageSync('userInfo'); // if (userinfo.nickName) { // app.globalData.userInfo = userinfo; // } // var openid = app.globalData.userInfo.openid ? app.globalData.userInfo.openid : false; // var user_id = ''; // if (openid) { // user_id = app.globalData.userInfo.user_id; // } WXAPI.homeIndex({ accessId: app.globalData.accessId, storeId: 239, storeType: 1, latitude: 28.227965, longitude: 112.951227, }).then(res => { if (res.code == 200) { var data = res.data; var titleList = data.list2; //标题导航栏 var indexList = [] if (titleList) { indexList = titleList[0].list // 获取首页的数据对象 } app.globalData.logoimg = data.logo that.setData({ inforList: data.notice, //滚动公告条 banner: data.banner, // 轮播图 titleList: titleList, indexList: indexList, r_mch: data.r_mch, //优选店铺 plug: data.nav_list, //首页类型模块 mch_name: data.title, logo: data.logo, zjList: data.Marketing_list, memberPlugin: data.memberPlugin //是否显示会员权益条 }); // wx.setNavigationBarColor({ // frontColor: app.d.frontColor, // backgroundColor: app.d.bgcolor //页面标题为路由参数 // }); that.setData({ remind: '' }); // console.log(data.Marketing_list.length) if (data.Marketing_list.length) { that.listnsg(); } } else { wx.showToast({ title: res.message, duration: 2000 }); } }); //新品上市 WXAPI.newArrivalIndex({ accessId: app.globalData.accessId, storeId: 239, storeType: 1, }).then(res => { if (res.code == 200) { var data = res.data that.setData({ newImgList: data.list }) } }); //好物优选 WXAPI.recommendIndex({ accessId: app.globalData.accessId, storeId: 239, storeType: 1, }).then(res => { if (res.code == 200) { var data = res.data that.setData({ recommendImgList: data.list }) } }); }, onHide: function () { clearTimeout(); }, listnsg: function () { var zjList = this.data.zjList; var that = this; var time = 1500; if (zjList[zi].type == 2) { time = 6000; } else { time = 1500; } that.setData({ zjList_box: false }); that.listnsg(); that.setData({ headimgurl: zjList[zi].headimgurl, user_name: zjList[zi].user_name, pname: zjList[zi].name, zjList_box: true }) zi++; if (zi == zjList.length) { zi = 0; } }, //上拉事件 onReachBottom: function () { var that = this; that.getMore(); }, obm: function () { var that = this; var timestamp = Date.parse(new Date()); console.log(timestamp, that.data.timestamp) if (timestamp - that.data.timestamp > 2000) { that.setData({ timestamp: timestamp, }); } that.setData({ loading: true, remind: '' }); that.getMore(); }, /** * Tab的点击切换事件 */ tabItemClick: function (e) { //防止点击过快带来的闪屏问题 var timestamp = Date.parse(new Date()); timestamp = timestamp / 1000; var data = e.currentTarget.dataset; var that = this; if (cont_time) { if (timestamp - cont_time >= 1) { that.nextpic(data); cont_time = timestamp; } else { cont_time = timestamp; } } else { that.nextpic(data); cont_time = timestamp; } // that.checkCor(); }, nextpic: function (data) { this.setData({ current: data.pos, tabid: data.tabid, }); }, //设置点击tab大于第七个是自动跳到后面 checkCor: function (e) { if (this.data.current > 4) { this.setData({ scrollLeft: 800 }) } else { this.setData({ scrollLeft: 0 }) } }, /** * 内容区域swiper的切换事件 */ contentChange: function (e) { var that = this; var id = e.detail.current; var tabid = that.data.titleList[id].cid; this.setData({ current: id, tabid: tabid, page: 1, }) // this.checkCor(); }, onShow: function () { console.log(app) var indexchase = app.d.indexchase; var that = this; if (indexchase) { that.onLoad(); app.d.indexchase = false; } // util.getUesrBgplus(that, app, false) }, onReady: function () { this.pop = this.selectComponent("#pop") }, onLoad: function (e) { var that = this; that.loadProductDetail(); }, preventTouchMove: function () { }, go: function () { this.setData({ showModal: false }) }, navigate_sign: function () { wx.navigateTo({ url: '../sign_in/sign_in', }) }, //获取用户信息新接口 agreeGetUser: function (e) { let that = this if (e.detail.errMsg == 'getUserInfo:ok') { //获取成功设置状态 app.globalData.isLogin = true; wx.setStorageSync('isLogin', true); //设置用户信息本地存储 try { wx.setStorageSync('userInfo', e.detail.userInfo); } catch (e) { wx.showToast({ title: '系统提示:网络错误!', icon: 'warn', duration: 1500, }) } wx.showLoading({ title: '加载中...', duration: 1500, }) that.setData({ isLogin: false }) that.getOP(e.detail.userInfo) } }, login: function () { var that = this; //取出本地存储用户信息,解决需要每次进入小程序弹框获取用户信息 var userInfo = wx.getStorageSync('userInfo'); wx.login({ success: res => { app.globalData.code = res.code wx.setStorageSync('code', res.code) }, fail: function () { wx.showToast({ title: '系统提示:网络错误!', icon: 'warn', duration: 1500, }) } }) wx.getSetting({ success: (res) => { // 没有授权需要弹框 if (!res.authSetting['scope.userInfo']) { that.setData({ isLogin: true }); } else { //判断用户已经授权。不需要弹框 if (app.globalData.isLogin) { that.setData({ isLogin: false }) app.globalData.isLogin = true; wx.setStorageSync('isLogin', true); } else { that.setData({ isLogin: true }); } } }, fail: function () { wx.showToast({ title: '系统提示:网络错误!', icon: 'warn', duration: 1500, }) } }) }, getOP: function (res) { //提交用户信息 获取用户id let that = this let userInfo = res; var user = app.globalData.userInfo; app.globalData.userInfo['avatarUrl'] = userInfo.avatarUrl; // 头像 app.globalData.userInfo['nickName'] = userInfo.nickName; // 昵称 app.globalData.userInfo['gender'] = userInfo.gender; // 性别 wx.setStorageSync('userInfo', app.globalData.userInfo); //写入缓存 var nickName = userInfo.nickName; var avatarUrl = userInfo.avatarUrl; var gender = userInfo.gender; //性别 0:未知、1:男、2:女 WXAPI.userMaterial({ openid: app.globalData.userInfo.openid, nickName: nickName, avatarUrl: avatarUrl, gender: gender }).then(res => { if (res.code == 200) { wx.showToast({ title: '授权成功!', success: 2000 }); that.onLoad(); } }); }, getqx(event) { let name = event.currentTarget.dataset.name if (name === "会员中心" || name === "钱包") { var isLogin = wx.getStorageSync('isLogin') if (!isLogin) { wx.navigateTo({ url: '/pages/login/login' }) } } wx.navigateTo({ url: event.currentTarget.dataset.path, }) }, onShareAppMessage: function (res) { var that = this; var id = that.data.productId; var type1 = that.data.type1; var uname = app.globalData.userInfo.nickName ? app.globalData.userInfo.nickName : ''; var title = uname + '邀请你来' + that.data.mch_name; var user_id = app.globalData.userInfo.user_id; if (res.from === 'button') { // 来自页面内转发按钮 } return { title: title, imageUrl: that.data.logo, path: 'pages/index/index?userid=' + user_id, success: function (_res) { console.log('转发成功'); }, fail: function (_res) { console.log('转发失败') } } }, });