import { getDictData, getMemberInfo, getZSZXCatalogs, getCustomizedNewsList, getHomeBanner, actionDo, getZhongTaiVideoPage, getZhongTaiProductNewsPage } from '../../api/index' import { eventBus } from '../../utils/eventBus' const app = getApp() var touchDot = 0; //触摸时的原点 Page({ /** * 页面的初始数据 */ data: { // 顶部nav topHeadStyle: 1, top: 0, open: false, desc: true, font_color: '#ffffff', ZSZXCata: {}, showWhiteHead: false, topHeadBorder: false, member: {}, bannerList: [], bannerImgHeight: 0, consultList: [], consultImgHeight: 0, videoTop: 0, windowHeight: 0, videoPlay: true, productVideo: {}, bannerSwiperOption: { indicatorDots: true, vertical: false, autoplay: true, interval: 3000, duration: 500 }, serviceList: [], testUrl: '', HOME_CLASS_A: '', HOME_CLASS_B: '', HOME_CLASS_B2: '', HOME_CLASS_C: '', }, onLoadLogin(options) { // 已经登录,可以走依赖token的逻辑了 console.log('首页的onLoadLogin', options, `{"token":"${app.globalData.token}"}`); this.initData() const member = wx.getStorageSync('member') this.setData({ member }) }, onReady() { const windowInfo = wx.getWindowInfo() setTimeout(() => { const query = wx.createSelectorQuery() query.select('.product_video').boundingClientRect(function (rect) { rect.top // 节点的上边界坐标 rect.bottom // 节点的下边界坐标 }).exec(res => { console.log(windowInfo.windowHeight) this.setData({ videoTop: res[0].top, windowHeight: windowInfo.windowHeight }) }) }, 3000) }, onShow() { const member = wx.getStorageSync('member') this.setData({ member }) eventBus.once("reloadHome", () => { console.log('reloadHome'); this.onLoad() this.initData() }) }, onLoad(options) { this.initDictData() // this.initData() }, changePath(e) { let index = e.currentTarget.dataset.type const member = this.data.member let that = this switch (index) { case '0': if (member && member.phone) { wx.navigateTo({ url: '/pages/webView/index', success: function (res) { // 通过eventChannel向被打开页面传送数据 res.eventChannel.emit('acceptDataFromOpenerPage', { link: that.data.testUrl }) } }) } else { wx.setStorageSync('tempPath', '/pages/webView/index') wx.navigateTo({ url: '/pages/auth/auth', }) } break; case '1': wx.navigateTo({ url: '/pages/calculator/index' }) break; case '2': if (member && member.phone) { wx.navigateTo({ url: '/pages/design/design' }) } else { wx.setStorageSync('tempPath', '/pages/design/design') wx.navigateTo({ url: '/pages/auth/auth', }) } // wx.navigateTo({ // url: '/pages/wonderful_activity/index', // success: function(res) { // // 通过eventChannel向被打开页面传送数据 // res.eventChannel.emit('acceptDataFromOpenerPage', { type: 1 }) // } // }) break; default: console.log('error') break; } }, changeStrategy(e) { let item = e.currentTarget.dataset.item wx.navigateTo({ url: `/pages/homeId/index?code=${item.code}&name=${item.name}`, }) }, initData() { // 轮播 getHomeBanner().then(res => { if (res.data) { this.setData({ bannerList: res.data }) } }) // 产品视频 getZhongTaiVideoPage({ pageSize: 1, pageNum: 1 }).then(res => { if (res.data && res.data.records && res.data.records.length > 0) { this.setData({ productVideo: res.data.records }) } }) getZSZXCatalogs().then(res => { //志说装修 this.setData({ ZSZXCata: res.data || {} }) }) // 资讯 getZhongTaiProductNewsPage({ catalogCode: 'product_info', pageSize: 6, pageNum: 1 }).then(res => { if (res.data && res.data.records) { this.setData({ consultList: res.data.records }) } }) getCustomizedNewsList().then(res => { // 定制服务 this.setData({ serviceList: res.data || [] }) }) }, initDictData() { // 风格测试 getDictData({ code: 'WX_MINI_CONFIG', label: 'ZBOM_STYLE_TEST_URL' }).then(res => { if (res.data) { this.setData({ testUrl: res.data.code }) wx.setStorageSync('testUrl', res.data.code) } }) getDictData({ code: 'WEIXIN_DEFAULT_IMGS', label: 'HOME_CLASS_A' }).then(res => { this.setData({ HOME_CLASS_A: res.data.code }) }) getDictData({ code: 'WEIXIN_DEFAULT_IMGS', label: 'HOME_CLASS_B' }).then(res => { this.setData({ HOME_CLASS_B: res.data.code }) }) getDictData({ code: 'WEIXIN_DEFAULT_IMGS', label: 'HOME_CLASS_B2' }).then(res => { this.setData({ HOME_CLASS_B2: res.data.code }) }) getDictData({ code: 'WEIXIN_DEFAULT_IMGS', label: 'HOME_CLASS_C' }).then(res => { this.setData({ HOME_CLASS_C: res.data.code }) }) }, jumpProVideo() { wx.navigateTo({ url: '/pages/productVideo/index', }) }, videoClick(e) { const { videourl, id } = e.currentTarget.dataset actionDo({ actionType: 'view', id }) let videoPlay = this.selectComponent('.videoPlay'); if (videoPlay) { videoPlay.startPlayVideo(videourl, this); } // wx.previewMedia({ // sources: [{ // url: videourl, // type: 'video' // }] // }) }, goserHeight: function (e) { const serviceHeight = e.detail.height this.setData({ serviceHeight: serviceHeight }) }, bannerbindload(e) { const { height, width } = e.detail let activeHeight = height * 670 / width this.setData({ bannerImgHeight: activeHeight }) }, consultbindload(e) { const { height, width } = e.detail let activeHeight = height * 670 / width this.setData({ consultImgHeight: activeHeight + 100 }) }, consultClick(e) { const item = e.currentTarget.dataset.id actionDo({ actionType: 'view', id: item.id }) if (item.contentType == 'link') { wx.navigateTo({ url: '/pages/webView/index', success: function (res) { // 通过eventChannel向被打开页面传送数据 res.eventChannel.emit('acceptDataFromOpenerPage', { link: item.content, title: item.title }) } }) } else { wx.navigateTo({ url: '/pages/consult/detail?id=' + item.id, }) } // wx.navigateTo({ // url: '/pages/consult/detail?id=' + id // }) }, bannerClick(e) { const { id } = e.currentTarget.dataset const item = e.currentTarget.dataset.item console.log('item', item); if (item.openType) { actionDo({ actionType: 'view', id: item.id }) } if (item.openType == 'video') { wx.previewMedia({ sources: [{ url: item.openContent, type: 'video' }] }) } if (item.openType == 'link') { wx.navigateTo({ url: '/pages/webView/index', success: function (res) { res.eventChannel.emit('acceptDataFromOpenerPage', { link: item.openContent || item.content }); } }) } if (item.openType == 'page') { getApp().globalData.catalogCode = item.openContent wx.switchTab({ url: '/pages/discover/discover' }) } // getHomeBannerDetail({id}) }, seriveClick(e) { const { id, title } = e.currentTarget.dataset if (title === '专属客服') { wx.navigateTo({ url: `/pages/kefu/index?title=${title}&id=${id}`, }) } else { wx.navigateTo({ url: `/pages/kefu/service?title=${title}&id=${id}`, }) } }, jumpProConsult() { wx.switchTab({ url: '/pages/consult/consult', }) }, /** * 生命周期函数--监听页面初次渲染完成 */ bindVideoPlay() { const { id } = this.data.productVideo[0] actionDo({ actionType: 'view', id }) }, hdBtn() { this.setData({ showWhiteHead: true, open: true, font_color: "#000000", sty: '', topHeadStyle: 1, desc: false }) }, touchStart: function (e) { touchDot = e.touches[0].pageY; }, touchMove: function (e) { var touchMove = e.touches[0].pageY; if (touchMove - touchDot <= 0 && this.data.top <= 1 && this.data.desc) { this.setData({ showWhiteHead: true, open: false, desc: false }) setTimeout(() => { this.setData({ open: true, sty: '' }) }, 1000) } if (touchMove - touchDot >= 50 && this.data.top <= 1 && !this.data.desc) { this.setData({ showWhiteHead: false, open: false, desc: true, sty: 'overflow: hidden;' }) } }, onPageScroll(e) { const { videoTop, windowHeight, videoPlay } = this.data if (e.scrollTop + 100 > videoTop - (windowHeight / 2) && videoPlay) { this.setData({ videoPlay: false }) let videoplay = wx.createVideoContext('myvideo', this) videoplay.play(); } let scrollTop = e.scrollTop / 100 if (scrollTop <= 0.1) { this.setData({ font_color: '#ffffff' }) } else if (scrollTop >= 0.1 && scrollTop < 0.2) { this.setData({ font_color: '#d0d0d0' }) } else if (scrollTop >= 0.2 && scrollTop < 0.3) { this.setData({ font_color: '#bdbdbd' }) } else if (scrollTop >= 0.3 && scrollTop < 0.4) { this.setData({ font_color: '#a1a1a1' }) } else if (scrollTop >= 0.4 && scrollTop < 0.5) { this.setData({ font_color: '#878787' }) } else if (scrollTop >= 0.5 && scrollTop < 0.6) { this.setData({ font_color: '#6d6d6d' }) } else if (scrollTop >= 0.6 && scrollTop < 0.7) { this.setData({ font_color: '#535353' }) } else if (scrollTop >= 0.7 && scrollTop < 0.8) { this.setData({ font_color: '#3b3b3b' }) } else if (scrollTop >= 0.8 && scrollTop < 0.9) { this.setData({ font_color: '#282828' }) } else if (scrollTop >= 0.9) { this.setData({ font_color: '#000000' }) } if (scrollTop > 0) { this.setData({ showWhiteHead: true }) } else { this.setData({ showWhiteHead: false }) } this.setData({ topHeadStyle: scrollTop, top: scrollTop }) }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { } })