From c96612e8a63ecef9590be0f8b5199277ec94e5b9 Mon Sep 17 00:00:00 2001
From: 闫增涛 <1829501689@qq.com>
Date: 星期三, 18 九月 2024 18:43:12 +0800
Subject: [PATCH] 云学习购买目录,修改bug

---
 packageBookService/pages/bookServices/detail/buyResource/index.js |  414 +++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 231 insertions(+), 183 deletions(-)

diff --git a/packageBookService/pages/bookServices/detail/buyResource/index.js b/packageBookService/pages/bookServices/detail/buyResource/index.js
index dfee441..dd5debe 100644
--- a/packageBookService/pages/bookServices/detail/buyResource/index.js
+++ b/packageBookService/pages/bookServices/detail/buyResource/index.js
@@ -39,7 +39,6 @@
       productLinkPath: options.productLinkPath,
       refCode: options.refCode
     });
-    this.getResourceClass();
     this.getShoppingCartProductGet();
   },
 
@@ -141,12 +140,10 @@
             if (item.fileMap[item.file].protectType == 'Private') item.disabled = true
           }
         }
-        // 鍦ㄦ彃鍏ヨ繃绋嬩腑瀵规暟鎹繘琛屾帓搴�  骞朵笖鍘婚櫎宸茬粡棰嗗彇鍜岃喘涔扮殑
-        if (item.sysType == 'CmsFolder') {
-          newArr = this.insertAndSortObjectsByProductLinkPath(newArr, item)
-        } else if (item.sysType == 'CmsItem' && this.resourceIsBuy(item)) {
-          newArr = this.insertAndSortObjectsByProductLinkPath(newArr, item)
-        }
+        // 鍦ㄦ彃鍏ヨ繃绋嬩腑瀵规暟鎹繘琛屾帓搴�
+        newArr = this.insertAndSortObjectsByProductLinkPath(newArr, item)
+        // 鎻掕繘鏁扮粍鍚� 浠庡師鏁版嵁涓垹闄�
+        rootList = rootList.filter(nitem => nitem.id != item.id)
       }
     }
     //缁欐暟缁勯噷闈㈠啀娣诲姞涓�涓猚hildren鐨勭┖鏁扮粍
@@ -209,10 +206,44 @@
         flattenedArray.push(...childrenArray);
       }
     });
-    return flattenedArray.filter((item) => item.sysType == "CmsItem");
+    return flattenedArray;
   },
-
-  // 鏁欏璧勬簮 浜戝涔� 鑾峰彇
+  // 閫掑綊鏍戠粨鏋勶紝濡傛灉鐖剁骇鏈夐攢鍞柟寮�(鏈夋晥鏈�)锛屽幓鎺夋墍鏈夊瓙闆嗙殑閿�鍞柟寮�
+  clearTreeSealmethod(clearSaleMethod, tree) {
+    for (let item of tree) {
+      const saleData = item.saleMethod &&
+        item.saleMethod.length ?
+        item.saleMethod.find((citem) => citem.SaleType == 'Normal') : null
+      if (
+        ((saleData && new Date(saleData.EndDate).getTime() >= new Date().getTime() && new Date(saleData.BeginDate).getTime() <= new Date().getTime()) ||
+          clearSaleMethod) && item.children && item.children.length
+      ) {
+        item.children.forEach((ditem) => (ditem.saleMethod = []))
+      }
+      if (item.children && item.children.length)
+        this.clearTreeSealmethod(
+          saleData && new Date(saleData.EndDate).getTime() >= new Date().getTime() && new Date(saleData.BeginDate).getTime() <= new Date().getTime(),
+          item.children
+        )
+    }
+    return tree
+  },
+  // 鍕鹃�夌鐢�
+  handleTreeCheck(tree) {
+    for (const item of tree) {
+      const saleData = item.saleMethod &&
+        item.saleMethod.length ?
+        item.saleMethod.find((citem) => citem.SaleType == 'Normal') : undefined
+      if (saleData && new Date(saleData.EndDate).getTime() >= new Date().getTime() && new Date(saleData.BeginDate).getTime() <= new Date().getTime()) {
+        item.disabled = false
+      } else {
+        item.disabled = true
+      }
+      if (item.children && item.children.length) this.handleTreeCheck(item.children)
+    }
+    return tree
+  },
+  //  鑾峰彇浜戝涔�
   getResourceDataList(type) {
     this.setData({
       loading: true,
@@ -251,65 +282,45 @@
         });
       }
       let list = []
