From 9e5a84a4e41d7ab2cb820c7f77122f69a9d036dd Mon Sep 17 00:00:00 2001
From: 闫增涛 <1829501689@qq.com>
Date: 星期二, 26 三月 2024 20:15:09 +0800
Subject: [PATCH] 图书列表、详情代码修改

---
 packageBookService/pages/bookServices/detail/components/tree/index.js |  171 ++++++++++++++++++++++++++++++++------------------------
 1 files changed, 98 insertions(+), 73 deletions(-)

diff --git a/packageBookService/pages/bookServices/detail/components/tree/index.js b/packageBookService/pages/bookServices/detail/components/tree/index.js
index 6a672a3..a8c4313 100644
--- a/packageBookService/pages/bookServices/detail/components/tree/index.js
+++ b/packageBookService/pages/bookServices/detail/components/tree/index.js
@@ -26,33 +26,59 @@
       type: String,
       value: ''
     },
-    openTeachids: {
+    openIds: {
       type: Array,
-      value: ''
-    },
-    openLearnids: {
-      type: Array,
-      value: ""
+      value: [],
+    }
+    ,
+    isShowCheck: {
+      type: Boolean,
+      value: false,
     }
   },
   data: {
-    activeValues: [0],
+    activeValues: [1, 2],
     webpageSrc: '',
     cloudShoppingCart: []
   },
