import { getCataLogTagList, getZhongTaiRealcasePage, actionDo } from '../../api/index' import { eventBus } from '../../utils/eventBus' let touchDot = 0 Component({ /** * 组件的属性列表 */ properties: { menuButtonInfo: Object }, data: { acVid: '', viewIdList: [], // 动画 showTouch: true, animationData: {}, activeIndex: -1, activeParam: [], selParam: '', tagCodes: [], isLoading: false, cateList: [], dataList: [], pageNum: 1, pageSize: 10, query: '', sortType: '', catalogCode: 'real_case' }, pageLifetimes: { show: function () { // 页面被展示 console.log('组件被展示'); eventBus.once('realpicDeBack', (info) => { const dataList = this.data.dataList dataList.forEach(item => { if (item.id === info.id) { if (item.isCollection != info.isCollection) { if (!item.isCollection) { item.collectCount = (item.collectCount || 0) + 1 } else if (item.collectCount > 0) { item.collectCount = (item.collectCount || 0) - 1 } } item.isCollection = info.isCollection item.viewCount++ } }) this.setData({ dataList }) }) }, }, attached() { this.getCatelist() this.animation = wx.createAnimation({ duration: 600, timingFunction: 'ease', }); }, methods: { bindscrolltoupper() { this.setData({ showTouch: true }) this.fadeIn(); }, touchstart(e) { touchDot = e.detail.scrollTop; }, touchmove(e) { var touchMove = e.detail.scrollTop; if(touchMove - touchDot > 24){ touchDot = touchMove this.fadeOut(); } if(touchDot - touchMove > 24){ touchDot = touchMove setTimeout(() => { this.setData({ showTouch: true }) this.fadeIn(); }, 200) } }, fadeIn: function () { this.animation.opacity(1).step(); this.setData({ animationData: this.animation.export() }); }, fadeOut: function () { this.animation.opacity(0).step(); this.setData({ animationData: this.animation.export() }); setTimeout(() => { this.setData({ showTouch: false }); }, 200); // 动画持续时间 }, getCatelist() { const { catalogCode } = this.data getCataLogTagList({ catalogCode }).then(res => { if (res.data && res.data.length > 0) { this.setData({ cateList: res.data }) setTimeout(() => { this.getList() }, 300) } }) }, getList() { if (this.data.isLoading) { return } this.setData({ isLoading: true }) const { sortType, query, tagCodes, pageNum, pageSize, catalogCode } = this.data getZhongTaiRealcasePage({ catalogCode, tagCodes, pageNum, pageSize, sortType, query }).then(res => { if (res.data && res.data.records) { this.setData({ dataList: [...this.data.dataList, ...res.data.records], total: res.data.total, }) } }).finally(() => { this.setData({ isLoading: false }) }) }, scrolltoupper() { this.setData({ pageNum: 1, datalist: [], total: 0 }) this.getList() }, scrolltolower() { console.log('触底事件'); const { total, dataList, pageNum } = this.data if (total > dataList.length) { this.setData({ pageNum: pageNum + 1 }) this.getList() } else { wx.showToast({ title: '暂无更多数据', icon: 'none' }) } }, videoClick(e) { const { id } = e.currentTarget.dataset const { dataList, acVid, viewIdList } = this.data const index = viewIdList.findIndex(i => i === 'video' + id) if(acVid){ if('video' + id != acVid){ wx.createVideoContext(acVid, this).pause() wx.createVideoContext('video' + id, this).play() this.setData({ acVid: 'video' + id }) } }else{ this.setData({ acVid: 'video' + id }) wx.createVideoContext('video' + id, this).play() } dataList.forEach(ite => { if(id === ite.id && index === -1){ ite.viewCount += 1 viewIdList.push('video' + id) actionDo({ actionType: 'view', id: id }) this.setData({ viewIdList }) } }) this.setData({ dataList }) }, priviewFull(e) { const item = e.currentTarget.dataset.item console.log('item', item); wx.navigateTo({ url: '/pages/webView/index?link=' + item.openContent, success: function (res) { // 通过eventChannel向被打开页面传送数据 res.eventChannel.emit('acceptDataFromOpenerPage', { link: item.openContent, title: item.title }) } }) }, statusChange(e) { const sortType = e.currentTarget.dataset.status this.setData({ sortType }) this.setData({ pageNum: 1, dataList: [], total: 0 }) this.getList() }, handleAction(e) { const actionType = e.currentTarget.dataset.code const id = e.currentTarget.dataset.id actionDo({ actionType, id }).then(res => { this.getList() }) }, handleDetail(e) { const item = e.currentTarget.dataset.item console.log('item', item); if (item.openType == 'video') { return } if (item.openType == 'link') { wx.navigateTo({ url: '/pages/webView/index?link=' + item.openContent, success: function (res) { // 通过eventChannel向被打开页面传送数据 res.eventChannel.emit('acceptDataFromOpenerPage', { link: item.openContent }) } }) } if (item.openType == 'page') { wx.navigateTo({ url: '/pages/detailDis/realpic?id=' + item.id, }) } }, tagClick(e) { if (this.data.isLoading) { return } const code = e.currentTarget.dataset.code const paramIndex = e.currentTarget.dataset.index const { cateList, tagCodes, activeParam, activeIndex } = this.data const index = tagCodes.indexOf(code) if (cateList[activeIndex].tempParamIndex == null || cateList[activeIndex].tempParamIndex != paramIndex) { cateList[activeIndex].tempParamIndex = paramIndex cateList[activeIndex].tempParamName = activeParam[paramIndex].labelValueName cateList[activeIndex].tempParamCode = code } else { // tagCodes.splice(index, 1) cateList[activeIndex].tempParamIndex = -1 cateList[activeIndex].tempParamName = null cateList[activeIndex].tempParamCode = null } // this.setData({ pageNum: 1,dataList: [],total: 0}) this.setData({ cateList }) }, cancelParam() { const { cateList } = this.data cateList.forEach(item => { item.tempParamIndex = item.paramIndex item.tempParamName = item.paramName item.tempParamCode = item.paramCode }) this.setData({ activeParam: [], cateList, activeIndex: -1 }) }, bindblur() { this.setData({ pageNum: 1, dataList: [], total: 0 }) this.getList() }, subParam() { const { cateList } = this.data var codes = [] cateList.forEach(item => { item.paramIndex = item.tempParamIndex item.paramName = item.tempParamName item.paramCode = item.tempParamCode if (item.tempParamIndex > -1 && item.tempParamCode) { codes.push(item.tempParamCode) } }) this.setData({ activeParam: [], tagCodes: codes }) this.setData({ pageNum: 1, activeIndex: -1, dataList: [], total: 0 }) this.getList() }, changeShowParams(e) { const { cateList } = this.data const activeIndex = e.currentTarget.dataset.index if (activeIndex === this.data.activeIndex) { this.setData({ activeIndex: -1, activeParam: [], selParam: '' }) } else { this.setData({ activeIndex, activeParam: cateList[activeIndex].valueVos }) } // this.setData({showTwo: false}) }, changeTwo() { const showTwo = !this.data.showTwo this.setData({ showTwo }) this.setData({ showOne: false }) }, } })