From eeaef4fa1a06616e41ae8013c95e99bb3895aac5 Mon Sep 17 00:00:00 2001
From: litian <C21AF165>
Date: 星期三, 17 四月 2024 18:10:10 +0800
Subject: [PATCH] 1

---
 packageBookService/pages/bookServices/detail/buyResource/index.js |   93 ++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 85 insertions(+), 8 deletions(-)

diff --git a/packageBookService/pages/bookServices/detail/buyResource/index.js b/packageBookService/pages/bookServices/detail/buyResource/index.js
index a6385ef..7d889d3 100644
--- a/packageBookService/pages/bookServices/detail/buyResource/index.js
+++ b/packageBookService/pages/bookServices/detail/buyResource/index.js
@@ -17,12 +17,15 @@
     paymentPage: false,
     superior: false,
     checkAllState: true,
+    productLinkPath: '',
+    refCode: ''
   },
 
   /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
    */
   onLoad(options) {
+    this.getBookInfo(options.bookId);
     const systInfo = wx.getSystemInfoSync();
     const menu = wx.getMenuButtonBoundingClientRect(); // 鑳跺泭淇℃伅
     const navBarHeight =
@@ -31,14 +34,11 @@
       barHeight: systInfo.statusBarHeight,
       navBarHeight: navBarHeight,
       bookId: options.bookId,
+      productLinkPath: options.productLinkPath,
+      refCode: options.refCode
     });
     this.getResourceClass();
-    this.getResourceData({
-      productLinkPath: options.productLinkPath,
-      refCode: options.refCode,
-    });
     this.getShoppingCartProductGet();
-    this.getBookInfo(options.bookId);
   },
 
   /**
@@ -148,6 +148,7 @@
                 openLearnids: result,
               });
             }
+            console.log(list, '浜戝缈�');
           } else {
             // 鏃犳暟鎹�
           }
@@ -197,6 +198,7 @@
         jsek_resourceBrief: [],
         jsek_link: [],
         accessType: [],
+        learnSelectType: [],
       },
       pading: {
         start: 0,
@@ -226,12 +228,12 @@
     });
     data.datas.cmsDatas[0].datas.forEach((item) => {
       item.checked = false;
-      item.isbuy = this.resourceIsBuy(item);
+      item.isbuy = this.isShowNeedBuy(item);
       item.isShopCar = this.isShoppingCart(item);
     });
     return data.datas.cmsDatas[0].datas;
   },
-  getBookInfo(id) {
+  async getBookInfo(id) {
     this.setData({
       "mockData'.id": 0,
       "mockData.price": 0,
@@ -269,12 +271,17 @@
         freeEpubPage: [], //epub璇曡鐧惧垎姣�
       },
     };
-    app.MG.store.getProductDetail(query).then(async (res) => {
+    await app.MG.store.getProductDetail(query).then(async (res) => {
       this.setData({
         bookDetail: res.datas,
         buyIdList: res.datas.purchasedSaleMethodIdList,
       });
+      this.getResourceData({
+        productLinkPath: this.data.productLinkPath,
+        refCode: this.data.refCode,
+      });
     });
+
   },
   // 鑾峰彇宸茶喘涔板晢鍝�
   getShoppingCartProductGet() {
@@ -301,6 +308,22 @@
       const isSHow = this.data.buyIdList.some(
         (item) => item == data.saleMethod[0].Id
       );
+      return !isSHow;
+    } else {
+      return false;
+    }
+  },
+
+  isShowNeedBuy(data) {
+    if (data.saleMethod && data.saleMethod.length) {
+      const isSHow = this.data.buyIdList.some(
+        (item) => item == data.saleMethod[0].Id
+      );
+      if (isSHow) {
+        return false;
+      } else {
+        return data.saleMethod[0].price > 0 ? true : false;
+      }
       return !isSHow;
     } else {
       return false;
@@ -455,4 +478,58 @@
         });
     }
   },
+
+  // 绔犺妭鍕鹃�夋柟娉�
+  findAndUpdateItemsByIds(tree, ids, state) {
+    function findAndUpdate(node) {
+      if (ids.includes(node.id)) {
+        // console.log(node, 'node');
+        node.checked = state; // 灏嗙洰鏍囬」鐨� check 灞炴�ц缃负 true
+      }
+      if (node.children && node.children.length > 0) {
+        for (let child of node.children) {
+          findAndUpdate(child); // 閫掑綊澶勭悊瀛愯妭鐐�
+        }
+      }
+    }
+    for (let node of tree) {
+      findAndUpdate(node); // 瀵规瘡涓《灞傝妭鐐规墽琛屾煡鎵惧拰鏇存柊鎿嶄綔
+    }
+    // console.log(tree, 'tree345');
+    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; // 杩斿洖淇敼鍚庣殑瀹屾暣鏁扮粍
+  },
+  // 绔犺妭鍕鹃�変簨浠�
+  changeListChecked(e) {
+    const ids = e.detail.ids
+    const state = e.detail.flag
+    const updated = this.findAndUpdateItemsByIds(this.data.learn, ids, state)
+    this.setData({
+      learn: updated
+    })
+  },
+  // 鍗曚釜鍕鹃�変簨浠�
+  changeResourceChecked(e) {
+    const id = e.detail.id
+    const updated = this.checkResoucrceInfo(this.data.learn, id)
+    this.setData({
+      learn: updated
+    })
+  }
 });
\ No newline at end of file

--
Gitblit v1.9.1