-  onShow() {
+  ready() {
+    this.setData({
 
+    })
+    console.log('鍑嗗');
+  },
+  onShow() {
+  },
+  observers: {
+    'openIds': function (newValue) {
+      var myEventDetail = {
+      }
+      var myEventOption = {
+        bubbles: true,
+        composed: true
+      }
+      this.triggerEvent('handleTree', myEventDetail, myEventOption)
+    }
   },
 
-
   methods: {
+
+    handleList(tree) {
+      for (let index = 0; index < tree.length; index++) {
+        const item = tree[index];
+        if (item.sysType == 'CmsItem' && !item.checked) {
+
+        }
+        if (item.children && item.children.length > 0) {
+          this.handleList(item.children)
+        }
+      }
+    },
     // 鑺傜偣灞曞紑
     handleChange(e) {
-      // console.log(this.properties.treeList, 'this.properties.treeList');
       this.setData({
-        activeValues: e.detail.value,
+        openIds: e.detail.value,
       });
-      // console.log('浼犻��', this.properties.buyIds);
     },
     handleCheck(data) {
       for (let index = 0; index < data.length; index++) {
@@ -78,7 +104,8 @@
     // 鍒ゆ柇璧勬簮鏄惁璐拱
     resourceIsBuy(data) {
       if (data.saleMethod && data.saleMethod.length) {
-        const isSHow = buyIdList.value.some((item) => item == data.saleMethod[0].Id)
+        if (data.saleMethod[0].State == 'Disable') return false
+        const isSHow = this.properties.buyIds.some((item) => item == data.saleMethod[0].Id)
         return !isSHow
       } else {
         return false
@@ -86,22 +113,23 @@
     },
     // 璺宠浆闊宠棰戞挱鏀惧櫒
     goPlayer(e) {
-      console.log(e);
-      // debugger
+      if (this.properties.isShowCheck) return true
       const item = e.currentTarget.dataset.item
       const parent = e.currentTarget.dataset.parent
       let url
-      if (item.selectType == 'video') {
+      if (item.selectType == 'video' || item.learnSelectType == 'video') {
         url = '/packageDomain/pages/resourceDetails/myVideo/index'
-      } else if (item.selectType == 'audio') {
+      } else if (item.selectType == 'audio' || item.learnSelectType == 'audio') {
         url = '/packageDomain/pages/resourceDetails/myAudio/index'
       } else if (item.selectType == 'picture' || item.selectType == 'zip') {
         url = '/packageDomain/pages/resourceDetails/document/index'
       }
-
-      // else {
-      //   
-      // }
+      if (this.properties.tab == 'jsek_cloudLearning' && this.resourceIsBuy(item)) {
+        return wx.showToast({
+          icon: 'error',
+          title: '璇峰厛璐拱璇ヨ祫婧�',
+        })
+      }
       wx.navigateTo({
         url: `${url}?productLinkPath=${item.productLinkPath}&parentProductLinkPath=${parent.productLinkPath}&parentName=${parent.name}&activeId=${item.id}&bookId=${this.properties.bookInfo.id}&bookName=${this.properties.bookInfo.name}&cmsId=${this.properties.bookInfo.rootCmsItemId}`,
       })
@@ -180,15 +208,10 @@
     },
     // 鎷垮埌褰撳墠椤瑰瓙椤�
     flattenTree(tree) {
-
       let result = [];
-
       function flatten(node) {
-
         result.push(node);
-
         if (node.children && node.children.length > 0) {
-
           node.children.forEach(child => {
             flatten(child);
           });
@@ -202,35 +225,9 @@
       return result
     },
 
-
-
-    findAndUpdateItemById(tree, id) {
-      function findAndUpdate(node) {
-        if (node.id === id) {
-          node.check = true; // 灏嗙洰鏍囬」鐨� check 灞炴�ц缃负 true
-          return true; // 杩斿洖 true 琛ㄧず鎵惧埌浜嗙洰鏍囬」
-        }
-        if (node.children && node.children.length > 0) {
-          for (let child of node.children) {
-            if (findAndUpdate(child)) {
-              return true; // 濡傛灉鍦ㄥ瓙鑺傜偣涓壘鍒颁簡鐩爣椤癸紝鍒欑洿鎺ヨ繑鍥� true
-            }
-          }
-        }
-        return false; // 琛ㄧず鏈壘鍒扮洰鏍囬」
-      }
-
-      for (let node of tree) {
-        if (findAndUpdate(node)) {
-          break; // 濡傛灉鍦ㄩ《灞傝妭鐐逛腑鎵惧埌浜嗙洰鏍囬」锛岀洿鎺ラ��鍑哄惊鐜�
-        }
-      }
-    },
     // 鍙樹负true
     findAndUpdateItemsByIds(tree, ids) {
-
       function findAndUpdate(node) {
-
         if (ids.includes(node.id)) {
           // console.log(node, 'node');
           node.checked = !node.checked  // 灏嗙洰鏍囬」鐨� check 灞炴�ц缃负 true
@@ -250,26 +247,54 @@
       return tree; // 杩斿洖淇敼鍚庣殑瀹屾暣鏁扮粍
     },
 
+    checkResoucrceInfo(tree, id) {
+      function findAndUpdate(node) {
+        if (node.sysType == 'CmsFolder' && node.children.length > 0) {
+          for (let index = 0; index < node.children.length; index++) {
+            const element = node.children[index];
+            findAndUpdate(element)
+          }
+        }
+        else if (id == node.id && node.sysType == "CmsItem") {
+          node.checked = !node.checked  // 灏嗙洰鏍囬」鐨� check 灞炴�ц缃负 true
+        }
+      }
+      for (let node of tree) {
+        findAndUpdate(node); // 瀵规瘡涓《灞傝妭鐐规墽琛屾煡鎵惧拰鏇存柊鎿嶄綔
+      }
+      return tree; // 杩斿洖淇敼鍚庣殑瀹屾暣鏁扮粍
+    },
+
+    checkAll() {
+      const ids = []
+      const list = []
+      this.properties.treeList.forEach(item => {
+        if (item.children && item.children.length > 0) {
+          list.push(...this.flattenTree([item]))
+        }
+      })
+      list.forEach(item => {
+        ids.push(item.id)
+      })
+      const updataList = this.findAndUpdateItemsByIds(this.properties.treeList, ids);
+      this.setData({
+        treeList: updataList
+      })
+    },
+
     // 绔犺妭鍕鹃��
     checkResourceTitle(e) {
       // 杩欎釜鏃跺�檆hecked鐨勫�兼槸fals
       const item = e.currentTarget.dataset.item
-
       let list = this.flattenTree([item])
-
-
       let ids = []
       list.forEach(item => {
         ids.push(item.id)
       })
-
       const updatedTreeList = this.findAndUpdateItemsByIds(this.properties.treeList, ids);
-      // console.log(updatedTreeList, 'updatedTreeList');   //杩欎釜鏃跺�檆hecked鐨勫�煎氨鍙樻垚浜唗rue
-
       this.setData({
         treeList: updatedTreeList  // 鏇存柊 treeList 鏁版嵁
       });
-
       console.log(list, 'list');
       list.forEach(items => {
         console.log(items.checked, 'itesasd');
@@ -279,27 +304,20 @@
           })
         }
       })
-
       this.onCloudShoppingCart()
     },
     // 瀛愰」鍕鹃��
     checkResource(e) {
-      const item = e.currentTarget.dataset.item
-
-
-      // let list = this.flattenTree([item])
-      // console.log(list, 'list121');
-      // let ids = []
-      // list.forEach(items => {
-      //   console.log(items.id, 'itemsId');
-      //   ids.push(items.id)
-      // })
+      const citem = e.currentTarget.dataset.item
+      console.log(e);
+      const updataList = this.checkResoucrceInfo(this.properties.treeList, citem.id)
+      console.log(updataList);
+      this.setData({
+        treeList: updataList
+      })
     },
     // 鍔犲叆璐墿杞�
     async onCloudShoppingCart() {
-
-
-
       let requests = []
       const item = this.data.cloudShoppingCart
       console.log(item, 'item');
@@ -329,4 +347,11 @@
       // }
     },
   },
+  onCheckAllChange(e) {
+    debugger
+    console.log('checkbox', e.detail.value);
+    // this.setData({
+    //   checkAllValues: event.detail,
+    // });
+  }
 })
\ No newline at end of file

--
Gitblit v1.9.1