From d41f1f707dc643b726a42b9d2a63b186dd9e4f28 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期二, 06 八月 2024 16:12:38 +0800
Subject: [PATCH] ll

---
 wechat_jiaxuan/components/disRealpic/index.js |  326 ++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 254 insertions(+), 72 deletions(-)

diff --git a/wechat_jiaxuan/components/disRealpic/index.js b/wechat_jiaxuan/components/disRealpic/index.js
index de55855..443057c 100644
--- a/wechat_jiaxuan/components/disRealpic/index.js
+++ b/wechat_jiaxuan/components/disRealpic/index.js
@@ -1,4 +1,12 @@
-import { getCataLogTagList, getZhongTaiRealcasePage, actionDo } from '../../api/index'
+import {
+  getCataLogTagList,
+  getZhongTaiRealcasePage,
+  actionDo
+} from '../../api/index'
+import {
+  eventBus
+} from '../../utils/eventBus'
+let touchDot = 0
 Component({
   /**
    * 缁勪欢鐨勫睘鎬у垪琛�
@@ -7,11 +15,15 @@
     menuButtonInfo: Object
   },
   data: {
+    // 鍔ㄧ敾
+    showTouch: true,
+    animationData: {},
+
     activeIndex: -1,
     activeParam: [],
     selParam: '',
     tagCodes: [],
-
+    isLoading: false,
 
     cateList: [],
     dataList: [],
@@ -21,16 +33,87 @@
     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: {
-    getCatelist(){
-      const { catalogCode } = this.data
+    bindscrolltoupper() {
+      this.setData({
+        showTouch: true
+      })
+      this.fadeIn();
+    },
+    touchstart(e) {
+      touchDot = e.detail.scrollTop;
+    },
+    touchmove(e) {
+      var touchMove = e.detail.scrollTop;
+      if (touchDot - touchMove > 16) {
+        touchDot = touchMove
+        this.fadeOut();
+      }
+      if (touchDot - touchMove > 16) {
+        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){
+        if (res.data && res.data.length > 0) {
           this.setData({
             cateList: res.data
           })
@@ -41,27 +124,61 @@
       })
     },
     getList() {
-      const { sortType, query, tagCodes, pageNum, pageSize,catalogCode } = this.data
+      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
+        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({
-          dataList: [...this.data.dataList, ...res.data.records],
-          total: res.data.total,
+          isLoading: false
         })
       })
     },
     scrolltoupper() {
-      this.setData({ pageNum: 1,datalist: [],total: 0})
+      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 })
+      const {
+        total,
+        dataList,
+        pageNum
+      } = this.data
+      if (total > dataList.length) {
+        this.setData({
+          pageNum: pageNum + 1
+        })
         this.getList()
-      }else{
+      } else {
         wx.showToast({
           title: '鏆傛棤鏇村鏁版嵁',
           icon: 'none'
@@ -69,29 +186,46 @@
       }
     },
     videoClick(e) {
-      const { videourl } = e.currentTarget.dataset
-      wx.previewMedia({
-        sources: [{ url: videourl, type: 'video' }]
-      })
+      const {
+        videourl
+      } = e.currentTarget.dataset
+
+      let videoPlay = this.selectComponent('.videoPlay');
+      if (videoPlay) {
+        videoPlay.startPlayVideo(videourl, this);
+      }
+      console.log(videourl + "-------------------------------------")
+      // wx.previewMedia({
+      //   sources: [{ url: videourl, type: 'video' }]
+      // })
     },
-    priviewFull(e){
+    priviewFull(e) {
       const item = e.currentTarget.dataset.item
       console.log('item', item);
       wx.navigateTo({
         url: '/pages/webView/index?link=' + item.openContent,
-        success: function(res) {
+        success: function (res) {
           // 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹�
-          res.eventChannel.emit('acceptDataFromOpenerPage', { link: item.openContent, title: item.title })
+          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.setData({
+        sortType
+      })
+      this.setData({
+        pageNum: 1,
+        dataList: [],
+        total: 0
+      })
       this.getList()
     },
-    handleAction(e){
+    handleAction(e) {
       const actionType = e.currentTarget.dataset.code
       const id = e.currentTarget.dataset.id
       actionDo({
@@ -104,89 +238,137 @@
     handleDetail(e) {
       const item = e.currentTarget.dataset.item
       console.log('item', item);
-      if(item.openType == 'video'){
-        wx.previewMedia({
-          sources: [{ url: item.openContent, type: 'video' }]
-        })
+      if (item.openType == 'video') {
+
+        let videoPlay = this.selectComponent('.videoPlay');
+        if (videoPlay) {
+          videoPlay.startPlayVideo(item.openContent, this);
+        }
+        // wx.previewMedia({
+        //   sources: [{ url: item.openContent, type: 'video' }]
+        // })
       }
-      if(item.openType == 'link'){
+      if (item.openType == 'link') {
         wx.navigateTo({
           url: '/pages/webView/index?link=' + item.openContent,
-          success: function(res) {
+          success: function (res) {
             // 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹�
-            res.eventChannel.emit('acceptDataFromOpenerPage', { link: item.openContent})
+            res.eventChannel.emit('acceptDataFromOpenerPage', {
+              link: item.openContent
+            })
           }
         })
       }
-      if(item.openType == 'page'){
+      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 {
+        cateList,
+        tagCodes,
+        activeParam,
+        activeIndex
+      } = this.data
       const index = tagCodes.indexOf(code)
-      
-      if(index === -1){
-        if(activeParam && activeParam.length > 0){
-          activeParam.forEach(item => {
-            const indexTemp = tagCodes.indexOf(item.labelValueCode)
-            if(indexTemp > -1){
-              tagCodes.splice(indexTemp, 1)
-            }
-          })
-        }
-        tagCodes.push(code)
-        cateList[activeIndex].paramIndex = paramIndex
-        cateList[activeIndex].paramName = activeParam[paramIndex].labelValueName
-      }else{
-        tagCodes.splice(index, 1)
-        cateList[activeIndex].paramIndex = -1
-        cateList[activeIndex].paramName = ''
+      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({ tagCodes, cateList })
-      console.log('tagCodes', tagCodes);
+      // this.setData({ pageNum: 1,dataList: [],total: 0})
+      this.setData({
+        cateList
+      })
     },
     cancelParam() {
-      const { cateList } = this.data
+      const {
+        cateList
+      } = this.data
       cateList.forEach(item => {
-        item.paramIndex = -1
-        item.paramName = ''
+        item.tempParamIndex = item.paramIndex
+        item.tempParamName = item.paramName
+        item.tempParamCode = item.paramCode
       })
-      this.setData({ tagCodes: [],datalist:[],pageNum:1, activeParam: [],cateList,activeIndex: -1 })
-      this.getList()
+      this.setData({
+        activeParam: [],
+        cateList,
+        activeIndex: -1
+      })
     },
     bindblur() {
-      this.setData({ pageNum: 1,dataList: [],total: 0})
+      this.setData({
+        pageNum: 1,
+        dataList: [],
+        total: 0
+      })
       this.getList()
     },
     subParam() {
-      this.setData({ activeParam: [] })
-      this.setData({ pageNum: 1,activeIndex: -1,dataList: [],total: 0})
+      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
+    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({ 
+      if (activeIndex === this.data.activeIndex) {
+        this.setData({
+          activeIndex: -1,
+          activeParam: [],
+          selParam: ''
+        })
+      } else {
+        this.setData({
           activeIndex,
           activeParam: cateList[activeIndex].valueVos
         })
       }
-      
+
       // this.setData({showTwo: false})
     },
-    changeTwo(){
+    changeTwo() {
       const showTwo = !this.data.showTwo
-      this.setData({showTwo})
-      this.setData({showOne: false})
+      this.setData({
+        showTwo
+      })
+      this.setData({
+        showOne: false
+      })
     },
   }
-})
+})
\ No newline at end of file

--
Gitblit v1.9.3