From ebc6e7ee67f13e7aa311e737dfcb4c5caed112ee Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期四, 15 八月 2024 18:23:57 +0800
Subject: [PATCH] ll

---
 wechat_jiaxuan/components/disRealpic/index.js |  388 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 368 insertions(+), 20 deletions(-)

diff --git a/wechat_jiaxuan/components/disRealpic/index.js b/wechat_jiaxuan/components/disRealpic/index.js
index 17259f9..582dd03 100644
--- a/wechat_jiaxuan/components/disRealpic/index.js
+++ b/wechat_jiaxuan/components/disRealpic/index.js
@@ -1,34 +1,382 @@
-// components/disCase/index.js
+import {
+  getCataLogTagList,
+  getZhongTaiRealcasePage,
+  actionDo
+} from '../../api/index'
+import {
+  eventBus
+} from '../../utils/eventBus'
+let touchDot = 0
 Component({
   /**
    * 缁勪欢鐨勫睘鎬у垪琛�
    */
   properties: {
-
+    menuButtonInfo: Object
   },
   data: {
-    showParams: false,
-    activeStatus: '0'
+    acVid: '',
+    viewIdList: [],
+    // 鍔ㄧ敾
+    showTouch: true,
+    animationData: {},
+
+    activeIndex: -1,
+    activeParam: [],
+    selParam: '',
+    tagCodes: [],
+    isLoading: false,
+
+    cateList: [],
+    dataList: [],
+    pageNum: 1,
+    pageSize: 10,
+    query: '',
+    sortType: '',
+    catalogCode: 'real_case'
   },
-  methods: {
-    handleDetail(e) {
-      wx.navigateTo({
-        url: '/pages/detailDis/realpic',
+  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
+        })
       })
     },
-    changeShowParams(){
-      const showParams = !this.data.showParams
-      this.setData({showParams})
-      // this.setData({showTwo: false})
+  },
+  attached() {
+    this.getCatelist()
+    this.animation = wx.createAnimation({
+      duration: 600,
+      timingFunction: 'ease',
+    });
+  },
+  methods: {
+    bindscrolltoupper() {
+      this.setData({
+        showTouch: true
+      })
+      this.fadeIn();
     },
-    changeTwo(){
-      const showTwo = !this.data.showTwo
-      this.setData({showTwo})
-      this.setData({showOne: false})
+    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 activeStatus = e.currentTarget.dataset.status
-      this.setData({activeStatus})
-    }
+      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
+      })
+    },
   }
-})
+})
\ No newline at end of file

--
Gitblit v1.9.3