| | |
| | | // pages/index/index.js |
| | | 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, |
| | | showWhiteHead: true, |
| | | topHeadBorder: false, |
| | | |
| | | bannerList: [ |
| | | {imgurl: ''}, |
| | | {imgurl: 'adsa.png'}, |
| | | {imgurl: 'adsa.png'}, |
| | | {imgurl: 'adsa.png'}, |
| | | ], |
| | | 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, |
| | |
| | | interval: 3000, |
| | | duration: 500 |
| | | }, |
| | | serviceList: [], |
| | | testUrl: '', |
| | | HOME_CLASS_A: '', |
| | | HOME_CLASS_B: '', |
| | | HOME_CLASS_B2: '', |
| | | HOME_CLASS_C: '', |
| | | }, |
| | | |
| | | toSearch() {}, |
| | | 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', |
| | | }) |
| | | }, |
| | | /** |
| | | * 生命周期函数--监听页面初次渲染完成 |
| | | */ |
| | | onReady() { |
| | | |
| | | bindVideoPlay() { |
| | | const { |
| | | id |
| | | } = this.data.productVideo[0] |
| | | actionDo({ |
| | | actionType: 'view', |
| | | id |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面显示 |
| | | */ |
| | | onShow() { |
| | | |
| | | 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 |
| | | }) |
| | | }, |
| | | /** |
| | | * 生命周期函数--监听页面隐藏 |
| | | */ |