-      // 娴嬭瘯 6浣�// 姝e紡 5浣�//  娴嬭瘯璋冪敤浼�20锛屽唴閮�7  姝e紡璋冪敤浼�17 鍐呴儴浼�6
-      //鏁欏璧勬簮 浜戝涔�
-      if (
-        type.refCode == "jsek_teachingResources" ||
-        type.refCode == "jsek_cloudLearning"
-      ) {
-        res.datas.cmsDatas[0].datas.forEach((item) => {
-          item.checked = false;
-          if (item.sysType == 'CmsItem') {
-            // 鏁欏璧勬簮 绫诲瀷鍚嶇О璧嬪��
-            this.data.resourceClassList.forEach((type) => {
-              if (type.value == item.resourcesClassification)
-                item.resourceClass = type.name;
-            });
-            item.isbuy = this.isShowNeedBuy(item);
-            item.isShopCar = this.isShoppingCart(item);
-          }
+      res.datas.cmsDatas[0].datas.forEach((item) => {
+        item.checked = false;
+        // if (item.sysType == 'CmsItem') {
+        //   item.isbuy = this.resourceIsBuy(item);
+        //   item.isShopCar = this.isShoppingCart(item);
+        // }
+      });
+      // 鏄剧ず 闇�瑕佽喘涔扮殑鍜岄渶瑕佸厤璐归鍙栫殑
+      this.getTreeList(res.datas.cmsDatas[0].datas, list, query.cmsPath)
+      list = this.ensureTreeConsistency(list)
+      list = this.changeResourceChildren(list)
+      list = this.clearTreeSealmethod(false, list)
+      list = this.handleTreeCheck(list)
+      this.handleTreeData(list).forEach(item => {
+        item.isbuy = this.resourceIsBuy(item);
+        item.isShopCar = this.isShoppingCart(item);
+      })
+      console.log('淇敼鍚庝簯', list);
+      let result = [];
+      let arr = res.datas.cmsDatas[0].datas.filter(
+        (item) => item.saleMethod[0]
+      );
+      let freeIds = arr.filter((item) => {
+        return item.saleMethod[0].Price == 0;
+      });
+      if (!freeIds.length)
+        this.setData({
+          isshowDrawBtn: false,
         });
-        // 鏄剧ず 闇�瑕佽喘涔扮殑鍜岄渶瑕佸厤璐归鍙栫殑
-        this.getTreeList(res.datas.cmsDatas[0].datas, list, query.cmsPath)
-        list = this.ensureTreeConsistency(list)
-        list = this.changeResourceChildren(list)
-        console.log('淇敼鍚庝簯', list);
-        let result = [];
-        if (type.refCode == "jsek_teachingResources") {
-          this.findChildIds(list, result);
-          this.setData({
-            teach: list,
-            loading: false,
-            openTeachids: result,
-          });
-        } else if (type.refCode == "jsek_cloudLearning") {
-          let arr = this.handleTreeData(list).filter(
-            (item) => item.saleMethod[0]
-          );
-          let freeIds = arr.filter((item) => {
-            return item.saleMethod[0].Price == 0;
-          });
-          if (!freeIds.length)
-            this.setData({
-              isshowDrawBtn: false,
-            });
-          this.findChildIds(list, result);
-          this.setData({
-            learn: list,
-            loading: false,
-            openLearnids: result,
-          });
-        }
-      }
+      this.findChildIds(list, result);
+      this.setData({
+        learn: list,
+        loading: false,
+        openLearnids: result,
+      });
     })
   },
 
   async getBookInfo(id) {
-    this.setData({
-      "mockData'.id": 0,
-      "mockData.price": 0,
-      "mockData.count": 0,
-    });
     const query = {
       path: "*",
       queryType: "*",
@@ -376,48 +387,73 @@
   // 鍒ゆ柇璧勬簮鏄惁璐拱
   resourceIsBuy(data) {
     if (data.saleMethod && data.saleMethod.length) {
-      const isSHow = this.data.buyIdList.some(
-        (item) => item == data.saleMethod[0].Id
+      const saleData = data.saleMethod.find((item) => item.SaleType == 'Normal')
+      if (saleData.State == 'Disable') return false
+      const isShow = this.data.buyIdList.some(
+        (item) => item == saleData.Id
       );
-      return !isSHow;
+      // 宸茬粡璐拱
+      if (isShow) return false
+      // 鏈喘涔帮紝鏌ョ湅閿�鍞柟寮忔槸鍚﹁繃鏈�
+      if (!isShow) {
+        const flag = new Date(saleData.EndDate).getTime() >= new Date().getTime() &&
+          new Date(saleData.BeginDate).getTime() <= new Date().getTime()
+        if (flag) {
+          // 涓鸿繃鏈� 锛岄渶瑕佽喘涔�
+          return true
+        } else {
+          // 宸茶繃鏈� 鏃犻渶璐拱
+          return false
+        }
+      }
     } 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;
-    }
-  },
   // 鍒ゆ柇璧勬簮鍔犲叆璐墿杞︽寜閽槸鍚︽樉绀�
   isShoppingCart(data) {
     if (data.saleMethod && data.saleMethod.length) {
-      if (data.saleMethod[0].Price <= 0) return false;
+      const saleData = data.saleMethod.find((item) => item.SaleType == 'Normal')
+      // 鍏堝垽鏂槸鍚﹀厤璐�
+      if (saleData.Price <= 0) return false
       // 鍐嶅垽鏂槸鍚﹁喘涔�
-      const isBuy = this.data.buyIdList.some(
-        (item) => item == data.saleMethod[0].Id
-      );
+      const isBuy = this.data.buyIdList.some((item) => item == saleData.Id)
       if (isBuy) {
         // 璐拱浜�
-        return false;
+        return false
       } else {
         // 鍒ゆ柇鏄惁鍔犲叆璐墿杞�
-        const isSHow = this.data.shoppingCartGetId.some(
-          (item) => item == data.saleMethod[0].Id
-        );
-        return !isSHow;
+        const isShow = this.data.shoppingCartGetId.some((item) => item == saleData.Id)
+        if (isShow) return false
+        // 鏈喘涔帮紝鏌ョ湅閿�鍞柟寮忔槸鍚﹁繃鏈�
+        if (!isShow) {
+          const flag = new Date(saleData.EndDate).getTime() >= new Date().getTime() &&
+            new Date(saleData.BeginDate).getTime() <= new Date().getTime()
+          if (flag) {
+            // 涓鸿繃鏈� 锛岄渶瑕佽喘涔�
+            return true
+          } else {
+            // 宸茶繃鏈� 鏃犻渶璐拱
+            return false
+          }
+        }
       }
+      // if (data.saleMethod[0].Price <= 0) return false;
+      // // 鍐嶅垽鏂槸鍚﹁喘涔�
+      // const isBuy = this.data.buyIdList.some(
+      //   (item) => item == data.saleMethod[0].Id
+      // );
+      // if (isBuy) {
+      //   // 璐拱浜�
+      //   return false;
+      // } else {
+      //   // 鍒ゆ柇鏄惁鍔犲叆璐墿杞�
+      //   const isSHow = this.data.shoppingCartGetId.some(
+      //     (item) => item == data.saleMethod[0].Id
+      //   );
+      //   return !isSHow;
+      // }
     } else {
       return false;
     }
@@ -450,18 +486,6 @@
       }
     }
   },
