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