From c99f9976a5ef9d8974105feb8fc0580a10adf98c Mon Sep 17 00:00:00 2001
From: QYF-GitLab1 <1940665526@qq.com>
Date: 星期一, 23 十二月 2024 14:58:49 +0800
Subject: [PATCH] 111

---
 packageBookService/pages/bookServices/detail/buyResource/index.js |  377 ++++++++++++++++++++++++++---------------------------
 1 files changed, 186 insertions(+), 191 deletions(-)

diff --git a/packageBookService/pages/bookServices/detail/buyResource/index.js b/packageBookService/pages/bookServices/detail/buyResource/index.js
index 62d3e99..cec5617 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();
   },
 
@@ -77,6 +76,7 @@
    * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜�
    */
   onShareAppMessage() {},
+  onShareTimeline() {},
   changeCheckAll(e) {
     this.setData({
       checkAllState: e.detail.value,
@@ -140,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鐨勭┖鏁扮粍
@@ -208,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,
@@ -227,22 +259,21 @@
         SysType: 'CmsFolder',
         // 璧勬簮绫诲瀷锛岃瘯璇绘枃浠讹紝鏄惁鍏佽涓嬭浇绛夊弬鏁�
         learnSelectType: [],
-        selectType: [],
-        freeFile: [],
-        file: [],
-        protectedFile: [],
-        resourcesClassification: [],
-        isDownload: [],
-        jsek_resourceBrief: [],
-        jsek_link: [],
-        jsek_questionBank: []
+        // freeFile: [],
+        // file: [],
+        // protectedFile: [],
+        // resourcesClassification: [],
+        // isDownload: [],
+        // jsek_resourceBrief: [],
+        // jsek_link: [],
+        // jsek_questionBank: []
       },
       pading: {
         start: 0,
         size: 999
       },
     }
-    app.MG.store.getProductDetail(query).then((res) => {
+    app.MG.store.getProductDetailNoChildren(query).then((res) => {
       if (!res.datas.cmsDatas[0].datas.length) {
         return this.setData({
           noResources: true,
@@ -250,65 +281,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: "*",
@@ -375,48 +386,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;
     }
@@ -449,18 +485,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();
@@ -473,87 +497,33 @@
         title: '鏆傛棤鏁版嵁',
       })
     }
+    // 淇敼鍚庢柟娉�
+    const checkData = this.handleTreeData(this.data.learn).filter(item => item.checked == true)
+    console.log('閫変腑', checkData);
+    if (!checkData.length) return wx.showToast({
+      icon: 'error',
+      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);
+    checkData.forEach((items) => {
+      if (items.saleMethod.length) {
+        saleMethodIds.push(items.saleMethod.find(citem => citem.SaleType == 'Normal').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,
+          });
         }
       });
-      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鏁版嵁
-            });
-          }
-        });
-    }
   },
 
   // 绔犺妭鍕鹃�夋柟娉�
@@ -599,6 +569,8 @@
     const updated = this.findAndUpdateItemsByIds(this.data.learn, ids, state)
     this.setData({
       learn: updated
+    }, () => {
+      wx.hideLoading()
     })
   },
   // 鍗曚釜鍕鹃�変簨浠�
@@ -607,6 +579,29 @@
     const updated = this.checkResoucrceInfo(this.data.learn, id)
     this.setData({
       learn: updated
+    }, () => {
+      wx.hideLoading()
+    })
+  },
+  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