-  // 鑾峰彇璧勬簮鎵�灞炲垎绫�
-  getResourceClass() {
-    let query = {
-      refCodes: ["resourcesClassification"],
-    };
-    app.MG.store.getProductTypeField(query).then((res) => {
-      this.setData({
-        resourceClassList: JSON.parse(res[0].config).option,
-      });
-
-    });
-  },
   checkAll() {
     const child = this.selectComponent("#tree");
     child.checkAll();
@@ -474,87 +498,90 @@
         title: '鏆傛棤鏁版嵁',
       })
     }
-    let saleMethodIds = [];
-    let requests = [];
-    let item = [];
-    let selectAllId = [];
-    const child = this.selectComponent("#tree");
-    item = child.data.superiorPurchaseSaleMethodId;
-    const sonItem = child.data.sonPurchaseSaleMethodId;
-    let selectAll = child.data.selectAll;
-    if (selectAll) {
-      selectAll.forEach((item) => {
-        if (item.saleMethod != 0) {
-          selectAllId.push(item.saleMethod[0].Id);
-        }
-      });
-      app.MG.store
-        .initOrder({
-          requests: selectAllId.map((id) => ({
-            saleMethodId: id,
-            count: 1,
-          })),
-        })
-        .then((res) => {
-          if (res) {
-            wx.navigateTo({
-              url: "/pages/cart/paymentPage/index?orderNumber=" + res.orderNumber,
-            });
-            selectAllId = [];
-            child.setData({
-              selectAll: [],
-            });
-          }
-        });
-    }
-    if (item) {
-      // 鎷垮埌id
-      item.forEach((items) => {
-        if (items.saleMethod != 0) {
-          saleMethodIds.push(items.saleMethod[0].Id);
-        }
-      });
-      app.MG.store
-        .initOrder({
-          requests: saleMethodIds.map((id) => ({
-            saleMethodId: id,
-            count: 1,
-          })),
-        })
-        .then((res) => {
-          if (res) {
-            wx.navigateTo({
-              url: "/pages/cart/paymentPage/index?orderNumber=" + res.orderNumber,
-            });
+    // 淇敼鍚庢柟娉�
+    const checkData = this.handleTreeData(this.data.learn).filter(item => item.checked == true)
+    console.log('閫変腑', checkData);
+    // let saleMethodIds = [];
+    // let requests = [];
+    // let item = [];
+    // let selectAllId = [];
+    // const child = this.selectComponent("#tree");
+    // item = child.data.superiorPurchaseSaleMethodId;
+    // const sonItem = child.data.sonPurchaseSaleMethodId;
+    // let selectAll = child.data.selectAll;
+    // if (selectAll.length) {
+    //   selectAll.forEach((item) => {
+    //     if (item.saleMethod != 0) {
+    //       selectAllId.push(item.saleMethod[0].Id);
+    //     }
+    //   });
+    //   app.MG.store
+    //     .initOrder({
+    //       requests: selectAllId.map((id) => ({
+    //         saleMethodId: id,
+    //         count: 1,
+    //       })),
+    //     })
+    //     .then((res) => {
+    //       if (res) {
+    //         wx.navigateTo({
+    //           url: "/pages/cart/paymentPage/index?orderNumber=" + res.orderNumber,
+    //         });
+    //         selectAllId = [];
+    //         child.setData({
+    //           selectAll: [],
+    //         });
+    //       }
+    //     });
+    // }
+    // if (item) {
+    //   // 鎷垮埌id
+    //   item.forEach((items) => {
+    //     if (items.saleMethod != 0) {
+    //       saleMethodIds.push(items.saleMethod[0].Id);
+    //     }
+    //   });
+    //   app.MG.store
+    //     .initOrder({
+    //       requests: saleMethodIds.map((id) => ({
+    //         saleMethodId: id,
+    //         count: 1,
+    //       })),
+    //     })
+    //     .then((res) => {
+    //       if (res) {
+    //         wx.navigateTo({
+    //           url: "/pages/cart/paymentPage/index?orderNumber=" + res.orderNumber,
+    //         });
 
-            child.setData({
-              superiorPurchaseSaleMethodId: [], // 浣跨敤setData鏂规硶娓呯┖sonPurchaseSaleMethodId鏁版嵁
-            });
-          }
-        });
-    }
-    if (item.length == 0 && sonItem) {
-      app.MG.store
-        .initOrder({
-          requests: sonItem.map((id) => ({
-            saleMethodId: id,
-            count: 1,
-          })),
-        })
-        .then((res) => {
-          if (res) {
-            wx.navigateTo({
-              url: "/pages/cart/paymentPage/index?orderNumber=" + res.orderNumber,
-            });
-            this.setData({
-              paymentPage: true,
-            });
-            child.setData({
-              sonPurchaseSaleMethodId: [], // 浣跨敤setData鏂规硶娓呯┖sonPurchaseSaleMethodId鏁版嵁
-            });
-          }
-        });
-    }
+    //         child.setData({
+    //           superiorPurchaseSaleMethodId: [], // 浣跨敤setData鏂规硶娓呯┖sonPurchaseSaleMethodId鏁版嵁
+    //         });
+    //       }
+    //     });
+    // }
+    // if (item.length == 0 && sonItem) {
+    //   app.MG.store
+    //     .initOrder({
+    //       requests: sonItem.map((id) => ({
+    //         saleMethodId: id,
+    //         count: 1,
+    //       })),
+    //     })
+    //     .then((res) => {
+    //       if (res) {
+    //         wx.navigateTo({
+    //           url: "/pages/cart/paymentPage/index?orderNumber=" + res.orderNumber,
+    //         });
+    //         this.setData({
+    //           paymentPage: true,
+    //         });
+    //         child.setData({
+    //           sonPurchaseSaleMethodId: [], // 浣跨敤setData鏂规硶娓呯┖sonPurchaseSaleMethodId鏁版嵁
+    //         });
+    //       }
+    //     });
+    // }
   },
 
   // 绔犺妭鍕鹃�夋柟娉�
@@ -609,5 +636,26 @@
     this.setData({
       learn: updated
     })
+  },
+  upDateShopCar(id, tree) {
+    for (let item of tree) {
+      if (item.id == id) {
+        item.isShopCar = false
+      } else {
+        if (item.children && item.children.length) this.upDateShopCar(id, item.children)
+      }
+    }
+    return tree
+  },
+  // 鏇存柊璐墿杞﹀浘鏍�
+  updateCloudLearning(e) {
+    const {
+      id
+    } = e.detail
+    console.log(id);
+    const list = this.upDateShopCar(id, this.data.learn)
+    this.setData({
+      learn: list
+    })
   }
 });
\ No newline at end of file

--
Gitblit v1.9.1