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 ++++---
 packageDomain/pages/sampleBookList/index.wxml                                            |    4 
 packageDomain/pages/sampleBookList/index.wxss                                            |   11 
 packageBookService/pages/bookServices/detail/components/teachResource/index.json         |    3 
 packageBookService/pages/bookServices/detail/index.wxml                                  |  423 ++++++-
 assets/js/middleGround/api/store.js                                                      |   71 
 pages/digitalCourses/digitalCoursesDetails/index.wxss                                    |    2 
 pages/digitalCourses/index.js                                                            |    9 
 packageBookService/pages/bookServices/detail/components/tree/index.js                    |  235 ++--
 packageBookService/pages/bookServices/detail/buyResource/index.wxml                      |   34 
 packageDomain/pages/sampleBookList/index.js                                              |   12 
 packageBookService/pages/bookServices/detail/index.js                                    |  460 +++----
 packageBookService/pages/bookServices/detail/components/teachResource/index.js           |    3 
 pages/cart/index.wxml                                                                    |   73 +
 packageDomain/pages/publickBookForm/index.wxss                                           |    2 
 packageDomain/pages/publickBookForm/index.wxml                                           |  169 ++
 packageBookService/pages/bookServices/detail/components/learnResource/learnResource.wxml |   45 
 pages/digitalCourses/digitalCoursesDetails/index.js                                      |   16 
 packageBookService/pages/bookServices/detail/components/teachResource/index.wxss         |    4 
 packageBookService/pages/bookServices/detail/components/teachResource/index.wxml         |   71 +
 packageDomain/pages/sampleBookList/applicationForm/index.js                              |    4 
 packageDomain/pages/resourceDetails/myAudio/index.js                                     |   94 -
 pages/retrievalPage/index.wxml                                                           |  275 ++++
 packageDomain/pages/sampleBookList/applicationForm/index.wxss                            |   22 
 packageDomain/pages/publickBookForm/index.js                                             |   19 
 pages/digitalCourses/index.wxml                                                          |   73 +
 packageDomain/pages/sampleBookList/applicationForm/index.wxml                            |  209 ++-
 packageBookService/pages/bookServices/detail/components/tree/index.wxss                  |   16 
 packageBookService/pages/bookServices/detail/components/tree/index.wxml                  |  310 ++++-
 packageBookService/pages/bookServices/detail/components/learnResource/learnResource.js   |    6 
 pages/cart/index.js                                                                      |    6 
 packageDomain/pages/resourceDetails/myAudio/index.wxml                                   |   10 
 32 files changed, 2,053 insertions(+), 1,052 deletions(-)

diff --git a/assets/js/middleGround/api/store.js b/assets/js/middleGround/api/store.js
index d73f9e8..8a8f185 100644
--- a/assets/js/middleGround/api/store.js
+++ b/assets/js/middleGround/api/store.js
@@ -480,48 +480,45 @@
         }]
       })
     }
-
     let token = wx.getStorageSync(tokenKey) ? wx.getStorageSync(tokenKey) : '';
     let url = token ? '/store/api/ApiQueryProductByAppUser' : '/store/api/ApiQueryProduct'
     return request({
-        url: url,
-        method: 'post',
-        data: body,
-        cancelToken: source?.token
-      })
-      .then((resp) => {
-        if (resp.length > 0) {
-          const data = resp[0]
-          if (data.datas.length) {
-
-            data.datas[0].subDatas = data.datas[0].cmsDatas
-            const datas = handleDetailQueryRequestData({
-              item: data.datas[0],
-              fields,
-              itemFields: {
-                ...itemFields,
-                ...linkFields
-              },
-              path,
-              coverSize,
-              handelEBooK
-            })
-            return {
-              datas,
-              total: data.totalCount
-            }
-          } else {
-            return {
-              datas: [],
-              total: 0
-            }
+      url: url,
+      method: 'post',
+      data: body,
+      cancelToken: source?.token
+    }).then((resp) => {
+      if (resp.length > 0) {
+        const data = resp[0]
+        if (data.datas.length) {
+          data.datas[0].subDatas = data.datas[0].cmsDatas
+          const datas = handleDetailQueryRequestData({
+            item: data.datas[0],
+            fields,
+            itemFields: {
+              ...itemFields,
+              ...linkFields
+            },
+            path,
+            coverSize,
+            handelEBooK
+          })
+          return {
+            datas,
+            total: data.totalCount
+          }
+        } else {
+          return {
+            datas: [],
+            total: 0
           }
         }
-        return {
-          datas: [],
-          total: 0
-        }
-      })
+      }
+      return {
+        datas: [],
+        total: 0
+      }
+    })
   },
   // 鑾峰彇浼樻儬鍒稿垪琛�
   getChannelPromoteCodeList(data) {
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
diff --git a/packageBookService/pages/bookServices/detail/buyResource/index.wxml b/packageBookService/pages/bookServices/detail/buyResource/index.wxml
index 05c706b..9f03c28 100644
--- a/packageBookService/pages/bookServices/detail/buyResource/index.wxml
+++ b/packageBookService/pages/bookServices/detail/buyResource/index.wxml
@@ -1,7 +1,5 @@
 <!-- 璧勬簮璐拱椤甸潰 -->
 
-
-
 <view>
   <!--瀵艰埅鍖哄煙 -->
   <view style="width: 100%; height: {{barHeight}}px; "></view>
@@ -9,7 +7,11 @@
     <view class="flex">
       <view class="back-icon">
         <!-- <t-icon name="chevron-left" size="30" data-name="{{item}}" bind:click="goBack" /> -->
-        <image src="/static/images/digitalTextbooks/chevron-left.png" bind:tap="goBack" mode="aspectFit" />
+        <image
+          src="/static/images/digitalTextbooks/chevron-left.png"
+          bind:tap="goBack"
+          mode="aspectFit"
+        />
       </view>
       <view class="navbar-title">璧勬簮璐拱</view>
     </view>
@@ -19,16 +21,36 @@
   <!-- 鍐呭 -->
 
   <view class="buy-resource" wx:if="{{!loading}}">
-    <tree id="tree" paymentPage="{{paymentPage}}" superior="{{superior}}" treeList="{{learn}}" learnList="{{learn}}" tab="{{'jsek_cloudLearning'}}" isShowCheck="{{true}}" openIds="{{openLearnids}}" checkAllState="{{checkAllState}}" bind:changeCheckAll="changeCheckAll" bind:changeListChecked="changeListChecked" bind:changeResourceChecked="changeResourceChecked" />
+    <tree
+      id="tree"
+      paymentPage="{{paymentPage}}"
+      superior="{{superior}}"
+      treeList="{{learn}}"
+      learnList="{{learn}}"
+      tab="{{'jsek_cloudLearning'}}"
+      isShowCheck="{{true}}"
+      openIds="{{openLearnids}}"
+      checkAllState="{{checkAllState}}"
+      bind:changeCheckAll="changeCheckAll"
+      bind:changeListChecked="changeListChecked"
+      bind:changeResourceChecked="changeResourceChecked"
+      bind:updateCloudLearning="updateCloudLearning"
+    />
     <view class="noData" wx:if="{{noData}}">
       <!-- <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" /> -->
       <empty />
     </view>
   </view>
   <view class="page-bottom">
-    <t-button theme="primary" size="large" class="btn-buy" bindtap="batchPurchase">鎵归噺璐拱</t-button>
+    <t-button
+      theme="primary"
+      size="large"
+      class="btn-buy"
+      bindtap="batchPurchase"
+      >鎵归噺璐拱</t-button
+    >
   </view>
 </view>
 
 <import src="index.skeleton.wxml" />
-<template is="skeleton" wx:if="{{loading}}" />
\ No newline at end of file
+<template is="skeleton" wx:if="{{loading}}" />
diff --git a/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.js b/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.js
index 716486a..185e615 100644
--- a/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.js
+++ b/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.js
@@ -18,7 +18,11 @@
     },
     isGoBuyResource: {
       type: Boolean
-    }
+    },
+    isShowBuyCloundMenu: {
+      type: Boolean,
+      default: false
+    },
   },
 
   /**
diff --git a/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.wxml b/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.wxml
index b8d8177..09bd8fc 100644
--- a/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.wxml
+++ b/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.wxml
@@ -1,21 +1,56 @@
 <!--pages/bookServices/detail/components/learnResource/learnResource.wxml-->
-<view class="learnResource" theme="primary" style="justify-content: {{!isshowDrawBtn ? 'flex-end' : ''}};">
-  <t-button wx:if="{{isshowDrawBtn}}" loading="{{receive}}" class="btn" theme="primary" style="height: 72rpx; font-size: 28rpx" t-class="external-class" bind:tap="getFreeResource">
+<view
+  class="learnResource"
+  theme="primary"
+  style="justify-content: {{!isshowDrawBtn ? 'flex-end' : ''}};"
+>
+  <t-button
+    wx:if="{{isshowDrawBtn}}"
+    loading="{{receive}}"
+    class="btn"
+    theme="primary"
+    style="height: 72rpx; font-size: 28rpx"
+    t-class="external-class"
+    bind:tap="getFreeResource"
+  >
     <view slot="content" class="btn-content">
       <image src=" /static/images/bookService/detail/yijianlingqu.png" />
       <text>棰嗗彇鏌ョ湅</text>
     </view>
   </t-button>
-  <t-button loading="{{buy}}" class="btn" theme="primary" bind:tap="goBuyResource" style="height: 72rpx; font-size: 28rpx;margin: {{!isshowDrawBtn ? '0 20rpx' : ''}}">
+  <t-button
+    wx:if="{{!isShowBuyCloundMenu}}"
+    loading="{{buy}}"
+    class="btn"
+    theme="primary"
+    bind:tap="goBuyResource"
+    style="height: 72rpx; font-size: 28rpx;margin: {{!isshowDrawBtn ? '0 20rpx' : ''}}"
+  >
     <view slot="content" class="btn-content">
       <image src="/static/images/bookService/detail/yijiangoumai.png" />
       <text>璧勬簮璐拱</text>
     </view>
   </t-button>
-  <t-button class="btn" theme="primary" style="height: 72rpx; font-size: 28rpx; margin: 0 20rpx" bind:tap="goLearnTask">
+  <t-button
+    theme="primary"
+    class="btn"
+    style="height: 72rpx; font-size: 28rpx"
+    wx:if="{{isShowBuyCloundMenu}}"
+  >
+    <view slot="content" class="btn-content">
+      <image src="/static/images/bookService/detail/yijiangoumai.png" />
+      <text>鍏ㄩ儴璐拱</text>
+    </view>
+  </t-button>
+  <t-button
+    class="btn"
+    theme="primary"
+    style="height: 72rpx; font-size: 28rpx; margin: 0 20rpx"
+    bind:tap="goLearnTask"
+  >
     <view slot="content" class="btn-content">
       <image src="/static/images/bookService/detail/renwudan锛廼con.png" />
       <text>瀛︿範浠诲姟鍗�</text>
     </view>
   </t-button>
-</view>
\ No newline at end of file
+</view>
diff --git a/packageBookService/pages/bookServices/detail/components/teachResource/index.js b/packageBookService/pages/bookServices/detail/components/teachResource/index.js
index fe2a9d0..2f38a73 100644
--- a/packageBookService/pages/bookServices/detail/components/teachResource/index.js
+++ b/packageBookService/pages/bookServices/detail/components/teachResource/index.js
@@ -16,6 +16,9 @@
       type: String,
       value: "",
     },
+    treeList: {
+      type: Array,
+    }
   },
   data: {
     showRejectDialog: false,
diff --git a/packageBookService/pages/bookServices/detail/components/teachResource/index.json b/packageBookService/pages/bookServices/detail/components/teachResource/index.json
index 338cd87..27e8ebd 100644
--- a/packageBookService/pages/bookServices/detail/components/teachResource/index.json
+++ b/packageBookService/pages/bookServices/detail/components/teachResource/index.json
@@ -3,6 +3,7 @@
   "usingComponents": {
     "t-image": "tdesign-miniprogram/image/image",
     "t-button": "tdesign-miniprogram/button/button",
-    "t-dialog": "tdesign-miniprogram/dialog/dialog"
+    "t-dialog": "tdesign-miniprogram/dialog/dialog",
+    "empty": "/components/empty/index"
   }
 }
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/detail/components/teachResource/index.wxml b/packageBookService/pages/bookServices/detail/components/teachResource/index.wxml
index 7c7a4da..dd78ff9 100644
--- a/packageBookService/pages/bookServices/detail/components/teachResource/index.wxml
+++ b/packageBookService/pages/bookServices/detail/components/teachResource/index.wxml
@@ -1,38 +1,81 @@
-<!-- <view class="teach-btn"> -->
-  <!-- <t-button theme="primary" style="width: 120px; height: 36px" class="btn" bind:tap="uploadBtn">
+<view class="teach-btn">
+  <t-button
+    theme="primary"
+    style="width: 120px; height: 36px"
+    class="btn"
+    bind:tap="uploadBtn"
+  >
     <view slot="content" class="btn-content">
-      <image src="/static/images/bookService/detail/upload.png" mode="aspectFit" ></image>
+      <image
+        src="/static/images/bookService/detail/upload.png"
+        mode="aspectFit"
+      ></image>
       <text>涓婁紶璧勬簮</text>
     </view>
-  </t-button> -->
+  </t-button>
   <!-- <t-button theme="primary" style="width: 120px; height: 36px">
     <t-image src="/static/images/bookService/detail/download.png"></t-image>
     鎵归噺涓嬭浇
   </t-button> -->
-<!-- </view> -->
-<view class="applyResult  {{applyState == 'none' ? 'applyNone' : applyState == 'Normal' ? 'applyPass' : applyState == 'WaitAudit' ? 'applying' :applyState == 'Reject' ? 'applyReject' :'' }}">
-  <view wx:if="{{applyState == 'WaitAudit'}}">璧勬簮涓嬭浇鐢宠姝e湪瀹℃牳涓紝璇疯�愬績绛夊緟锛�</view>
+</view>
+<view
+  class="applyResult  {{applyState == 'none' ? 'applyNone' : applyState == 'Normal' ? 'applyPass' : applyState == 'WaitAudit' ? 'applying' :applyState == 'Reject' ? 'applyReject' :'' }}"
+  wx:if="{{treeList.length}}"
+>
+  <view wx:if="{{applyState == 'WaitAudit'}}"
+    >璧勬簮涓嬭浇鐢宠姝e湪瀹℃牳涓紝璇疯�愬績绛夊緟锛�</view
+  >
   <view wx:if="{{applyState == 'Normal'}}">
     <view>
-      璧勬簮涓嬭浇鐢宠宸查�氳繃<text wx:if="{{deadline}}">锛屾湁鏁堟棩鏈熸埅鑷筹細{{ deadline }}</text></view>
+      璧勬簮涓嬭浇鐢宠宸查�氳繃<text wx:if="{{deadline}}"
+        >锛屾湁鏁堟棩鏈熸埅鑷筹細{{ deadline }}</text
+      ></view
+    >
     <view style="display: flex; align-items: center; margin-top: 10rpx">
       <text>涓嬭浇璧勬簮璇峰埌PC绔含甯堟櫤鏁�</text>
       <text bind:tap="copy" class="copy-text">澶嶅埗</text>
     </view>
   </view>
-  <view wx:if="{{applyState == 'Reject'}}">璧勬簮涓嬭浇闇�瑕佺敵璇凤紝璇峰厛鐢宠骞剁瓑寰呭鏍搁�氳繃鍚庢柟鍙笅杞�</view>
+  <view wx:if="{{applyState == 'Reject'}}"
+    >璧勬簮涓嬭浇闇�瑕佺敵璇凤紝璇峰厛鐢宠骞剁瓑寰呭鏍搁�氳繃鍚庢柟鍙笅杞�</view
+  >
   <view wx:if="{{applyState == 'none'}}">
     璧勬簮涓嬭浇闇�瑕佺敵璇凤紝璇峰厛鐢宠骞剁瓑寰呭鏍搁�氳繃鍚庢柟鍙笅杞�
   </view>
   <view class="btn-box">
-    <t-button wx:if="{{applyState == 'Reject'}}" bind:tap="checkCause" style="height: 50rpx" class="rejectBtn" bind:tap="showDialog">鏌ョ湅鍘熷洜</t-button>
-    <t-button wx:if="{{applyState == 'none' || applyState == 'Reject'}}" theme="primary" bind:tap="applyResource" class="applyBtn" style="height: 50rpx">鐢宠</t-button>
+    <t-button
+      wx:if="{{applyState == 'Reject'}}"
+      bind:tap="checkCause"
+      style="height: 50rpx"
+      class="rejectBtn"
+      bind:tap="showDialog"
+      >鏌ョ湅鍘熷洜</t-button
+    >
+    <t-button
+      wx:if="{{applyState == 'none' || applyState == 'Reject'}}"
+      theme="primary"
+      bind:tap="applyResource"
+      class="applyBtn"
+      style="height: 50rpx"
+      >鐢宠</t-button
+    >
   </view>
 </view>
+<view class="noData" wx:else>
+  <empty />
+</view>
 <!-- 鏈�氳繃鍘熷洜 -->
-<t-dialog visible="{{showRejectDialog}}" title="鎻愮ず" confirm-btn="{{ confirmBtn }}" bind:confirm="closeDialog" class="notPassed">
+<t-dialog
+  visible="{{showRejectDialog}}"
+  title="鎻愮ず"
+  confirm-btn="{{ confirmBtn }}"
+  bind:confirm="closeDialog"
+  class="notPassed"
+>
   <view slot="content">
-    <text class="cause-title">璧勬簮涓嬭浇鐢宠鏈�氳繃锛岃В鍐抽棶棰樺悗鍙偣鍑烩�滅敵璇封�濇寜閽噸鏂版彁浜ょ敵璇�</text>
+    <text class="cause-title"
+      >璧勬簮涓嬭浇鐢宠鏈�氳繃锛岃В鍐抽棶棰樺悗鍙偣鍑烩�滅敵璇封�濇寜閽噸鏂版彁浜ょ敵璇�</text
+    >
     <view class="cause-content">鍘熷洜:{{ rejectCause || '-'}}</view>
   </view>
-</t-dialog>
\ No newline at end of file
+</t-dialog>
diff --git a/packageBookService/pages/bookServices/detail/components/teachResource/index.wxss b/packageBookService/pages/bookServices/detail/components/teachResource/index.wxss
index 5698193..5987f10 100644
--- a/packageBookService/pages/bookServices/detail/components/teachResource/index.wxss
+++ b/packageBookService/pages/bookServices/detail/components/teachResource/index.wxss
@@ -112,4 +112,8 @@
 
 .btn text {
   font-size: 28rpx;
+}
+
+.noData {
+  height: 300rpx;
 }
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/detail/components/tree/index.js b/packageBookService/pages/bookServices/detail/components/tree/index.js
index 4194ed3..d957cf7 100644
--- a/packageBookService/pages/bookServices/detail/components/tree/index.js
+++ b/packageBookService/pages/bookServices/detail/components/tree/index.js
@@ -51,26 +51,23 @@
     deadline: {
       type: String,
     },
+    cloundMenuIsBuy: {
+      type: Boolean
+    }
   },
   data: {
-    sonPurchaseSaleMethodId: "",
-    superiorPurchaseSaleMethodId: [],
     activeValues: [1, 2],
     webpageSrc: "",
     cloudShoppingCart: [],
-    selectAll: [],
     shoppingCart: true,
     stop: false,
     cart: true,
-    canExecute: true
+    canExecute: true,
+    purchaseList: []
   },
   ready() {},
 
-  onLoad() {
-    this.setData({
-      sonPurchaseSaleMethodId: [],
-    });
-  },
+  onLoad() {},
   observers: {
     treeList: function (newValue) {
       const list = [];
@@ -94,9 +91,22 @@
         }
       }
     },
+    // 閬嶅巻鏍戠粨鏋勮浆鎹负鏁扮粍鏂规硶
+    handleTreeData(array) {
+      const flattenedArray = [];
+      array.forEach((node) => {
+        // 灏嗗綋鍓嶈妭鐐规坊鍔犲埌灞曞紑鐨勬暟缁勪腑
+        flattenedArray.push(node);
+        // 閫掑綊澶勭悊瀛愯妭鐐�
+        if (node.children && node.children.length > 0) {
+          const childrenArray = this.handleTreeData(node.children);
+          flattenedArray.push(...childrenArray);
+        }
+      });
+      return flattenedArray;
+    },
     // 鑺傜偣灞曞紑
     handleChange(e) {
-      console.log(e.detail.value);
       this.setData({
         openIds: e.detail.value,
       });
@@ -124,11 +134,25 @@
     // 鍒ゆ柇璧勬簮鏄惁璐拱
     resourceIsBuy(data) {
       if (data.saleMethod && data.saleMethod.length) {
-        if (data.saleMethod[0].State == "Disable") return false;
+        const saleData = data.saleMethod.find((item) => item.SaleType == 'Normal')
+        if (saleData.State == 'Disable') return false
         const isSHow = this.properties.buyIds.some(
-          (item) => item == data.saleMethod[0].Id
+          (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;
       }
@@ -146,24 +170,17 @@
       const parentName = parent ? parent.name : "鏁欏璧勬簮";
       // 璧勬簮璐拱椤甸潰(鍙睍绀烘湭璐拱璧勬簮) 鐐瑰嚮涓嶈烦杞�
       if (this.properties.isShowCheck) return false;
-      if (
-        this.properties.tab == "jsek_cloudLearning" &&
-        this.resourceIsBuy(item)
-      ) {
-        return wx.showToast({
-          icon: "error",
-          title: item.saleMethod[0].Price > 0 ?
-            "璇峰厛璐拱璇ヨ祫婧�" : "璇峰厛鐐瑰嚮棰嗗彇鏌ョ湅鎸夐挳",
-        });
-      }
-      if (this.properties.tab == "jsek_teachingResources" && (item.file || item.freeFile)) {
-        let file = item.fileMap[item.file] ? item.fileMap[item.file] : item.fileMap[item.freeFile]
-        if (file && file.protectType !== "Public") {
-          return wx.showToast({
-            icon: "error",
-            title: "璧勬簮涓嶅彲鐢紝璇疯仈绯荤鐞嗗憳",
-          });
+      if (item.selectType == "webpage") {
+        // 缃戦〉绫诲瀷璺宠浆鍒扮綉鍧�澶嶅埗椤碉紝鍥犱负url浼犲弬涓嶈兘浼� 甯﹀弬鏁扮殑缃戠粶鍦板潃锛屾墍浠ユ澶勮鎶婄綉缁滃湴鍧�閲岀殑浼犲弬鎽樺嚭鏉ワ紝鏀惧埌url閲�
+        let urlData = ''
+        const flags = item.jsek_link.indexOf("?")
+        if (flags > -1) {
+          urlData = item.jsek_link.slice(flags + 1, item.jsek_link.length)
         }
+        url = '/packageBookService/pages/bookServices/linkPage/index'
+        return wx.navigateTo({
+          url: urlData ? url + `?path=${item.jsek_link.slice(0,flags)}` + '&' + urlData : url + `?path=${item.jsek_link}`
+        })
       }
       if (!item.file && !item.freeFile && !item.protectedFile) {
         return wx.showToast({
@@ -184,20 +201,49 @@
           })
         }
       }
-      let url;
-      if (item.selectType == "webpage") {
-        // 缃戦〉绫诲瀷璺宠浆鍒扮綉鍧�澶嶅埗椤碉紝鍥犱负url浼犲弬涓嶈兘浼� 甯﹀弬鏁扮殑缃戠粶鍦板潃锛屾墍浠ユ澶勮鎶婄綉缁滃湴鍧�閲岀殑浼犲弬鎽樺嚭鏉ワ紝鏀惧埌url閲�
-        let urlData = ''
-        const flags = item.jsek_link.indexOf("?")
-        if (flags > -1) {
-          urlData = item.jsek_link.slice(flags + 1, item.jsek_link.length)
+      if (this.properties.tab == "jsek_teachingResources" && (item.file || item.freeFile)) {
+        let file = item.fileMap[item.file] ? item.fileMap[item.file] : item.fileMap[item.freeFile]
+        if (file && file.protectType !== "Public") {
+          return wx.showToast({
+            icon: "error",
+            title: "璧勬簮涓嶅彲鐢紝璇疯仈绯荤鐞嗗憳",
+          });
         }
-        url = '/packageBookService/pages/bookServices/linkPage/index'
-        return wx.navigateTo({
-          url: urlData ? url + `?path=${item.jsek_link.slice(0,flags)}` + '&' + urlData : url + `?path=${item.jsek_link}`
-        })
       }
-
+      if (this.properties.tab == "jsek_cloudLearning") {
+        // 鍒ゆ柇鐖剁骇鎴栬嚜韬槸鍚﹁喘涔�
+        var myEventOption = {
+          bubbles: true,
+          composed: true,
+        };
+        // 鍑哄彂鍒ゆ柇浜戝涔犳槸鍚﹁喘涔板垽鏂�
+        this.triggerEvent("getCloundIsBuy", {}, myEventOption)
+        if (!this.properties.cloundMenuIsBuy) {
+          // 浜戝涔犳湭璐拱锛屾煡鎵句互璐拱鐨勭洰褰曞拰璧勬簮鏈韩
+          const learn = this.handleTreeData(this.properties.treeList).filter(
+            (citem) => citem.saleMethod &&
+            citem.saleMethod.find((ditem) => ditem.SaleType == 'Normal') &&
+            new Date(citem.saleMethod.find((ditem) => ditem.SaleType == 'Normal').EndDate).getTime() >= new Date().getTime() &&
+            new Date(citem.saleMethod.find((ditem) => ditem.SaleType == 'Normal').BeginDate).getTime() <= new Date().getTime() &&
+            item.productLinkPath.includes(citem.productLinkPath)
+          )
+          // 璧勬簮鍜岀埗绾х洰褰曢兘鏃犻攢鍞柟寮�
+          // if (!learn.length) return wx.showToast({
+          //   icon: 'error',
+          //   title: '鏆傛湭寮�鍞�',
+          // })
+          const buyList = learn.filter((citem) => this.properties.buyIds.includes(citem.saleMethod.find((ditem) => ditem.SaleType == 'Normal').Id))
+          // 璧勬簮鍜屾湰韬兘鏈喘涔�
+          if (!buyList.length) {
+            const itemSaleMethod = item.saleMethod && item.saleMethod.length ? item.saleMethod.find(citem => citem.SaleType == 'Normal') : undefined
+            return wx.showToast({
+              icon: 'error',
+              title: itemSaleMethod && itemSaleMethod.Price == 0 ? '璇峰厛棰嗗彇璧勬簮' : '璇峰厛璐拱璧勬簮',
+            })
+          }
+        }
+      }
+      let url;
       if (item.selectType == "video" || item.learnSelectType == "video") {
         url = "/packageDomain/pages/resourceDetails/myVideo/index";
       }
@@ -237,7 +283,6 @@
           result.push(...item.children);
         }
       }
-      console.log(this.properties.treeList, "this.properties.treeList");
       this.properties.treeList.forEach((item) => {
         findChildren(item);
       });
@@ -258,7 +303,6 @@
       tree.forEach((node) => {
         flatten(node);
       });
-      // console.log(result, 'result');
       return result;
     },
 
@@ -266,7 +310,6 @@
     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) {
@@ -281,63 +324,31 @@
       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 = [];
+      let list = [];
       let checked = "";
       this.properties.treeList.forEach((item) => {
         if (item.children && item.children.length > 0) {
           list.push(...this.flattenTree([item]));
         }
       });
+      list = list.filter(item => !item.disabled)
       list.forEach((item) => {
         ids.push(item.id);
         checked = item.checked;
       });
-      // const flag =
-      //   list.findIndex((item) => item.checked == false) > -1 ? true : false;
       const flag = this.properties.checkAllState;
-      // const updataList = this.findAndUpdateItemsByIds(
-      //   this.properties.treeList,
-      //   ids,
-      //   flag
-      // );
-      // this.setData({
-      //   treeList: updataList,
-      // });
-
       var myEventDetail = {
         ids,
         flag,
-      }; // detail瀵硅薄锛屾彁渚涚粰浜嬩欢鐩戝惉鍑芥暟
+      };
       var myEventOption = {
         bubbles: true,
         composed: true,
-      }; // 瑙﹀彂浜嬩欢鐨勯�夐」
+      };
       this.triggerEvent("changeListChecked", myEventDetail, myEventOption);
-
-      if (!checked) {
-        this.setData({
-          selectAll: list,
-        });
-      }
       var myEventDetail = {
         value: !flag,
       }; // detail瀵硅薄锛屾彁渚涚粰浜嬩欢鐩戝惉鍑芥暟
@@ -352,23 +363,18 @@
     checkResourceTitle(e) {
       const flag = e.detail.checked;
       // 杩欎釜鏃跺�檆hecked鐨勫�兼槸fals
-      let checkResourceTitleList = [];
       const item = e.currentTarget.dataset.item;
       const parent = this.findParentById(this.properties.learnList, item.id);
-      let childrenList;
+      let childrenList = [];
       let flagNum;
       if (parent)
         childrenList = parent.children.filter((citem) => citem.id !== item.id);
-      if (childrenList)
-        flagNum = childrenList.findIndex((item) => item.checked == false);
+      flagNum = childrenList.findIndex((item) => item.checked == false);
       let list = this.flattenTree([item]);
+      list = list.filter(item => !item.disabled)
       let ids = [];
       list.forEach((item) => {
-        if (
-          item.sysType == "CmsFolder" ||
-          (item.sysType == "CmsItem" && item.saleMethod.length)
-        )
-          ids.push(item.id);
+        ids.push(item.id)
       });
       var myEventDetail = {
         ids,
@@ -378,26 +384,22 @@
         bubbles: true,
         composed: true,
       }; // 瑙﹀彂浜嬩欢鐨勯�夐」
+      // 鍘诲嬀閫夌偣鍑荤洰褰曠殑瀛愰」
       this.triggerEvent("changeListChecked", myEventDetail, myEventOption);
-      if (flagNum == -1) {
+      // 鍘诲嬀閫夌偣鍑荤洰褰曠殑鐖堕」
+      if (flagNum == -1 && parent && !parent.disabled) {
         let checkedState;
         var myEventDetail = {
           ids: [parent.id],
           flag,
-        }; // detail瀵硅薄锛屾彁渚涚粰浜嬩欢鐩戝惉鍑芥暟
+        };
         var myEventOption = {
           bubbles: true,
           composed: true,
-        }; // 瑙﹀彂浜嬩欢鐨勯�夐」
+        };
         this.triggerEvent("changeListChecked", myEventDetail, myEventOption);
       }
-      if (!list.checked) {
-        this.setData({
-          superiorPurchaseSaleMethodId: list,
-        });
-      }
       list.forEach((items) => {
-        console.log(items.checked, "itesasd");
         if (!items.checked) {
           this.setData({
             cloudShoppingCart: items,
@@ -429,7 +431,7 @@
       };
       this.triggerEvent("changeResourceChecked", myEventDetail, myEventOption);
       // 閫氳繃鍒ゆ柇,鑱旈�氱埗绾hecked
-      if (flag == -1) {
+      if (flag == -1 && !parent.disabled) {
         let checkedState;
         citem.checked == false ? (checkedState = true) : (checkedState = false);
         var myEventDetail = {
@@ -455,7 +457,7 @@
         this.triggerEvent("changeListChecked", myEventDetail, myEventOption);
       }
       // 鑱旈�氭渶澶栧眰绾hecked, 濡傛灉鎵�鏈夊瓙椤瑰嬀閫�, 涓斿綋鍓嶆渶澶栧眰鏈嬀閫�, 鍒欏姞涓婃渶澶栧眰鐨勫嬀閫�
-      if (!citem.checked && outermost) {
+      if (!citem.checked && outermost && !outermost.disabled) {
         let allchildren = this.flattenTree([outermost]);
         allchildren = allchildren.filter(
           (item) =>
@@ -476,31 +478,12 @@
           this.triggerEvent("changeListChecked", myEventDetail, myEventOption);
         }
       }
-      if (!citem.checked) {
-        //閫変腑鐨勬椂鍊欐坊鍔爄d
-        let sonPurchaseSaleMethodId = this.data.sonPurchaseSaleMethodId || [];
-        if (this.properties.paymentPage) {
-          sonPurchaseSaleMethodId = [];
-          this.properties.paymentPage = false;
-        }
-        if (!this.properties.paymentPage) {
-          sonPurchaseSaleMethodId.push(citem.saleMethod[0].Id);
-        }
-        this.setData({
-          sonPurchaseSaleMethodId: sonPurchaseSaleMethodId,
-        });
-      } else {
-        // 鍙栨秷閫変腑鐨勬椂鍊欏垹闄d
-      }
     },
     // 鍔犲叆璐墿杞�
     async onCloudShoppingCart(e) {
       let shoppingCartGetId = [];
-
       const item = e.currentTarget.dataset.item;
-      console.log(item.isShopCar);
       const saleMethodId = e.currentTarget.dataset.item.saleMethod[0].Id;
-      console.log(saleMethodId);
       let query = {
         start: 0,
         size: 999,
@@ -512,8 +495,6 @@
         shoppingCartGetId.push(item.saleMethod.id);
       });
       if (shoppingCartGetId.includes(saleMethodId)) {
-        // this.data.updateShoppingCartHidden();
-        // this.data.updateCloudLearning();
         wx.showToast({
           icon: "error",
           title: "宸叉坊鍔�",
@@ -530,14 +511,20 @@
           }, ],
         };
         const addRes = await app.MG.store.addShoppingCart(query);
-        console.log(addRes, "addRes");
         if (addRes) {
           wx.showToast({
             icon: "success",
             title: "娣诲姞鎴愬姛",
           });
           item.isShopCar = false;
-          this.triggerEvent("updateCloudLearning");
+          var myEventDetail = {
+            id: item.id,
+          };
+          var myEventOption = {
+            bubbles: true,
+            composed: true,
+          };
+          this.triggerEvent("updateCloudLearning", myEventDetail, myEventOption);
         }
       }
     },
diff --git a/packageBookService/pages/bookServices/detail/components/tree/index.wxml b/packageBookService/pages/bookServices/detail/components/tree/index.wxml
index 71e3517..16070da 100644
--- a/packageBookService/pages/bookServices/detail/components/tree/index.wxml
+++ b/packageBookService/pages/bookServices/detail/components/tree/index.wxml
@@ -1,32 +1,93 @@
 <view class="tree">
   <t-collapse default-value="{{openIds}}" catchchange="handleChange">
-    <view wx:for="{{treeList}}" wx:for-item="item" wx:for-index="index" wx:key="id" wx:if="{{item.sysType== 'CmsItem' }}">
-      <view class="listItems" wx:if="{{item.childrenFolderCount <= 0 && item.sysType == 'CmsItem'}}">
+    <view
+      wx:for="{{treeList}}"
+      wx:for-item="item"
+      wx:for-index="index"
+      wx:key="id"
+      wx:if="{{item.sysType== 'CmsItem' }}"
+    >
+      <view
+        class="listItems"
+        wx:if="{{item.childrenFolderCount <= 0 && item.sysType == 'CmsItem'}}"
+      >
         <view class="itemsInfo" data-item="{{item}}" data-index="{{index}}">
-          <view class="contentBox" bind:tap="goPlayer" data-item="{{item}}" data-parent="{{''}}">
+          <view
+            class="contentBox"
+            bind:tap="goPlayer"
+            data-item="{{item}}"
+            data-parent="{{''}}"
+          >
             <!-- 鏁欏璧勬簮 浜戝涔� 鍥炬爣 -->
             <view class="box-image fl-cn" style="width: 80%">
-              <view class="checkBox" wx:if="{{isShowCheck}}" catchtap="catchTap">
-                <!-- checked="{{citem.checked}}"  -->
-                <!-- <t-checkbox icon="rectangle" checked="{{citem.checked}}" disabled="{{citem.selectType=='webpage' || citem.isDownload != 1 || citem.fileMap[citem.file].protectType == 'Private'}}" catch:change="checkResource" data-item="{{citem}}" /> -->
-                <t-checkbox disabled="{{!citem.saleMethod[0].Id}}" icon="rectangle" checked="{{item.checked}}" data-item="{{item}}" data-parent="{{item}}" catch:change="checkResource" />
+              <view
+                class="checkBox"
+                wx:if="{{isShowCheck}}"
+                catchtap="catchTap"
+              >
+                <t-checkbox
+                  disabled="{{item.disabled}}"
+                  icon="rectangle"
+                  checked="{{item.checked}}"
+                  data-item="{{item}}"
+                  data-parent="{{item}}"
+                  catch:change="checkResource"
+                />
               </view>
               <!-- 鏁欏璧勬簮鍥炬爣 -->
               <view class="teach-icon fl-cn">
-                <image wx:if="{{item.selectType == 'audio' || item.learnSelectType == 'audio'}}" src="/static/images/bookService/detail/audioIcon.png" mode="aspectFill" />
-                <image wx:elif="{{item.selectType == 'video' || item.learnSelectType == 'video'}}" src="/static/images/bookService/detail/video.png" mode="aspectFill" />
-                <image wx:elif="{{item.selectType == 'pdf'}}" src="/static/images/bookService/detail/pdf.png" mode="aspectFill" />
-                <image wx:elif="{{item.selectType == 'webpage'}}" src="/static/images/bookService/detail/net.png" mode="aspectFill" />
-                <image wx:elif="{{item.selectType == 'picture'}}" src="/static/images/bookService/detail/picture.png" mode="aspectFill" />
-                <image wx:elif="{{item.selectType == 'zip'}}" src="/static/images/bookService/detail/zip.png" mode="aspectFill" />
-                <image wx:elif="{{ item.fileMap[item.file].extension == 'doc' ||  item.fileMap[item.file].extension == 'docx'}}" src="/static/images/bookService/detail/word.png" mode="aspectFill" />
-                <image wx:elif="{{ item.fileMap[item.file].extension == 'xlsx' ||  item.fileMap[item.file].extension == 'xlsx'}}" src="/static/images/bookService/detail/excel.png" mode="aspectFill" />
-                <image wx:elif="{{ item.fileMap[item.file].extension == 'ppt' ||  item.fileMap[item.file].extension == 'pptx'}}" src="/static/images/bookService/detail/PPT.png" mode="aspectFill" />
+                <image
+                  wx:if="{{item.selectType == 'audio' || item.learnSelectType == 'audio'}}"
+                  src="/static/images/bookService/detail/audioIcon.png"
+                  mode="aspectFill"
+                />
+                <image
+                  wx:elif="{{item.selectType == 'video' || item.learnSelectType == 'video'}}"
+                  src="/static/images/bookService/detail/video.png"
+                  mode="aspectFill"
+                />
+                <image
+                  wx:elif="{{item.selectType == 'pdf'}}"
+                  src="/static/images/bookService/detail/pdf.png"
+                  mode="aspectFill"
+                />
+                <image
+                  wx:elif="{{item.selectType == 'webpage'}}"
+                  src="/static/images/bookService/detail/net.png"
+                  mode="aspectFill"
+                />
+                <image
+                  wx:elif="{{item.selectType == 'picture'}}"
+                  src="/static/images/bookService/detail/picture.png"
+                  mode="aspectFill"
+                />
+                <image
+                  wx:elif="{{item.selectType == 'zip'}}"
+                  src="/static/images/bookService/detail/zip.png"
+                  mode="aspectFill"
+                />
+                <image
+                  wx:elif="{{ item.fileMap[item.file].extension == 'doc' ||  item.fileMap[item.file].extension == 'docx'}}"
+                  src="/static/images/bookService/detail/word.png"
+                  mode="aspectFill"
+                />
+                <image
+                  wx:elif="{{ item.fileMap[item.file].extension == 'xlsx' ||  item.fileMap[item.file].extension == 'xlsx'}}"
+                  src="/static/images/bookService/detail/excel.png"
+                  mode="aspectFill"
+                />
+                <image
+                  wx:elif="{{ item.fileMap[item.file].extension == 'ppt' ||  item.fileMap[item.file].extension == 'pptx'}}"
+                  src="/static/images/bookService/detail/PPT.png"
+                  mode="aspectFill"
+                />
                 <!-- 璧勬簮鏃犳枃浠跺唴瀹瑰浘鏍� -->
-                <image wx:else src="/static/images/bookService/detail/word.png" mode="" />
+                <image
+                  wx:else
+                  src="/static/images/bookService/detail/word.png"
+                  mode=""
+                />
               </view>
-              <!-- 浜戝涔犲浘鏍� -->
-              <view> </view>
               <!-- 鍚嶇О -->
               <text class="name" style="width: 100%">{{item.name || '-'}}</text>
             </view>
@@ -43,77 +104,216 @@
             </view>
             <view wx:if="{{tab == 'jsek_cloudLearning'}}">
               <!-- 浜戝涔犺瘯鐪嬪浘鏍� -->
-              <image src="/static/images/bookService/detail/shikan.png" class="testSee" wx:if="{{!item.isbuy ? false : item.freeFile ? true : false}}"></image>
+              <image
+                src="/static/images/bookService/detail/shikan.png"
+                class="testSee"
+                wx:if="{{!item.isbuy ? false : item.freeFile ? true : false}}"
+              ></image>
               <!-- 浜戝涔犲姞鍏ヨ喘鐗╄溅鍥炬爣 -->
-              <image src="/static/images/bookService/detail/cart@2x.png" wx:if="{{item.isShopCar}}" class="shopCar" data-item="{{item}}" catch:tap="onCloudShoppingCart"></image>
+              <image
+                src="/static/images/bookService/detail/cart@2x.png"
+                wx:if="{{item.isShopCar}}"
+                class="shopCar"
+                data-item="{{item}}"
+                catch:tap="onCloudShoppingCart"
+              ></image>
               <!-- 浜戝涔犺喘涔板浘鏍� -->
-              <image src="/static/images/bookService/detail/need-buy.png" class="need-buy" wx:if="{{item.isbuy }}"></image>
+              <image
+                src="/static/images/bookService/detail/need-buy.png"
+                class="need-buy"
+                wx:if="{{item.isbuy }}"
+              ></image>
             </view>
           </view>
         </view>
       </view>
     </view>
-    <t-collapse-panel wx:for="{{treeList}}" wx:for-item="item" wx:for-index="index" wx:key="id" value="{{item.id}}" wx:if="{{item.sysType == 'CmsFolder' }}">
+    <t-collapse-panel
+      wx:for="{{treeList}}"
+      wx:for-item="item"
+      wx:for-index="index"
+      wx:key="id"
+      value="{{item.id}}"
+      wx:if="{{item.sysType == 'CmsFolder' }}"
+    >
       <view slot="header" class="header-title">
         <view class="title-checkBox" catchtap="catchTap">
-          <t-checkbox style="align-items: center" icon="rectangle" checked="{{item.checked}}" data-item="{{item}}" catchchange="checkResourceTitle" wx:if="{{isShowCheck}}" />
+          <t-checkbox
+            style="align-items: center"
+            icon="rectangle"
+            disabled="{{item.disabled}}"
+            checked="{{item.checked}}"
+            data-item="{{item}}"
+            catchchange="checkResourceTitle"
+            wx:if="{{isShowCheck}}"
+          />
           <!-- 绔犺妭鍚� -->
           <view class="title-box">
-            <view class="title-name">{{item.name}} </view>
-            <view wx:if="{{item.sysType =='CmsFolder'}}" class="title-num">
-              锛坽{item.childrenItem}}锛�
+            <view class="title-t" >
+              <view class="title-name">{{item.name}} </view>
+              <view wx:if="{{item.sysType =='CmsFolder'}}" class="title-num">
+                锛坽{item.childrenItem}}锛�
+              </view>
+            </view>
+            <view class="title-icon" >
+              <!-- 浜戝涔犲姞鍏ヨ喘鐗╄溅鍥炬爣 -->
+              <image
+                src="/static/images/bookService/detail/cart@2x.png"
+                wx:if="{{item.isShopCar}}"
+                class="shopCar"
+                data-item="{{item}}"
+                catch:tap="onCloudShoppingCart"
+              ></image>
+              <!-- 浜戝涔犺喘涔板浘鏍� -->
+              <image
+                src="/static/images/bookService/detail/need-buy.png"
+                class="need-buy"
+                wx:if="{{item.isbuy }}"
+              ></image>
             </view>
           </view>
         </view>
       </view>
-      <view class="list" wx:for="{{item.children}}" wx:for-item="citem" wx:for-index="cindex" wx:key="cindex">
+      <view
+        class="list"
+        wx:for="{{item.children}}"
+        wx:for-item="citem"
+        wx:for-index="cindex"
+        wx:key="cindex"
+      >
         <!-- // 鍒ゆ柇 鏃犲瓙椤� 涓斾负鍟嗗搧item 鐩存帴鏄剧ず -->
-        <view class="listItems" wx:if="{{citem.childrenFolderCount <= 0 && citem.sysType == 'CmsItem'}}">
+        <view
+          class="listItems"
+          wx:if="{{citem.childrenFolderCount <= 0 && citem.sysType == 'CmsItem'}}"
+        >
           <view class="itemsInfo" data-item="{{citem}}" data-index="{{cindex}}">
-            <view class="contentBox" bind:tap="goPlayer" data-item="{{citem}}" data-parent="{{item}}">
-              <!-- 鏁欏璧勬簮 浜戝涔� 鍥炬爣 -->
+            <view
+              class="contentBox"
+              bind:tap="goPlayer"
+              data-item="{{citem}}"
+              data-parent="{{item}}"
+            >
+              <!-- 鏁欏璧勬簮 鍥炬爣 -->
               <view class="box-image fl-cn">
-                <view class="checkBox" wx:if="{{isShowCheck}}" catchtap="catchTap">
-                  <!-- checked="{{citem.checked}}"  -->
-                  <!-- <t-checkbox icon="rectangle" checked="{{citem.checked}}" disabled="{{citem.selectType=='webpage' || citem.isDownload != 1 || citem.fileMap[citem.file].protectType == 'Private'}}" catch:change="checkResource" data-item="{{citem}}" /> -->
-                  <t-checkbox disabled="{{!citem.saleMethod[0].Id}}" icon="rectangle" checked="{{citem.checked}}" data-item="{{citem}}" data-parent="{{item}}" catch:change="checkResource" />
+                <view
+                  class="checkBox"
+                  wx:if="{{isShowCheck}}"
+                  catchtap="catchTap"
+                >
+                  <t-checkbox
+                    disabled="{{citem.disabled}}"
+                    icon="rectangle"
+                    checked="{{citem.checked}}"
+                    data-item="{{citem}}"
+                    data-parent="{{item}}"
+                    catch:change="checkResource"
+                  />
                 </view>
                 <!-- 鏁欏璧勬簮鍥炬爣 -->
                 <view class="teach-icon fl-cn">
-                  <image wx:if="{{citem.selectType == 'audio' || citem.learnSelectType == 'audio'}}" src="/static/images/bookService/detail/audioIcon.png" mode="aspectFill" />
-                  <image wx:elif="{{citem.selectType == 'video' || citem.learnSelectType == 'video'}}" src="/static/images/bookService/detail/video.png" mode="aspectFill" />
-                  <image wx:elif="{{citem.selectType == 'pdf'}}" src="/static/images/bookService/detail/pdf.png" mode="aspectFill" />
-                  <image wx:elif="{{citem.selectType == 'webpage'}}" src="/static/images/bookService/detail/net.png" mode="aspectFill" />
-                  <image wx:elif="{{citem.selectType == 'picture'}}" src="/static/images/bookService/detail/picture.png" mode="aspectFill" />
-                  <image wx:elif="{{citem.selectType == 'zip'}}" src="/static/images/bookService/detail/zip.png" mode="aspectFill" />
-                  <image wx:elif="{{ citem.fileMap[citem.file].extension == 'doc' ||  citem.fileMap[citem.file].extension == 'docx'}}" src="/static/images/bookService/detail/word.png" mode="aspectFill" />
-                  <image wx:elif="{{ citem.fileMap[citem.file].extension == 'xlsx' ||  citem.fileMap[citem.file].extension == 'xlsx'}}" src="/static/images/bookService/detail/excel.png" mode="aspectFill" />
-                  <image wx:elif="{{ citem.fileMap[citem.file].extension == 'ppt' ||  citem.fileMap[citem.file].extension == 'pptx'}}" src="/static/images/bookService/detail/PPT.png" mode="aspectFill" />
+                  <image
+                    wx:if="{{citem.selectType == 'audio' || citem.learnSelectType == 'audio'}}"
+                    src="/static/images/bookService/detail/audioIcon.png"
+                    mode="aspectFill"
+                  />
+                  <image
+                    wx:elif="{{citem.selectType == 'video' || citem.learnSelectType == 'video'}}"
+                    src="/static/images/bookService/detail/video.png"
+                    mode="aspectFill"
+                  />
+                  <image
+                    wx:elif="{{citem.selectType == 'pdf'}}"
+                    src="/static/images/bookService/detail/pdf.png"
+                    mode="aspectFill"
+                  />
+                  <image
+                    wx:elif="{{citem.selectType == 'webpage'}}"
+                    src="/static/images/bookService/detail/net.png"
+                    mode="aspectFill"
+                  />
+                  <image
+                    wx:elif="{{citem.selectType == 'picture'}}"
+                    src="/static/images/bookService/detail/picture.png"
+                    mode="aspectFill"
+                  />
+                  <image
+                    wx:elif="{{citem.selectType == 'zip'}}"
+                    src="/static/images/bookService/detail/zip.png"
+                    mode="aspectFill"
+                  />
+                  <image
+                    wx:elif="{{ citem.fileMap[citem.file].extension == 'doc' ||  citem.fileMap[citem.file].extension == 'docx'}}"
+                    src="/static/images/bookService/detail/word.png"
+                    mode="aspectFill"
+                  />
+                  <image
+                    wx:elif="{{ citem.fileMap[citem.file].extension == 'xlsx' ||  citem.fileMap[citem.file].extension == 'xlsx'}}"
+                    src="/static/images/bookService/detail/excel.png"
+                    mode="aspectFill"
+                  />
+                  <image
+                    wx:elif="{{ citem.fileMap[citem.file].extension == 'ppt' ||  citem.fileMap[citem.file].extension == 'pptx'}}"
+                    src="/static/images/bookService/detail/PPT.png"
+                    mode="aspectFill"
+                  />
                   <!-- 璧勬簮鏃犳枃浠跺唴瀹瑰浘鏍� -->
-                  <image wx:else src="/static/images/bookService/detail/word.png" mode="" />
+                  <image
+                    wx:else
+                    src="/static/images/bookService/detail/word.png"
+                    mode=""
+                  />
                 </view>
-                <!-- 浜戝涔犲浘鏍� -->
-                <view> </view>
                 <!-- 鍚嶇О -->
-                <text class="name" style="{{ tab == 'jsek_teachingResources' ? citem.resourceClass ? 'width: 420rpx'  :  'width: 560rpx;' : (citem.isShopCar &&citem.isbuy ) ? 'width: 400rpx;' : (citem.isShopCar ||citem.isbuy) ? 'width:520rpx' :  'width:560rpx'}}">{{citem.name || '-'}}</text>
+                <text
+                  class="name"
+                  style="{{ tab == 'jsek_teachingResources' ? citem.resourceClass ? 'width: 420rpx'  :  'width: 500rpx;' : (citem.isShopCar &&citem.isbuy ) ? 'width: 400rpx;' : (citem.isShopCar ||citem.isbuy) ? 'width:460rpx' :  'width:500rpx'}}"
+                  >{{citem.name || '-'}}</text
+                >
               </view>
               <!-- 鏁欏璧勬簮绫诲瀷 -->
-              <view class="teachClass fl-cn" wx:if="{{citem.resourceClass && tab == 'jsek_teachingResources'}}">
+              <view
+                class="teachClass fl-cn"
+                wx:if="{{citem.resourceClass && tab == 'jsek_teachingResources'}}"
+              >
                 {{citem.resourceClass}}
               </view>
-              <view wx:if="{{tab == 'jsek_cloudLearning'}}">
+              <view wx:if="{{tab == 'jsek_cloudLearning'}}" class="clound-icon">
                 <!-- 浜戝涔犺瘯鐪嬪浘鏍� -->
-                <image src="/static/images/bookService/detail/shikan.png" class="testSee" wx:if="{{!citem.isbuy ? false : citem.freeFile ? true : false}}"></image>
+                <image
+                  src="/static/images/bookService/detail/shikan.png"
+                  class="testSee"
+                  wx:if="{{!citem.isbuy ? false : citem.freeFile ? true : false}}"
+                ></image>
                 <!-- 浜戝涔犲姞鍏ヨ喘鐗╄溅鍥炬爣 -->
-                <image src="/static/images/bookService/detail/cart@2x.png" wx:if="{{citem.isShopCar}}" class="shopCar" data-item="{{citem}}" catch:tap="onCloudShoppingCart"></image>
+                <image
+                  src="/static/images/bookService/detail/cart@2x.png"
+                  wx:if="{{citem.isShopCar}}"
+                  class="shopCar"
+                  data-item="{{citem}}"
+                  catch:tap="onCloudShoppingCart"
+                ></image>
                 <!-- 浜戝涔犺喘涔板浘鏍� -->
-                <image src="/static/images/bookService/detail/need-buy.png" class="need-buy" wx:if="{{citem.isbuy }}"></image>
+                <image
+                  src="/static/images/bookService/detail/need-buy.png"
+                  class="need-buy"
+                  wx:if="{{citem.isbuy }}"
+                ></image>
               </view>
             </view>
           </view>
         </view>
         <!-- // 鍒ゆ柇 涓嶆槸鍟嗗搧 鏈夊瓙椤� 閫掑綊缁勪欢 -->
-        <tree wx:if="{{ citem.sysType == 'CmsFolder' }}" isShowCheck="{{isShowCheck}}" bookInfo="{{bookInfo}}" treeList="{{[citem]}}" learnList="{{learnList}}" itemId="{{itemId}}" tab="{{tab}}" buyIds="{{buyIds}}" openIds="{{openIds}}"></tree>
+        <tree
+          wx:if="{{ citem.sysType == 'CmsFolder' }}"
+          isShowCheck="{{isShowCheck}}"
+          bookInfo="{{bookInfo}}"
+          treeList="{{[citem]}}"
+          learnList="{{learnList}}"
+          itemId="{{itemId}}"
+          tab="{{tab}}"
+          buyIds="{{buyIds}}"
+          openIds="{{openIds}}"
+        ></tree>
       </view>
       <!-- 鏆傛棤鏁版嵁 -->
       <view wx:if="{{!item.children || !item.children.length}}" class="noData">
@@ -131,4 +331,4 @@
 </view>
 
 <web-view wx:if="{{webpageSrc}}" src="{{webpageSrc}}"></web-view>
-<!-- <button bind:tap="sadd"> 65498</button> -->
\ No newline at end of file
+<!-- <button bind:tap="sadd"> 65498</button> -->
diff --git a/packageBookService/pages/bookServices/detail/components/tree/index.wxss b/packageBookService/pages/bookServices/detail/components/tree/index.wxss
index fd8e1e5..2683681 100644
--- a/packageBookService/pages/bookServices/detail/components/tree/index.wxss
+++ b/packageBookService/pages/bookServices/detail/components/tree/index.wxss
@@ -17,7 +17,16 @@
   width: 100%;
   display: flex;
   align-items: center;
+  justify-content: space-between;
 }
+
+.title-t,
+.title-icon {
+  display: flex;
+  align-items: center;
+}
+
+.title-icon {}
 
 .title-checkBox {
   width: 100%;
@@ -105,11 +114,12 @@
   padding-bottom: 20rpx;
 }
 
-/* .t-collapse-panel__content {
-  padding: var(--td-collapse-content-padding, 0rpx) !important;
-} */
 
 .fl-cn {
   display: flex;
   align-items: center;
+}
+
+.clound-icon {
+  display: flex;
 }
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/detail/index.js b/packageBookService/pages/bookServices/detail/index.js
index 86016ed..44051f6 100644
--- a/packageBookService/pages/bookServices/detail/index.js
+++ b/packageBookService/pages/bookServices/detail/index.js
@@ -51,6 +51,9 @@
     applyState: "", // 鏁欏璧勬簮鐢宠鐘舵��
     deadline: "", // 鏁欏璧勬簮鐢宠鏈夋晥鏃ユ湡,
     isshowDrawBtn: true, // 浜戝涔犻鍙栨煡鐪嬫寜閽槸鍚︽樉绀�
+    isShowBuyCloundMenu: false, //   浜戝涔犲叏閮ㄨ喘涔版寜閽槸鍚︽樉绀�
+    isCloundHaveSaleMethod: false, // 浜戝涔犳槸鍚︽湁閿�鍞柟寮� 
+    cloundMenuIsBuy: false,
     rejectCause: "", // 涓嬭浇鎷掔粷鍘熷洜
     buyIdList: [],
     shoppingCartGetId: [], // 宸茶喘涔癷d鍒楄〃
@@ -266,11 +269,6 @@
   },
 
   /**
-   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚
-   */
-  onReady() {},
-
-  /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず
    */
   onShow() {
@@ -290,21 +288,6 @@
   },
 
   /**
-   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌
-   */
-  onHide() {},
-
-  /**
-   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇
-   */
-  onUnload() {},
-
-  /**
-   * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔
-   */
-  onPullDownRefresh() {},
-
-  /**
    * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁�
    */
   onReachBottom() {
@@ -314,11 +297,6 @@
     }
   },
 
-  /**
-   * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜�
-   */
-  onShareAppMessage() {},
-  onShareTimeline() {},
   // 鏍煎紡鍖栨棩鏈�
   formatDate(dateString) {
     if (!dateString) {
@@ -545,8 +523,9 @@
     }
     app.MG.store.getProductDetail(query).then((res) => {
       this.setData({
-        resourceCodeList: res.datas.cmsDatas[0].datas
+        resourceCodeList: res.datas.cmsDatas[0].datas,
       })
+      console.log('refcode', this.data.resourceCodeList);
     })
   },
   //璇锋眰瀛愬晢鍝佺殑鏂囦欢
@@ -941,6 +920,26 @@
     // 杩斿洖鏇存柊鍚庣殑鏁扮粍  
     return array;
   },
+  // 閫掑綊鏍戠粨鏋勶紝濡傛灉鐖剁骇鏈夐攢鍞柟寮�(鏈夋晥鏈�)锛屽幓鎺夋墍鏈夊瓙闆嗙殑閿�鍞柟寮�
+  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
+  },
   // 鏁欏璧勬簮 浜戝涔� 鑾峰彇
   getResourceDataList(type) {
     this.setData({
@@ -950,7 +949,7 @@
     let query = {
       path: '*',
       queryType: '*',
-      storeInfo: this.data.options.storeInfo,
+      // storeInfo: this.data.options.storeInfo,
       productId: this.data.bookDetail.id,
       cmsPath: type.productLinkPath,
       cmsType: '*',
@@ -974,6 +973,7 @@
       },
     }
     app.MG.store.getProductDetailNoChildren(query).then((res) => {
+      console.log('鏈鐞嗚祫婧�', res.datas.cmsDatas[0].datas);
       if (!res.datas.cmsDatas[0].datas.length) {
         return this.setData({
           noResources: true,
@@ -981,84 +981,82 @@
         });
       }
       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;
-            });
-            if (this.data.tabValue == "jsek_teachingResources") {} else if (this.data.tabValue == "jsek_cloudLearning") {
-              item.isbuy = this.isShowNeedBuy(item);
-              item.isShopCar = this.isShoppingCart(item);
-            }
-          }
+      // 鍒ゆ柇浜戝涔犳湁鏃犻攢鍞柟寮忓拰鏈夋晥鏈�
+      const cloundSaleMethod =
+        type.saleMethod && type.saleMethod.length ?
+        type.saleMethod.find((citem) => citem.SaleType == 'Normal') :
+        null
+      let flags =
+        type.refCode == 'jsek_cloudLearning' &&
+        cloundSaleMethod &&
+        new Date().getTime() <= new Date(cloundSaleMethod.EndDate).getTime() &&
+        new Date().getTime() >= new Date(cloundSaleMethod.BeginDate).getTime()
+      res.datas.cmsDatas[0].datas.forEach((item) => {
+        // 浜戝涔犱笂鏈夐攢鍞柟寮忥紝鍘绘帀浜戝涔犱笅鎵�鏈夐攢鍞柟寮�
+        if (flags) item.saleMethod = []
+        item.checked = false;
+        if (item.sysType == 'CmsItem') {
+          // 鏁欏璧勬簮 绫诲瀷鍚嶇О璧嬪��
+          this.data.resourceClassList.forEach((type) => {
+            if (type.value == item.resourcesClassification)
+              item.resourceClass = type.name;
+          });
+          // if (this.data.tabValue == "jsek_teachingResources") {} else if (this.data.tabValue == "jsek_cloudLearning") {
+          //   item.isbuy = this.isShowNeedBuy(item);
+          //   item.isShopCar = this.isShoppingCart(item);
+          // }
+        }
+      });
+      // 鍒ゆ柇澶勭悊璧勬簮
+      if (res.datas.cmsDatas[0].datas.some((item) => item.sysType == 'CmsFolder')) {
+        if (!res.datas.cmsDatas[0].datas.some((item) => item.sysType == 'CmsItem')) {
+          // 1.鍙湁鐩綍锛屾病鏈夎祫婧�
+          list = res.datas.cmsDatas[0].datas
+        } else {
+          this.getTreeList(res.datas.cmsDatas[0].datas, list, query.cmsPath)
+          list = this.ensureTreeConsistency(list)
+          list = this.changeResourceChildren(list)
+        }
+      } else {
+        // 3.鍙湁璧勬簮锛屾病鏈夌洰褰�
+        list = res.datas.cmsDatas[0].datas
+      }
+      let result = [];
+      if (type.refCode == "jsek_teachingResources") {
+        this.findChildIds(list, result);
+        this.setData({
+          openTeachids: result,
+          loading: false,
+          teach: list,
         });
-        if (type.refCode == "jsek_cloudLearning") {
-          this.setData({
-            learnPath: type.productLinkPath
-          })
-          const dataList = res.datas.cmsDatas[0].datas
-          // 鍏堝垽鏂槸鍚﹀惁涔颁簯瀛︿範鏁翠釜鐩綍
-          let couldId = null
-          let codeData = null
-          if (this.data.resourceCodeList.length) {
-            codeData = this.data.resourceCodeList.find(item => item.refCode == 'jsek_cloudLearning')
-            if (codeData && codeData.saleMethod && codeData.saleMethod.length)
-              couldId = codeData.saleMethod[0].Id
-          }
-          if (couldId) {
-            this.setData({
-              isGoBuyResource: this.data.buyIdList.indexOf(couldId) > -1 ? false : true
-            })
-          } else if (dataList.length) {
-            const tag = dataList.findIndex(item => item.saleMethod.length && item.saleMethod[0].Price > 0)
-            this.setData({
-              isGoBuyResource: tag > -1 ? true : false
-            })
-          } else {
-            this.setData({
-              isGoBuyResource: false
-            })
-          }
-        }
-        this.getTreeList(res.datas.cmsDatas[0].datas, list, query.cmsPath)
-        list = this.ensureTreeConsistency(list)
-        list = this.changeResourceChildren(list)
-        let result = [];
-        if (type.refCode == "jsek_teachingResources") {
-          this.findChildIds(list, result);
-          // const newUSeList = this.deleteTreeData(list, result)
-          this.setData({
-            openTeachids: result,
-            loading: false,
-            teach: list,
-          });
-        } 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,
-          });
-        }
+      } else if (type.refCode == "jsek_cloudLearning") {
+        // 浜戝涔犱笂鏃犻攢鍞柟寮忥紝璧扮洰褰� 璧勬簮 閿�鍞柟寮忓幓闄ゆ柟娉�
+        if (!flags) list = this.clearTreeSealmethod(false, list)
+        // 鍒ゆ柇棰嗗彇鏌ョ湅鏄惁鏄剧ず(浜戝涔狅紝鎴栬祫婧愮洰褰曪紝鏈夊敭浠蜂负0)
+        let isshowDrawBtn = res.datas.cmsDatas[0].datas.some(
+          (item) =>
+          item.saleMethod.length &&
+          item.saleMethod.find((citem) => citem.SaleType == 'Normal').Price == 0 &&
+          new Date(item.saleMethod.find((citem) => citem.SaleType == 'Normal').EndDate).getTime() >= new Date().getTime() &&
+          new Date(item.saleMethod.find((citem) => citem.SaleType == 'Normal').BeginDate).getTime() <= new Date().getTime()
+        ) || (flags && cloundSaleMethod.Price == 0)
+        // 鍒ゆ柇浜戝涔犲叏閮ㄨ喘涔版寜閽槸鍚︽樉绀�
+        let isShowBuyCloundMenu = flags && cloundSaleMethod.Price >= 0
+        // 鍒ゆ柇璐墿杞︽寜閽拰閿佹寜閽槸鍚︽樉绀�
+        this.handleTreeData(list).forEach(item => {
+          item.isbuy = this.resourceIsBuy(item);
+          item.isShopCar = this.isShoppingCart(item);
+        })
+        this.findChildIds(list, result);
+        this.setData({
+          isshowDrawBtn,
+          isShowBuyCloundMenu,
+          isCloundHaveSaleMethod: flags,
+          learn: list,
+          loading: false,
+          openLearnids: result,
+          learnPath: type.productLinkPath
+        });
       }
     })
   },
@@ -1158,91 +1156,7 @@
         console.log(e);
       });
   },
-  // 鑾峰彇tag涓嬫墍鏈夎祫婧�
-  async getAllResource(data) {
-    if (!data.length) return false;
-    for (let i = 0; i < data.length; i++) {
-      let item = data[i];
-      if (item.sysType == "CmsFolder" && item.childrenCount > 0) {
-        item.children = [];
-        item.children = await this.getFolderItem(item.productLinkPath);
-        await this.getAllResource(item.children);
-      }
-    }
-    return data;
-  },
-  // 鑾峰彇璧勬簮鎺ュ彛
-  async getFolderItem(path) {
-    let query = {
-      path: "*",
-      queryType: "*",
-      storeInfo: this.data.options.storeInfo,
-      productId: this.data.bookDetail.id,
-      cmsPath: path,
-      itemFields: {
-        SysType: "CmsFolder",
-        // 璧勬簮绫诲瀷锛岃瘯璇绘枃浠讹紝鏄惁鍏佽涓嬭浇绛夊弬鏁�
-        selectType: [],
-        freeFile: [],
-        file: [],
-        protectedFile: [],
-        resourcesClassification: [],
-        isDownload: [],
-        jsek_resourceBrief: [],
-        jsek_link: [],
-        accessType: [],
-        learnSelectType: [],
-      },
-      pading: {
-        start: 0,
-        size: 999,
-      },
-    };
-    let data = await app.MG.store.getProductDetail(query);
-    // 濡傛灉item灞傜骇閲屾湁floder锛屽垹闄loder
-    const flag = data.datas.cmsDatas[0].datas.findIndex(
-      (item) => item.sysType == "CmsItem"
-    );
-    if (flag > -1)
-      data.datas.cmsDatas[0].datas = data.datas.cmsDatas[0].datas.filter(
-        (item) => item.sysType == "CmsItem"
-      );
-    data.datas.cmsDatas[0].datas.forEach((item) => {
-      //   if (item.sysType == "CmsFolder" && flag > -1) {
-      //     item.isShow = false;
-      //   } else {
-      //     item.isShow = true;
-      //   }
-      this.data.resourceClassList.forEach((type) => {
-        if (type.value == item.resourcesClassification)
-          item.resourceClass = type.name;
-      });
-      // 缃戦〉 涓嶈兘涓嬭浇 绉佹湁鏂囦欢
-      if (item.sysType == "CmsItem") {
-        if (item.selectType == "webpage") {
-          item.disabled = true;
-        } else {
-          if (item.isDownload != 1) {
-            item.disabled = true;
-          }
-        }
-        if (item.file && item.fileMap && item.fileMap[item.file]) {
-          if (item.fileMap[item.file].protectType == "Private")
-            item.disabled = true;
-        }
-      }
-    });
-    data.datas.cmsDatas[0].datas.forEach((item) => {
-      if (this.data.tabValue == "jsek_teachingResources") {
-        item.checked = false;
-      } else if (this.data.tabValue == "jsek_cloudLearning") {
-        item.checked = false;
-        item.isbuy = this.isShowNeedBuy(item);
-        item.isShopCar = this.isShoppingCart(item);
-      }
-    });
-    return data.datas.cmsDatas[0].datas;
-  },
+
   // 鑾峰彇灞曞紑椤�
   findChildIds(data, result) {
     let index = 0
@@ -1670,20 +1584,26 @@
   },
   // 鍒ゆ柇璧勬簮鏄惁璐拱
   resourceIsBuy(data) {
-    let couldId = null
-    let codeData = null
-    if (this.data.resourceCodeList.length) {
-      codeData = this.data.resourceCodeList.find(item => item.refCode == 'jsek_cloudLearning')
-      if (codeData && codeData.saleMethod && codeData.saleMethod.length)
-        couldId = codeData.saleMethod[0].Id
-    }
-    if (couldId) {
-      return this.data.buyIdList.indexOf(couldId) > -1 ? false : true
-    } else if (data.saleMethod && data.saleMethod.length) {
-      const isSHow = this.data.buyIdList.some(
-        (item) => item == data.saleMethod[0].Id
+    if (data.saleMethod && data.saleMethod.length) {
+      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;
     }
@@ -1725,30 +1645,31 @@
   },
   // 鍒ゆ柇璧勬簮鍔犲叆璐墿杞︽寜閽槸鍚︽樉绀�
   isShoppingCart(data) {
-    let couldId = null
-    let codeData = null
-    if (this.data.resourceCodeList.length) {
-      codeData = this.data.resourceCodeList.find(item => item.refCode == 'jsek_cloudLearning')
-      if (codeData && codeData.saleMethod && codeData.saleMethod.length)
-        couldId = codeData.saleMethod[0].Id
-    }
-    if (couldId) {
-      return this.data.buyIdList.indexOf(couldId) > -1 ? false : true
-    } else if (data.saleMethod && data.saleMethod.length) {
-      if (data.saleMethod[0].Price <= 0) return false;
+    if (data.saleMethod && data.saleMethod.length) {
+      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
+          }
+        }
       }
     } else {
       return false;
@@ -1782,7 +1703,7 @@
         flattenedArray.push(...childrenArray);
       }
     });
-    return flattenedArray.filter((item) => item.sysType == "CmsItem");
+    return flattenedArray;
   },
   // 浜戝涔犱竴閿鍙�
   async getFreeResource() {
@@ -1797,19 +1718,34 @@
           // 鍑虹幇閿欒锛岃繑鍥瀎alse
         }
       });
+    }
+    // 棰嗗彇鏌ョ湅 锛屽厛鐪嬩簯瀛︿範涓婄殑  鍐嶇湅璧勬簮涓婄殑
+    const cloundMenu = this.data.resourceCodeList.find((item) => item.refCode == 'jsek_cloudLearning')
+    const cloundMenuSaleMethod =
+      cloundMenu.saleMethod && cloundMenu.saleMethod.length ?
+      cloundMenu.saleMethod.find((ditem) => ditem.SaleType == 'Normal') :
+      undefined
+    let query = {}
+    if (this.data.isCloundHaveSaleMethod && !cloundMenuSaleMethod.Price) {
+      // 浜戝涔犱笂鏈夐攢鍞柟寮忥紝涓斾负0鍏冿紝鐩存帴棰嗗彇浜戝涔�
+      query = {
+        remarks: '浜戝涔�',
+        requests: [{
+          saleMethodId: cloundMenuSaleMethod.Id,
+          count: 1
+        }]
+      }
     } else {
-      let arr = this.handleTreeData(this.data.learn).filter((item) =>
-        this.resourceIsBuy(item)
-      );
+      // 棰嗗彇璧勬簮
+      let arr = this.handleTreeData(this.data.learn).filter(item => this.resourceIsBuy(item))
       let freeIds = arr.filter((item) => {
-        return item.saleMethod[0].Price == 0;
-      });
+        return item.saleMethod.find((citem) => citem.SaleType == 'Normal').Price == 0
+      })
       if (!freeIds.length)
         return wx.showToast({
           icon: "error",
           title: "鏆傛棤鍏嶈垂璧勬簮",
         });
-      child.changeReceive(true);
       let requests = [];
       freeIds.forEach((item, index) => {
         if (this.resourceIsBuy(item)) {
@@ -1819,34 +1755,35 @@
           });
         }
       });
-      let query = {
+      query = {
         remarks: "浜戝涔�",
         requests,
       };
-      try {
-        const initOrderRes = await app.MG.store.initOrder(query);
-        let parameter = {
-          orderNum: initOrderRes.orderNumber,
-        };
-        // 纭璁㈠崟
-        const confirmOrderRes = await app.MG.store.confirmOrder(parameter);
-        if (confirmOrderRes.orderNumber) {
-          child.changeReceive(false);
-          wx.showToast({
-            title: "棰嗗彇鎴愬姛",
-          });
-          this.getBookInfo(this.data.bookId);
-          this.getResourceDataList({
-            refCode: 'jsek_cloudLearning',
-            productLinkPath: this.data.learnPath
-          })
-          this.setData({
-            successOrderNumber: confirmOrderRes.orderNumber
-          })
-        }
-      } catch (error) {
-        console.log(error);
+    }
+    child.changeReceive(true);
+    try {
+      const initOrderRes = await app.MG.store.initOrder(query);
+      let parameter = {
+        orderNum: initOrderRes.orderNumber,
+      };
+      // 纭璁㈠崟
+      const confirmOrderRes = await app.MG.store.confirmOrder(parameter);
+      if (confirmOrderRes.orderNumber) {
+        child.changeReceive(false);
+        wx.showToast({
+          title: "棰嗗彇鎴愬姛",
+        });
+        this.getBookInfo(this.data.bookId);
+        this.getResourceDataList({
+          refCode: 'jsek_cloudLearning',
+          productLinkPath: this.data.learnPath
+        })
+        this.setData({
+          successOrderNumber: confirmOrderRes.orderNumber
+        })
       }
+    } catch (error) {
+      console.log(error);
     }
   },
   // 浜戝涔犱竴閿喘涔�
@@ -1861,7 +1798,8 @@
         },
       });
     }
-    let shopList = this.handleTreeData(this.data.learn).filter((item) =>
+    let shopList = this.handleTreeData(this.data.learn).filter(item => item.cmsType == 'cmsItem')
+    shopList = shopList.filter((item) =>
       this.resourceIsBuy(item)
     );
     this.getShoppingCartProductGet();
@@ -1897,6 +1835,11 @@
         title: "璇烽噸璇�",
       });
     }
+  },
+  // 浜戝涔犲瓧娈佃喘涔�
+  async buyCloundMenu() {
+    const cloundData = this.data.resourceCodeList.find(item => item.refCode == 'jsek_cloudLearning')
+
   },
   // 鍙樹负鎵�鏈塩heck   true
   findAndUpdateItemsByIds(tree, ids) {
@@ -2834,5 +2777,16 @@
       });
       this.closeDialog()
     })
+  },
+  getCloundIsBuy() {
+    let flag = false
+    if (!this.data.isCloundHaveSaleMethod) flag = false
+    const cloundData = this.data.resourceCodeList.find(item => item.refCode == 'jsek_cloudLearning')
+    const saleData = cloundData.saleMethod.find(item => item.SaleType == "Normal")
+    if (!saleData) flag = false
+    flag = this.data.buyIdList.some(item => item == saleData.Id)
+    this.setData({
+      cloundMenuIsBuy: flag
+    })
   }
 })
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/detail/index.wxml b/packageBookService/pages/bookServices/detail/index.wxml
index c81b427..9576f19 100644
--- a/packageBookService/pages/bookServices/detail/index.wxml
+++ b/packageBookService/pages/bookServices/detail/index.wxml
@@ -1,47 +1,56 @@
 <!--pages/bookServices/detail/index.wxml-->
 <import src="index.skeleton.wxml" />
 <template is="skeleton" wx:if="{{pageLoading}}" />
-<!-- pageLoading -->
-<!--瀵艰埅鍖哄煙 -->
 
-<suggest-dialog class="suggest-dialog" showIndex="{{showIndex}}" bookIcon="{{bookDetail.icon}}" bookName="{{bookDetail.name}}"></suggest-dialog>
+<suggest-dialog
+  class="suggest-dialog"
+  showIndex="{{showIndex}}"
+  bookIcon="{{bookDetail.icon}}"
+  bookName="{{bookDetail.name}}"
+></suggest-dialog>
 <!-- <popup showIndex="{{showIndex}}"></popup> -->
 <view class="page-bookService" wx:if="{{!pageLoading}}">
-  <!-- <view style="width: 100%; height: {{barHeight}}px; "></view>
-  <view class="nacigationBar" style="width: 100%; height: {{navBarHeight}}px;">
-    <view>
-      <t-icon
-        name="chevron-left"
-        size="30"
-        data-name="{{item}}"
-        bind:click="goBack"
-      />
-    </view>
-    <view class="navbar-title" style="width: 100%">
-      <text>{{options.name}}</text>
-    </view>
-  </view> -->
   <t-toast id="t-toast" />
   <movable-area class="movable-area">
-    <scroll-view scroll-y="{{true}}" class="book" bindscrolltolower="onReachBottom">
+    <scroll-view
+      scroll-y="{{true}}"
+      class="book"
+      bindscrolltolower="onReachBottom"
+    >
       <!-- 鍥句功璇︽儏 -->
       <view class="book-box">
         <view class="book-detail" id="book-detail">
           <view class="detail-left">
             <view class="book-img">
-              <image loading="" src="{{bookDetail.icon ? bookDetail.icon : '/static/images/default-book-img.png'}}" mode="aspectFit" aria-label="{{bookDetail.name}}" />
+              <image
+                loading=""
+                src="{{bookDetail.icon ? bookDetail.icon : '/static/images/default-book-img.png'}}"
+                mode="aspectFit"
+                aria-label="{{bookDetail.name}}"
+              />
             </view>
             <view class="book-use">
               <view class="collect" bind:tap="setCollect">
                 <view>
-                  <image loading="" src="/static/images/bookService/detail/collect.png" wx:if="{{!bookDetail.isFavourite}}" />
-                  <image loading="" src="/static/images/bookService/detail/collecting.png" wx:if="{{bookDetail.isFavourite}}" />
+                  <image
+                    loading=""
+                    src="/static/images/bookService/detail/collect.png"
+                    wx:if="{{!bookDetail.isFavourite}}"
+                  />
+                  <image
+                    loading=""
+                    src="/static/images/bookService/detail/collecting.png"
+                    wx:if="{{bookDetail.isFavourite}}"
+                  />
                 </view>
                 <view class="use-title">鏀惰棌</view>
               </view>
               <view class="suggest" bind:tap="suggestBtn">
                 <view>
-                  <image loading="" src="/static/images/bookService/detail/suggest.png" />
+                  <image
+                    loading=""
+                    src="/static/images/bookService/detail/suggest.png"
+                  />
                 </view>
                 <view class="use-title">鎴戣寤鸿</view>
               </view>
@@ -66,12 +75,19 @@
                 <view class="li-title">鍑虹増鏃堕棿锛�</view>
                 <view class="li-content">{{bookDetail.publicationDate}}</view>
               </view>
-              <view class="message-li" wx:if="{{bookClass.length}}" style="height: 80rpx">
+              <view
+                class="message-li"
+                wx:if="{{bookClass.length}}"
+                style="height: 80rpx"
+              >
                 <view class="li-title">鍥句功鍒嗙被锛�</view>
                 <view class="class-name showTow">{{bookClass}}</view>
               </view>
             </view>
-            <image src="/static/images/bookService/detail/square.png" class="right-background" />
+            <image
+              src="/static/images/bookService/detail/square.png"
+              class="right-background"
+            />
           </view>
         </view>
         <!-- 閿�鍞俊鎭� -->
@@ -80,12 +96,19 @@
             <!-- 鐢靛瓙涔﹀敭浠� -->
             <view class="electron-price" wx:if="{{bookDetail.price}}">
               <view>
-                <image src="/static/images/bookService/detail/electon-price.png" />
+                <image
+                  src="/static/images/bookService/detail/electon-price.png"
+                />
               </view>
               <view class="price">
-                <view class="price-text">{{bookDetail.price == '0.00' ? '鍏嶈垂' : '楼'+
-                  bookDetail.price}}</view>
-                <view class="price-old" wx:if="{{bookDetail.oldPrice != '0.00'}}">楼{{bookDetail.oldPrice}}
+                <view class="price-text"
+                  >{{bookDetail.price == '0.00' ? '鍏嶈垂' : '楼'+
+                  bookDetail.price}}</view
+                >
+                <view
+                  class="price-old"
+                  wx:if="{{bookDetail.oldPrice != '0.00'}}"
+                  >楼{{bookDetail.oldPrice}}
                 </view>
               </view>
               <view> </view>
@@ -93,27 +116,72 @@
             <!-- 绾歌川涔﹀敭浠� -->
             <view class="paper-price" wx:if="{{bookDetail.paperPrice}}">
               <view>
-                <image src="/static/images/bookService/detail/paper-price.png" />
+                <image
+                  src="/static/images/bookService/detail/paper-price.png"
+                />
               </view>
-              <view class="price">{{bookDetail.paperPrice == '0.00' ? '鍏嶈垂' :
-                '楼'+bookDetail.paperPrice}}</view>
+              <view class="price"
+                >{{bookDetail.paperPrice == '0.00' ? '鍏嶈垂' :
+                '楼'+bookDetail.paperPrice}}</view
+              >
             </view>
           </view>
           <!-- 缃戝簵 -->
           <view class="book-web">
-            <image src="/static/images/bookService/detail/jd.png" wx:if="{{bookDetail.JDLink}}" bind:tap="goShop" data-link="{{bookDetail.JDLink}}" data-type="jd" />
-            <image class="tmall-image" src="/static/images/bookService/detail/tmall.png" bind:tap="goShop" data-link="{{bookDetail.tmallLink}}" wx:if="{{bookDetail.tmallLink}}" />
-            <image src="/static/images/bookService/detail/dangdang.png" bind:tap="goShop" data-link="{{bookDetail.dangdangLink}}" wx:if="{{bookDetail.dangdangLink}}" />
-            <image src="/static/images/bookService/detail/weidian.png" bind:tap="goShop" data-link="{{bookDetail.weidianLink}}" wx:if="{{bookDetail.weidianLink}}" />
+            <image
+              src="/static/images/bookService/detail/jd.png"
+              wx:if="{{bookDetail.JDLink}}"
+              bind:tap="goShop"
+              data-link="{{bookDetail.JDLink}}"
+              data-type="jd"
+            />
+            <image
+              class="tmall-image"
+              src="/static/images/bookService/detail/tmall.png"
+              bind:tap="goShop"
+              data-link="{{bookDetail.tmallLink}}"
+              wx:if="{{bookDetail.tmallLink}}"
+            />
+            <image
+              src="/static/images/bookService/detail/dangdang.png"
+              bind:tap="goShop"
+              data-link="{{bookDetail.dangdangLink}}"
+              wx:if="{{bookDetail.dangdangLink}}"
+            />
+            <image
+              src="/static/images/bookService/detail/weidian.png"
+              bind:tap="goShop"
+              data-link="{{bookDetail.weidianLink}}"
+              wx:if="{{bookDetail.weidianLink}}"
+            />
           </view>
         </view>
       </view>
 
       <view class="book-resource">
-        <t-tabs value="{{tabValue}}" bind:change="onTabsChange" t-class="custom-tabs" t-class-content="custom-panel" class="tab-class">
-          <t-tab-panel label="鍥句功淇℃伅" icon="{{ tabValue == 'brief' ? briefIconClick : briefIcon}}" value="brief" style="{{tabPanelstyle}}">
-            <book-brief content="{{bookDetail.content}}" catalogue="{{bookDetail.catalogue}}" authorIntroduction="{{bookDetail.authorIntroduction}}" wx:if="{{bookDetail.content || bookDetail.authorIntroduction}}"></book-brief>
-            <view wx:if="{{!bookDetail.content && !bookDetail.authorIntroduction && !loading}}" class="noData">
+        <t-tabs
+          value="{{tabValue}}"
+          bind:change="onTabsChange"
+          t-class="custom-tabs"
+          t-class-content="custom-panel"
+          class="tab-class"
+        >
+          <t-tab-panel
+            label="鍥句功淇℃伅"
+            icon="{{ tabValue == 'brief' ? briefIconClick : briefIcon}}"
+            value="brief"
+            style="{{tabPanelstyle}}"
+          >
+            <book-brief
+              content="{{bookDetail.content}}"
+              catalogue="{{bookDetail.catalogue}}"
+              authorIntroduction="{{bookDetail.authorIntroduction}}"
+              wx:if="{{bookDetail.content || bookDetail.authorIntroduction}}"
+            ></book-brief>
+            <view
+              wx:if="{{!bookDetail.content && !bookDetail.authorIntroduction && !loading}}"
+              class="noData"
+            >
               <!-- <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" /> -->
               <empty />
             </view>
@@ -125,18 +193,37 @@
           style="{{tabPanelstyle}}"
         >
         </t-tab-panel> -->
-          <t-tab-panel label="鏁欏璧勬簮" icon="{{tabValue == 'jsek_teachingResources' ? teachResourcesClickIcon : teachResourcesIcon}}" value="jsek_teachingResources" class="{{loading ? 'loading': ''}}">
-            <view wx:if="{{!loading && teach.length && !noResources && applyState}}">
-              <view class="teach-btn">
-                <t-button theme="primary" style="width: 120px; height: 36px" class="btn" bind:tap="uploadFile">
-                  <view slot="content" class="btn-content">
-                    <image src="/static/images/bookService/detail/upload.png" mode="aspectFit" ></image>
-                    <text>涓婁紶璧勬簮</text>
-                  </view>
-                </t-button>
-              </view>
-              <teach-resource applyState="{{applyState}}" rejectCause="{{rejectCause}}" deadline="{{deadline}}" bind:applyResource="applyResource" applyResourceLoading="{{applyResourceLoading}}"></teach-resource>
-              <tree id="teach-tree" openIds="{{openTeachids}}" bookInfo="{{bookDetail}}" treeList="{{teach}}" tab="{{tabValue}}" applyState="{{applyState}}" deadline="{{deadline}}" bind:downloadTeach="downloadTeach" bind:handleTree="handleTree" openTeachids="{{openTeachids}}" wx:if="{{teach.length}}" isShoppingCart="isShoppingCart" bind:updateCloudLearning="updateCloudLearning"></tree>
+          <t-tab-panel
+            label="鏁欏璧勬簮"
+            icon="{{tabValue == 'jsek_teachingResources' ? teachResourcesClickIcon : teachResourcesIcon}}"
+            value="jsek_teachingResources"
+            class="{{loading ? 'loading': ''}}"
+          >
+            <view wx:if="{{!loading  && applyState}}">
+              <teach-resource
+                applyState="{{applyState}}"
+                rejectCause="{{rejectCause}}"
+                deadline="{{deadline}}"
+                bind:applyResource="applyResource"
+                treeList="{{teach}}"
+                applyResourceLoading="{{applyResourceLoading}}"
+                bind:uploadFile="uploadFile"
+              ></teach-resource>
+              <tree
+                id="teach-tree"
+                openIds="{{openTeachids}}"
+                bookInfo="{{bookDetail}}"
+                treeList="{{teach}}"
+                tab="{{tabValue}}"
+                applyState="{{applyState}}"
+                deadline="{{deadline}}"
+                bind:downloadTeach="downloadTeach"
+                bind:handleTree="handleTree"
+                openTeachids="{{openTeachids}}"
+                wx:if="{{teach.length}}"
+                isShoppingCart="isShoppingCart"
+                bind:updateCloudLearning="updateCloudLearning"
+              ></tree>
             </view>
             <!-- <t-loading
               theme="circular"
@@ -145,34 +232,92 @@
               loading="{{loading }}"
             /> -->
             <view wx:if="{{loading}}" style="width: 100%; height: min-content">
-              <t-skeleton row-col="{{rowCol}}" theme="paragraph" animation="gradient" loading="{{loading}}"></t-skeleton>
-            </view>
-            <view wx:if="{{noResources && !loading}}" class="noData">
-              <!-- <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" /> -->
-              <empty />
+              <t-skeleton
+                row-col="{{rowCol}}"
+                theme="paragraph"
+                animation="gradient"
+                loading="{{loading}}"
+              ></t-skeleton>
             </view>
           </t-tab-panel>
-          <t-tab-panel label="浜戝涔�" icon="{{tabValue == 'jsek_cloudLearning' ? learnResourceClickIcon : learnResourceIcon}}" value="jsek_cloudLearning" style="{{tabPanelstyle}}">
+          <t-tab-panel
+            label="浜戝涔�"
+            icon="{{tabValue == 'jsek_cloudLearning' ? learnResourceClickIcon : learnResourceIcon}}"
+            value="jsek_cloudLearning"
+            style="{{tabPanelstyle}}"
+          >
             <view wx:if="{{!loading && learn.length}}">
-              <learn-resource bind:getFreeResource="getFreeResource" bind:allAddShoppiingCar="allAddShoppiingCar" id="learn-resource" buyResourceData="{{buyResourceData}}" bookId="{{bookDetail.id}}" isshowDrawBtn="{{isshowDrawBtn}}" successOrderNumber="{{successOrderNumber}}" isGoBuyResource="{{isGoBuyResource}}"></learn-resource>
+              <learn-resource
+                bind:getFreeResource="getFreeResource"
+                bind:allAddShoppiingCar="allAddShoppiingCar"
+                id="learn-resource"
+                buyResourceData="{{buyResourceData}}"
+                bookId="{{bookDetail.id}}"
+                isshowDrawBtn="{{isshowDrawBtn}}"
+                successOrderNumber="{{successOrderNumber}}"
+                isGoBuyResource="{{isGoBuyResource}}"
+                isShowBuyCloundMenu="{{isShowBuyCloundMenu}}"
+              ></learn-resource>
 
-              <tree id="tree" openIds="{{openLearnids}}" bookInfo="{{bookDetail}}" tab="{{tabValue}}" treeList="{{learn}}" buyIds="{{buyIdList}}" openLearnids="{{openLearnids}}" bind:updateShoppingCartHidden="updateShoppingCartHidden" bind:updateCloudLearning="updateCloudLearning"></tree>
+              <tree
+                id="tree"
+                openIds="{{openLearnids}}"
+                bookInfo="{{bookDetail}}"
+                tab="{{tabValue}}"
+                treeList="{{learn}}"
+                buyIds="{{buyIdList}}"
+                openLearnids="{{openLearnids}}"
+                cloundMenuIsBuy="{{cloundMenuIsBuy}}"
+                bind:updateShoppingCartHidden="updateShoppingCartHidden"
+                bind:updateCloudLearning="updateCloudLearning"
+                bind:getCloundIsBuy="getCloundIsBuy"
+              ></tree>
             </view>
             <view wx:if="{{noResources && !loading}}" class="noData">
               <!-- <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" /> -->
               <empty />
             </view>
           </t-tab-panel>
-          <t-tab-panel label="浜戞祴璇�" icon="{{tabValue == 'questionBank' ? testResourceClickIocn : testResourceIocn}}" value="questionBank" style="{{tabPanelstyle}}">
+          <t-tab-panel
+            label="浜戞祴璇�"
+            icon="{{tabValue == 'questionBank' ? testResourceClickIocn : testResourceIocn}}"
+            value="questionBank"
+            style="{{tabPanelstyle}}"
+          >
             <view wx:if="{{!loading}}">
-              <test-resource id="test-resource" list="{{test}}" bookInfo="{{bookDetail}}" openIds="{{openLearnids}}" mockData="{{mockData}}" tab="{{tabValue}}" storeInfo="{{options.storeInfo}}" jslx="{{jslx}}" bind:buyMock="buyMock"></test-resource>
+              <test-resource
+                id="test-resource"
+                list="{{test}}"
+                bookInfo="{{bookDetail}}"
+                openIds="{{openLearnids}}"
+                mockData="{{mockData}}"
+                tab="{{tabValue}}"
+                storeInfo="{{options.storeInfo}}"
+                jslx="{{jslx}}"
+                bind:buyMock="buyMock"
+              ></test-resource>
             </view>
           </t-tab-panel>
-          <t-tab-panel label="浜戠瑪璁�" icon="{{tabValue == 'jsek_note' ? noteClickIcon: noteIcon}}" value="jsek_note" style="{{tabPanelstyle}}">
+          <t-tab-panel
+            label="浜戠瑪璁�"
+            icon="{{tabValue == 'jsek_note' ? noteClickIcon: noteIcon}}"
+            value="jsek_note"
+            style="{{tabPanelstyle}}"
+          >
             <note bookInfo="{{bookDetail}}" id="note" class="note-list"></note>
           </t-tab-panel>
-          <t-tab-panel label="鐩稿叧鍥句功" icon="{{tabValue == 'related_books' ? linkClickIcon: linkIcon}}" value="related_books" style="{{tabPanelstyle}}">
-            <related-books relatedBookData="{{relatedBookData}}" relatedBookLoading="{{relatedBookLoading}}" noRelatedBookData="{{noRelatedBookData}}" bind:goBookDetails="goBookDetails"></related-books>
+          <t-tab-panel
+            label="鐩稿叧鍥句功"
+            icon="{{tabValue == 'related_books' ? linkClickIcon: linkIcon}}"
+            value="related_books"
+            style="{{tabPanelstyle}}"
+          >
+            <related-books
+              relatedBookData="{{relatedBookData}}"
+              relatedBookLoading="{{relatedBookLoading}}"
+              noRelatedBookData="{{noRelatedBookData}}"
+              bind:goBookDetails="goBookDetails"
+            ></related-books>
           </t-tab-panel>
         </t-tabs>
       </view>
@@ -180,41 +325,86 @@
     <movable-view class="movable-view" :x="{{x}}" :y="{{y}}" direction="all">
       <view class="applyBox" bindtap="goApply">
         <view class="box">
-          <t-image src="/static/images/home/yangshuForm1.png" mode="heightFix" class="img" />
+          <t-image
+            src="/static/images/home/yangshuForm1.png"
+            mode="heightFix"
+            class="img"
+          />
           <view class="num" wx:if="{{num > 0}}">{{num}}</view>
         </view>
       </view>
     </movable-view>
   </movable-area>
   <!-- 鎴戣寤鸿寮圭獥 -->
-  <suggest class="suggest-component" id="suggest-component" bookIcon="{{bookDetail.icon}}" bookName="{{bookDetail.name}}"></suggest>
+  <suggest
+    class="suggest-component"
+    id="suggest-component"
+    bookIcon="{{bookDetail.icon}}"
+    bookName="{{bookDetail.name}}"
+  ></suggest>
   <!-- 鏁欏璧勬簮涓嬭浇鎻愮ず寮圭獥 -->
-  <t-dialog class="teachDownloadDialog" visible="{{isShowTeachDownload}}" title="鎻愮ず" content="璇峰墠寰�PC绔笅杞�" confirm-btn="{{ confirmBtn }}" bind:confirm="closeTeachDownload" />
+  <t-dialog
+    class="teachDownloadDialog"
+    visible="{{isShowTeachDownload}}"
+    title="鎻愮ず"
+    content="璇峰墠寰�PC绔笅杞�"
+    confirm-btn="{{ confirmBtn }}"
+    bind:confirm="closeTeachDownload"
+  />
   <!-- 璐拱鎸夐挳 -->
   <view class="box-bottom">
     <view class="bottom-btn" bind:tap="appplyElectronicBook">
       <view>
-        <t-image loading="" src="/static/images/bookService/detail/ebook.png"></t-image>
+        <t-image
+          loading=""
+          src="/static/images/bookService/detail/ebook.png"
+        ></t-image>
       </view>
       <view class="btn-text">鐢靛瓙鏍蜂功鐢宠</view>
     </view>
     <view class="bottom-btn" bind:tap="appplyPaperBook">
       <view>
-        <t-image src="/static/images/bookService/detail/paper-book.png"></t-image>
+        <t-image
+          src="/static/images/bookService/detail/paper-book.png"
+        ></t-image>
       </view>
       <view class="btn-text">绾歌川鏍蜂功鐢宠</view>
     </view>
-    <view class="{{!bookBuy && bookDetail.isSell ? 'bottom-btn tryRead' : 'bottom-btn try'}}" bind:tap="goRead" wx:if="{{!bookBuy || applicationState == 'overdue'}}">
+    <view
+      class="{{!bookBuy && bookDetail.isSell ? 'bottom-btn tryRead' : 'bottom-btn try'}}"
+      bind:tap="goRead"
+      wx:if="{{!bookBuy || applicationState == 'overdue'}}"
+    >
       <view>
         <t-image src="/static/images/bookService/detail/shidu.png"></t-image>
       </view>
       <view class="btn-text">璇曡</view>
     </view>
 
-    <view class="shopCar shopCarColor" bind:tap="addBookShopcCar" wx:if="{{!bookBuy &&  bookDetail.price !== '0.00' && bookDetail.isSell == '1'}}">鍔犲叆璐墿杞�</view>
-    <view class="buy buyColor" bind:tap="buyBtn" wx:if="{{!bookBuy && bookDetail.price !== '0.00' && bookDetail.isSell == '1'}}">绔嬪嵆璐拱</view>
-    <view class="buy receiveColor" bind:tap="buyBtn" wx:if="{{!bookBuy && bookDetail.price == '0.00' && bookDetail.isSell == '1'}}">鍏嶈垂棰嗗彇</view>
-    <view class="buy read" bind:tap="goRead" wx:if="{{bookBuy || applicationState == 'Normal'}}">绔嬪嵆鏌ョ湅</view>
+    <view
+      class="shopCar shopCarColor"
+      bind:tap="addBookShopcCar"
+      wx:if="{{!bookBuy &&  bookDetail.price !== '0.00' && bookDetail.isSell == '1'}}"
+      >鍔犲叆璐墿杞�</view
+    >
+    <view
+      class="buy buyColor"
+      bind:tap="buyBtn"
+      wx:if="{{!bookBuy && bookDetail.price !== '0.00' && bookDetail.isSell == '1'}}"
+      >绔嬪嵆璐拱</view
+    >
+    <view
+      class="buy receiveColor"
+      bind:tap="buyBtn"
+      wx:if="{{!bookBuy && bookDetail.price == '0.00' && bookDetail.isSell == '1'}}"
+      >鍏嶈垂棰嗗彇</view
+    >
+    <view
+      class="buy read"
+      bind:tap="goRead"
+      wx:if="{{bookBuy || applicationState == 'Normal'}}"
+      >绔嬪嵆鏌ョ湅</view
+    >
   </view>
 </view>
 <view wx:if="{{dialogBox}}">
@@ -224,12 +414,19 @@
       <view class="row-info">
         <view class="body">
           <view class="dialog-title">鏂囦欢涓婁紶</view>
-          <view style="width: 100%; height: 2rpx; background-color: #f4f4f4"></view>
+          <view
+            style="width: 100%; height: 2rpx; background-color: #f4f4f4"
+          ></view>
           <view class="from-item">
             <view class="label"> <text class="icon">*</text>璧勬簮鍚嶇О: </view>
             <view class="item-content">
               <view class="inputBox1">
-                <t-input placeholder="杈撳叆璧勬簮鍚嶇О" borderless value="{{resourceInfo.resourceName}}" bindchange="onNameInput" />
+                <t-input
+                  placeholder="杈撳叆璧勬簮鍚嶇О"
+                  borderless
+                  value="{{resourceInfo.resourceName}}"
+                  bindchange="onNameInput"
+                />
               </view>
             </view>
           </view>
@@ -239,8 +436,25 @@
               <!-- <view class="inputBox1">
                 <t-input placeholder="杈撳叆璧勬簮绫诲瀷" borderless value="{{resourceInfo.fileType}}" bindchange="onFileTypeInput" />
               </view> -->
-              <t-cell class="mb-16" title="" arrow hover note="{{resourceInfo.fileType}}" bind:click="onResourcePicker" />
-              <t-picker visible="{{resourceVisible}}" value="{{resourceValue}}" data-key="resource" title="閫夋嫨璧勬簮绫诲瀷" cancelBtn="鍙栨秷" confirmBtn="纭" usingCustomNavbar bindchange="onPickerChange" bindcancel="onPickerCancel">
+              <t-cell
+                class="mb-16"
+                title=""
+                arrow
+                hover
+                note="{{resourceInfo.fileType}}"
+                bind:click="onResourcePicker"
+              />
+              <t-picker
+                visible="{{resourceVisible}}"
+                value="{{resourceValue}}"
+                data-key="resource"
+                title="閫夋嫨璧勬簮绫诲瀷"
+                cancelBtn="鍙栨秷"
+                confirmBtn="纭"
+                usingCustomNavbar
+                bindchange="onPickerChange"
+                bindcancel="onPickerCancel"
+              >
                 <t-picker-item options="{{fileTypeList}}" />
               </t-picker>
             </view>
@@ -249,24 +463,51 @@
             <view class="label">鏂囦欢鎻忚堪:</view>
             <view class="item-content">
               <view class="inputBox1">
-                <t-textarea placeholder="璇疯緭鍏ユ枃浠舵弿杩�" value="{{resourceInfo.description}}" disableDefaultPadding="{{true}}" autosize="{{true}}" maxlength="300" indicator bind:change="textareaChange" />
+                <t-textarea
+                  placeholder="璇疯緭鍏ユ枃浠舵弿杩�"
+                  value="{{resourceInfo.description}}"
+                  disableDefaultPadding="{{true}}"
+                  autosize="{{true}}"
+                  maxlength="300"
+                  indicator
+                  bind:change="textareaChange"
+                />
               </view>
             </view>
           </view>
           <view class="from-item">
             <view class="label"> <text class="icon">*</text>涓婁紶鏂囦欢: </view>
             <view class="item-content">
-              <t-button size="small" class="right-btn" bind:tap="uploadPicture" wx:if="{{isShowUp}}">鐐瑰嚮涓婁紶</t-button>
-              <view wx:if="{{!isShowUp && fileList.length > 0}}" class="fileList">
+              <t-button
+                size="small"
+                class="right-btn"
+                bind:tap="uploadPicture"
+                wx:if="{{isShowUp}}"
+                >鐐瑰嚮涓婁紶</t-button
+              >
+              <view
+                wx:if="{{!isShowUp && fileList.length > 0}}"
+                class="fileList"
+              >
                 <text>{{fileList[0].name}}</text>
-                <image src="/static/images/bookService/detail/deleteHover.png" class="deleteBtn" data-md5="{{fileList[0].md5}}" bind:tap="handleRemove" />
+                <image
+                  src="/static/images/bookService/detail/deleteHover.png"
+                  class="deleteBtn"
+                  data-md5="{{fileList[0].md5}}"
+                  bind:tap="handleRemove"
+                />
               </view>
             </view>
             <view class="tip">娉細鏂囦欢澶у皬涓嶅緱瓒呰繃50MB</view>
           </view>
           <view class="from-item">
             <view class="protocolBox">
-              <t-checkbox label="鍚屾剰" icon="rectangle" checked="{{resourceInfo.agree}}" bind:change="onChange" />
+              <t-checkbox
+                label="鍚屾剰"
+                icon="rectangle"
+                checked="{{resourceInfo.agree}}"
+                bind:change="onChange"
+              />
               <text class="wait" bind:tap="getAgreement">銆婃巿鏉冨悓鎰忎功銆�</text>
             </view>
           </view>
@@ -281,15 +522,25 @@
 </view>
 
 <view class="popupBox">
-  <t-popup visible="{{protocolShow}}" bind:visible-change="onVisibleChange" placement="center">
+  <t-popup
+    visible="{{protocolShow}}"
+    bind:visible-change="onVisibleChange"
+    placement="center"
+  >
     <view class="block">
       <view class="protocol">
         <rich-text space="emsp" nodes="{{protocolTxt}}" class="content" />
       </view>
-      <t-icon t-class="close-btn" name="close-circle" size="32" color="#fff" bind:tap="onCloseProtocol" />
+      <t-icon
+        t-class="close-btn"
+        name="close-circle"
+        size="32"
+        color="#fff"
+        bind:tap="onCloseProtocol"
+      />
     </view>
   </t-popup>
 </view>
 <!-- <view class="loading" wx:if="{{pageLoading}}">
   <t-loading loading="{{pageLoading}}" size="40"></t-loading>
-</view> -->
\ No newline at end of file
+</view> -->
diff --git a/packageDomain/pages/publickBookForm/index.js b/packageDomain/pages/publickBookForm/index.js
index 97b0ed1..a2e562e 100644
--- a/packageDomain/pages/publickBookForm/index.js
+++ b/packageDomain/pages/publickBookForm/index.js
@@ -35,7 +35,8 @@
     },
     phoneError: false,
     emailError: false,
-    loading: false
+    loading: false,
+    isKeyboard: false
   },
 
   /**
@@ -78,6 +79,22 @@
   onUnload() {
 
   },
+
+  scroll() {
+    // 鐩戝惉瑙嗗浘婊氬姩锛屾墜鍔ㄦ敹璧烽敭鐩�
+    if (this.data.isKeyboard) {
+      console.log(1);
+      wx.hideKeyboard()
+    }
+  },
+  // 鐩戝惉閿洏寮硅捣鍜屾敹璧�
+  bindkeyboardheightchange(e) {
+    // 閿洏楂樺害
+    const height = e.detail.height;
+    this.setData({
+      isKeyboard: height ? true : false
+    })
+  },
   //鑾峰彇瀛楁
   getType() {
     app.MG.resource.getCmsTypeByRefCode({
diff --git a/packageDomain/pages/publickBookForm/index.wxml b/packageDomain/pages/publickBookForm/index.wxml
index a24bfe5..1dd6d69 100644
--- a/packageDomain/pages/publickBookForm/index.wxml
+++ b/packageDomain/pages/publickBookForm/index.wxml
@@ -1,103 +1,218 @@
-<view class="container" style="height:calc(100vh + {{keyboardHeight ? (keyboardHeight + 'px'):'0'}});padding-bottom:calc(180rpx +  {{keyboardHeight ?  120 + 'px':0}}) ">
-  <scroll-view class="scroll content" scroll-y>
-    <view class="tips"> 璇氭寶鐨勬杩庢偍鎶曠鍑轰功锛屽苟閮戦噸鎵胯锛氭垜浠皢璁ょ湡瀹¢槄鎵�鏈夌殑鏉ョ锛屼互浠や汉淇℃湇鐨勬晥鐜囥�佽川閲忓拰绋块叕鎷╀紭鍑虹増锛� </view>
+<view class="container">
+  <scroll-view class="scroll content" scroll-y="{{true}}" bindscroll="scroll">
+    <view class="tips">
+      璇氭寶鐨勬杩庢偍鎶曠鍑轰功锛屽苟閮戦噸鎵胯锛氭垜浠皢璁ょ湡瀹¢槄鎵�鏈夌殑鏉ョ锛屼互浠や汉淇℃湇鐨勬晥鐜囥�佽川閲忓拰绋块叕鎷╀紭鍑虹増锛�
+    </view>
     <view class="page-body">
-      <view class=" baseInfoBox">
+      <view class="baseInfoBox">
         <view class="from-item">
           <view class="label"> <text class="icon">*</text>閫夐鍚嶇О: </view>
           <view class="item-content">
-            <t-textarea placeholder="涓涗功瑕佸垪鍑烘�诲悕绉板拰鍚勬湰涔︾殑鍚嶇О" value="{{teacherInfo.topicName}}" disableDefaultPadding="{{true}}" autosize="{{autosize}}" bindchange="onTopicNameInput" />
+            <t-textarea
+              placeholder="涓涗功瑕佸垪鍑烘�诲悕绉板拰鍚勬湰涔︾殑鍚嶇О"
+              value="{{teacherInfo.topicName}}"
+              disableDefaultPadding="{{true}}"
+              autosize="{{autosize}}"
+              bindchange="onTopicNameInput"
+              bindkeyboardheightchange="bindkeyboardheightchange"
+            />
           </view>
         </view>
         <view class="from-item">
           <view class="label"> <text class="icon">*</text>鐢虫姤浜�: </view>
           <view class="item-content">
-            <t-input placeholder="璇疯緭鍏ョ敵鎶ヤ汉濮撳悕" borderless value="{{teacherInfo.declarer}}" bindchange="onDeclarerInput" />
+            <t-input
+              placeholder="璇疯緭鍏ョ敵鎶ヤ汉濮撳悕"
+              borderless
+              value="{{teacherInfo.declarer}}"
+              bindchange="onDeclarerInput"
+              bindkeyboardheightchange="bindkeyboardheightchange"
+            />
           </view>
         </view>
         <view class="from-item">
           <view class="label"> <text class="icon">*</text>鐢虫姤鍗曚綅: </view>
           <view class="item-content">
-            <t-input placeholder="璇疯緭鍏ョ敵鎶ュ崟浣�" borderless value="{{teacherInfo.declarationUnit}}" bindchange="ondeclarationUnitInput" />
+            <t-input
+              placeholder="璇疯緭鍏ョ敵鎶ュ崟浣�"
+              borderless
+              value="{{teacherInfo.declarationUnit}}"
+              bindchange="ondeclarationUnitInput"
+              bindkeyboardheightchange="bindkeyboardheightchange"
+            />
           </view>
         </view>
         <view class="from-item">
           <view class="label"> <text class="icon">*</text>瀛︾涓撲笟锛� </view>
           <view class="item-content">
-            <t-input placeholder="璇疯緭鍏ュ绉戜笓涓�" borderless value="{{teacherInfo.disciplineMajor}}" bindchange="onDisciplineMajorInput" />
+            <t-input
+              placeholder="璇疯緭鍏ュ绉戜笓涓�"
+              borderless
+              value="{{teacherInfo.disciplineMajor}}"
+              bindchange="onDisciplineMajorInput"
+              bindkeyboardheightchange="bindkeyboardheightchange"
+            />
           </view>
         </view>
         <view class="from-item">
           <view class="label"> <text class="icon">*</text>浣滆�呭熀鏈儏鍐�: </view>
           <view class="item-content">
-            <t-textarea placeholder="濮撳悕銆佽亴鍔°�佺爺绌堕鍩熴�佹�濇兂鍊惧悜銆佸笀寰峰笀椋庛�佸鏈按骞炽�佺爺绌舵垚鏋滅瓑" value="{{teacherInfo.authorBasicInformation}}" disableDefaultPadding="{{true}}" autosize="{{autosize}}" bindchange="onAuthorBasicInfoInput" />
+            <t-textarea
+              placeholder="濮撳悕銆佽亴鍔°�佺爺绌堕鍩熴�佹�濇兂鍊惧悜銆佸笀寰峰笀椋庛�佸鏈按骞炽�佺爺绌舵垚鏋滅瓑"
+              value="{{teacherInfo.authorBasicInformation}}"
+              disableDefaultPadding="{{true}}"
+              autosize="{{autosize}}"
+              bindchange="onAuthorBasicInfoInput"
+              bindkeyboardheightchange="bindkeyboardheightchange"
+            />
           </view>
         </view>
         <view class="from-item">
           <view class="label"> <text class="icon">*</text>鎵嬫満鍙凤細 </view>
           <view class="item-content">
-            <t-input placeholder="杈撳叆鎵嬫満鍙风爜" borderless value="{{teacherInfo.phone}}" type="number" tips="{{phoneError ? '鎵嬫満鍙疯緭鍏ヤ笉姝g‘' : ''}}" bindchange="onPhoneInput" />
+            <t-input
+              placeholder="杈撳叆鎵嬫満鍙风爜"
+              borderless
+              value="{{teacherInfo.phone}}"
+              type="number"
+              tips="{{phoneError ? '鎵嬫満鍙疯緭鍏ヤ笉姝g‘' : ''}}"
+              bindchange="onPhoneInput"
+              bindkeyboardheightchange="bindkeyboardheightchange"
+            />
           </view>
         </view>
         <view class="from-item">
           <view class="label"> <text class="icon">*</text>閭锛� </view>
           <view class="item-content">
-            <t-input placeholder="杈撳叆閭" borderless value="{{teacherInfo.email}}" tips="{{emailError ? '閭杈撳叆涓嶆纭�' : ''}}" bindchange="onEmailInput" />
+            <t-input
+              placeholder="杈撳叆閭"
+              borderless
+              value="{{teacherInfo.email}}"
+              tips="{{emailError ? '閭杈撳叆涓嶆纭�' : ''}}"
+              bindchange="onEmailInput"
+              bindkeyboardheightchange="bindkeyboardheightchange"
+            />
           </view>
         </view>
         <view class="from-item">
           <view class="label"> <text class="icon">*</text>璇昏�呭璞★細 </view>
           <view class="item-content">
-            <t-input placeholder="瀹氫綅銆佽寖鍥淬�佹暟閲忕瓑" borderless value="{{teacherInfo.targetReaders}}" bindchange="onTargetReadersInput" />
+            <t-input
+              placeholder="瀹氫綅銆佽寖鍥淬�佹暟閲忕瓑"
+              borderless
+              value="{{teacherInfo.targetReaders}}"
+              bindchange="onTargetReadersInput"
+              bindkeyboardheightchange="bindkeyboardheightchange"
+            />
           </view>
         </view>
         <view class="from-item">
           <view class="label"> <text class="icon">*</text>閫夐鐗硅壊锛� </view>
           <view class="item-content">
-            <t-textarea placeholder="閫夐鑳屾櫙銆佷富瑕佸唴瀹广�佸嚭鐗堜环鍊肩瓑" value="{{teacherInfo.topicFeatures}}" disableDefaultPadding="{{true}}" autosize="{{autosize}}" bindchange="onTopicFeaturesInput" />
+            <t-textarea
+              placeholder="閫夐鑳屾櫙銆佷富瑕佸唴瀹广�佸嚭鐗堜环鍊肩瓑"
+              value="{{teacherInfo.topicFeatures}}"
+              disableDefaultPadding="{{true}}"
+              autosize="{{autosize}}"
+              bindchange="onTopicFeaturesInput"
+              bindkeyboardheightchange="bindkeyboardheightchange"
+            />
           </view>
         </view>
         <view class="from-item">
-          <view class="label"> <text class="empty"></text>閫夐瀛︽湳褰卞搷涓庨鏈熺ぞ浼氭晥鐩婏細 </view>
+          <view class="label">
+            <text class="empty"></text>閫夐瀛︽湳褰卞搷涓庨鏈熺ぞ浼氭晥鐩婏細
+          </view>
           <view class="item-content">
-            <t-textarea placeholder="閫夐瀛︽湳褰卞搷涓庨鏈熺ぞ浼氭晥鐩�" value="{{teacherInfo.topicImpactAndExpected}}" disableDefaultPadding="{{true}}" autosize="{{autosize}}" bindchange="onTopicImpactAndExpectedInput" />
+            <t-textarea
+              placeholder="閫夐瀛︽湳褰卞搷涓庨鏈熺ぞ浼氭晥鐩�"
+              value="{{teacherInfo.topicImpactAndExpected}}"
+              disableDefaultPadding="{{true}}"
+              autosize="{{autosize}}"
+              bindchange="onTopicImpactAndExpectedInput"
+              bindkeyboardheightchange="bindkeyboardheightchange"
+            />
           </view>
         </view>
         <view class="from-item">
-          <view class="label"> <text class="empty"></text>閫夐鐨勮繘搴﹀畨鎺掞細 </view>
+          <view class="label">
+            <text class="empty"></text>閫夐鐨勮繘搴﹀畨鎺掞細
+          </view>
           <view class="item-content">
-            <t-textarea placeholder="棰勮鏉ョ鏃堕棿銆佸嚭鐗堟椂闂寸瓑" value="{{teacherInfo.topicProgress}}" disableDefaultPadding="{{true}}" autosize="{{autosize}}" bindchange="onTopicProgressInput" />
+            <t-textarea
+              placeholder="棰勮鏉ョ鏃堕棿銆佸嚭鐗堟椂闂寸瓑"
+              value="{{teacherInfo.topicProgress}}"
+              disableDefaultPadding="{{true}}"
+              autosize="{{autosize}}"
+              bindchange="onTopicProgressInput"
+              bindkeyboardheightchange="bindkeyboardheightchange"
+            />
           </view>
         </view>
         <view class="from-item">
           <view class="label"> <text class="empty"></text>甯傚満鍒嗘瀽: </view>
           <view class="item-content">
-            <t-textarea placeholder="甯傚満闇�姹傘�佷笌鍚岀被涔︾殑宸紓鍜屼紭鍔裤�佸畾浠锋爣鍑嗐�侀璁¢攢閲忋�佺泩浜忓垎鏋愮瓑锛屾槸鍚︽湁鍑虹増璧勫姪璐�" value="{{teacherInfo.marketAnalysis}}" disableDefaultPadding="{{true}}" autosize="{{autosize}}" bindchange="onMarketAnalysisInput" />
+            <t-textarea
+              placeholder="甯傚満闇�姹傘�佷笌鍚岀被涔︾殑宸紓鍜屼紭鍔裤�佸畾浠锋爣鍑嗐�侀璁¢攢閲忋�佺泩浜忓垎鏋愮瓑锛屾槸鍚︽湁鍑虹増璧勫姪璐�"
+              value="{{teacherInfo.marketAnalysis}}"
+              disableDefaultPadding="{{true}}"
+              autosize="{{autosize}}"
+              bindchange="onMarketAnalysisInput"
+              bindkeyboardheightchange="bindkeyboardheightchange"
+            />
           </view>
         </view>
         <view class="from-item">
-          <view class="label"> <text class="empty"></text>钀ラ攢涓庡浼犳帹骞胯鍒�: </view>
+          <view class="label">
+            <text class="empty"></text>钀ラ攢涓庡浼犳帹骞胯鍒�:
+          </view>
           <view class="item-content">
-            <t-textarea placeholder="甯傚満闇�姹傘�佷笌鍚岀被涔︾殑宸紓鍜屼紭鍔裤�佸畾浠锋爣鍑嗐�侀璁¢攢閲忋�佺泩浜忓垎鏋愮瓑锛屾槸鍚︽湁鍑虹増璧勫姪璐�" value="{{teacherInfo.marketingAndPromotionPlan}}" disableDefaultPadding="{{true}}" autosize="{{autosize}}" bindchange="onMarketingAndPromotionPlanInput" />
+            <t-textarea
+              placeholder="甯傚満闇�姹傘�佷笌鍚岀被涔︾殑宸紓鍜屼紭鍔裤�佸畾浠锋爣鍑嗐�侀璁¢攢閲忋�佺泩浜忓垎鏋愮瓑锛屾槸鍚︽湁鍑虹増璧勫姪璐�"
+              value="{{teacherInfo.marketingAndPromotionPlan}}"
+              disableDefaultPadding="{{true}}"
+              autosize="{{autosize}}"
+              bindchange="onMarketingAndPromotionPlanInput"
+              bindkeyboardheightchange="bindkeyboardheightchange"
+            />
           </view>
         </view>
         <view class="from-item">
-          <view class="label"> <text class="empty"></text>閰嶅鏁板瓧璧勬簮寮�鍙戞柟妗�: </view>
+          <view class="label">
+            <text class="empty"></text>閰嶅鏁板瓧璧勬簮寮�鍙戞柟妗�:
+          </view>
           <view class="item-content">
-            <t-textarea placeholder="閰嶅鏁板瓧璧勬簮鍚嶇О銆佺被鍨嬨�佸唴瀹广�佺粡璐归绠椼�佹晥鐩婂垎鏋愮瓑" value="{{teacherInfo.digitalResourceDevelopmentPlan}}" disableDefaultPadding="{{true}}" autosize="{{autosize}}" bindchange="ondigitalResourceInput" />
+            <t-textarea
+              placeholder="閰嶅鏁板瓧璧勬簮鍚嶇О銆佺被鍨嬨�佸唴瀹广�佺粡璐归绠椼�佹晥鐩婂垎鏋愮瓑"
+              value="{{teacherInfo.digitalResourceDevelopmentPlan}}"
+              disableDefaultPadding="{{true}}"
+              autosize="{{autosize}}"
+              bindchange="ondigitalResourceInput"
+              bindkeyboardheightchange="bindkeyboardheightchange"
+            />
           </view>
         </view>
         <view class="from-item">
-          <view class="label"> <text class="empty"></text>瀛樺湪鐨勫叾浠栭棶棰�: </view>
+          <view class="label">
+            <text class="empty"></text>瀛樺湪鐨勫叾浠栭棶棰�:
+          </view>
           <view class="item-content">
-            <t-textarea placeholder="璇疯緭鍏ュ叾浠栭棶棰�" value="{{teacherInfo.otherExistingIssues}}" disableDefaultPadding="{{true}}" autosize="{{autosize}}" bindchange="onOtherExistingIssuesInput" />
+            <t-textarea
+              placeholder="璇疯緭鍏ュ叾浠栭棶棰�"
+              value="{{teacherInfo.otherExistingIssues}}"
+              disableDefaultPadding="{{true}}"
+              autosize="{{autosize}}"
+              bindchange="onOtherExistingIssuesInput"
+              bindkeyboardheightchange="bindkeyboardheightchange"
+            />
           </view>
         </view>
         <view class="btn-area">
-          <button class="submit" bindtap="submit" loading="{{loading}}">鎻愪氦</button>
+          <button class="submit" bindtap="submit" loading="{{loading}}">
+            鎻愪氦
+          </button>
         </view>
       </view>
-
     </view>
   </scroll-view>
-</view>
\ No newline at end of file
+</view>
diff --git a/packageDomain/pages/publickBookForm/index.wxss b/packageDomain/pages/publickBookForm/index.wxss
index 801fe24..1a7a447 100644
--- a/packageDomain/pages/publickBookForm/index.wxss
+++ b/packageDomain/pages/publickBookForm/index.wxss
@@ -5,7 +5,7 @@
 
 .container {
   width: 100vw;
-  height: 100vh;
+  height: 100%;
 }
 
 .content {
diff --git a/packageDomain/pages/resourceDetails/myAudio/index.js b/packageDomain/pages/resourceDetails/myAudio/index.js
index af8f609..06c0fb7 100644
--- a/packageDomain/pages/resourceDetails/myAudio/index.js
+++ b/packageDomain/pages/resourceDetails/myAudio/index.js
@@ -45,7 +45,6 @@
     myAudioDuration: '00:00', // 瑙嗛鏃堕棿
     myAudioCurrent: '00:00', // 褰撳墠鎾斁杩涘害
     isplay: false, //鏄惁榛樿鎾斁,
-    selectId: '',
     speed: 1.0,
     myAudioPos: '',
     startTime: "", //杩涘叆椤甸潰褰撳墠鏃堕棿
@@ -145,14 +144,17 @@
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌
    */
   onHide() {
+    // this.setData({
+    //   pauseTime: Date.now()
+    // })
+    // if (wx.getStorageSync(app.config.tokenKey)) {
+    //   let duration = this.data.pauseTime - this.data.startTime
+    //   this.count(duration)
+    // }
+    // this.setPlayerList()
     this.setData({
-      pauseTime: Date.now()
+      isplay: true
     })
-    if (wx.getStorageSync(app.config.tokenKey)) {
-      let duration = this.data.pauseTime - this.data.startTime
-      this.count(duration)
-    }
-    this.setPlayerList()
   },
 
   /**
@@ -162,29 +164,24 @@
    * 
    */
   onUnload() {
-    // this.setData({
-    //   pauseTime: Date.now()
-    // })
-    // if (wx.getStorageSync(app.config.tokenKey)) {
-    //   let duration = this.data.pauseTime - this.data.startTime
-    //   this.count(duration)
-    // }
-
-
-    // myAudio.src = ''
-    // myAudio.destroy()
     this.setData({
       // myAudioPos: '',
       isplay: false, //鏄惁榛樿鎾斁,
       myAudioCurrent: '00:00', // 褰撳墠鎾斁杩涘害
       showData: '',
       speed: 1.0,
+      pauseTime: Date.now()
     });
     myAudio.playbackRate = this.data.speed;
     // 鍋滄闊抽鎾斁
     myAudio.stop();
     // 閿�姣� InnerAudioContext 瀹炰緥
     // myAudio.destroy();
+    // 缁熻瀛︿範鏃堕暱
+    if (wx.getStorageSync(app.config.tokenKey)) {
+      let duration = this.data.pauseTime - this.data.startTime
+      this.count(duration)
+    }
     this.setPlayerList()
   },
   count(timeStr) {
@@ -203,6 +200,7 @@
     if (this.data.cmsId) {
       data.cmsItemId = this.data.cmsId
     }
+    console.log('缁熻', data)
     app.MG.job.newJobWithApiNewEvent(data).then((res) => {})
   },
   /**
@@ -348,11 +346,9 @@
     if (this.data.showData != '') {
       this.setData({
         titleName: item.name,
-        selectId: item.id,
         selectedId: e.currentTarget.dataset.index,
         showData: '',
         activeId: item.id
-
       })
       if (item.selectType == "audio" || item.learnSelectType === "audio") {
         if (this.data.formPath == 'jsek_cloudLearning') {
@@ -645,9 +641,6 @@
         myAudioCurrent: '00:00',
         myAudioPos: '',
       })
-
-
-
     });
 
     //杩涘害鏉″彉鍖�   
@@ -680,57 +673,6 @@
     });
   },
 
-  //鍙冲垏鎹�
-  onLeftSwitch() {
-    this.setData({
-      speed: 1.0,
-      myAudioCurrent: '00:00'
-    })
-    const index = this.data.threeLeveData.findIndex((item) => item.id == this.data.selectId)
-    if (this.data.threeLeveData[index - 1]) {
-      this.changeItem(this.data.threeLeveData[index - 1])
-      this.setData({
-        selectedId: index - 1,
-      })
-    } else {
-      console.log('宸茬粡鏄涓�棣栦簡');
-    }
-  },
-  //鍙冲垏鎹�
-  onRightSwitch() {
-    this.setData({
-      speed: 1.0,
-      myAudioCurrent: '00:00'
-    })
-    const index = this.data.threeLeveData.findIndex((item) => item.id == this.data.selectId)
-    if (this.data.threeLeveData[index + 1]) {
-      this.changeItem(this.data.threeLeveData[index + 1])
-      this.setData({
-        selectedId: index + 1,
-      })
-    } else {
-      console.log('宸茬粡鏄渶鍚庝竴棣栦簡');
-    }
-  },
-
-  // 宸﹀彸鍒囨崲
-  changeItem(item) {
-    if (this.data.showData != '') {
-      this.setData({
-        showData: ''
-      })
-    }
-    this.setData({
-      titleName: item.name,
-      selectId: item.id
-    })
-    if (item.selectType == "audio") {
-      this.setData({
-        showData: app.config.requestCtx + '/file/api/ApiDownload?md5=' + item.file
-      })
-      this.pubulicPlayFun()
-    }
-  },
   // 鎾斁鍊嶉��
   onSpeed() {
     let c = this.data.speed;
@@ -827,12 +769,12 @@
   setPlayerList() {
     let that = this
     if (that.data.progress > 0) {
-      let index = that.data.playerList.findIndex((itemData) => itemData.cmsItemId == that.data.selectId)
+      let index = that.data.playerList.findIndex((itemData) => itemData.cmsItemId == that.data.activeId)
       if (index > -1) {
         that.data.playerList.splice(index, 1)
       }
       that.data.playerList.push({
-        cmsItemId: that.data.selectId,
+        cmsItemId: that.data.activeId,
         progress: that.data.progress
       })
       app.MG.identity
diff --git a/packageDomain/pages/resourceDetails/myAudio/index.wxml b/packageDomain/pages/resourceDetails/myAudio/index.wxml
index 8d11b4c..2ed2084 100644
--- a/packageDomain/pages/resourceDetails/myAudio/index.wxml
+++ b/packageDomain/pages/resourceDetails/myAudio/index.wxml
@@ -22,10 +22,7 @@
     <!-- 瑙嗛鎾斁鐨勬寜閽� -->
     <view class="bigFunctionBox">
       <view class="functionBox">
-        <!-- 宸﹀垏鎹� -->
-        <!-- <view class="leftSwitchBox  color" bind:tap="onLeftSwitch">
-        <t-icon name="previous" size="24" />
-      </view> -->
+
 
         <!-- 鏆傚仠鎾斁 -->
         <view class="audioIconBox color" style="margin-left: 30rpx; margin-right: 10rpx">
@@ -39,10 +36,7 @@
           </view>
         </view>
         <slider style="width: 300rpx" activeColor="#FF6C00" class="mp-slider-bar" block-size="16" value="{{myAudioPos}}" bindchange="hanle_slider_change"></slider>
-        <!-- 鍙冲垏鎹� -->
-        <!-- <view class="rightSwitchBox color" bind:tap="onRightSwitch">
-        <t-icon name="next" size="24" />
-      </view> -->
+
 
         <!-- 鏃堕棿 -->
         <view class="timeBox">
diff --git a/packageDomain/pages/sampleBookList/applicationForm/index.js b/packageDomain/pages/sampleBookList/applicationForm/index.js
index 451f903..d298ac9 100644
--- a/packageDomain/pages/sampleBookList/applicationForm/index.js
+++ b/packageDomain/pages/sampleBookList/applicationForm/index.js
@@ -410,14 +410,14 @@
   // 鐩戝惉椤甸潰杞敭鐩樺脊璧锋墜鍔ㄦ帹鍔ㄩ〉闈�
   scrollToInput(keyboardHeight, scrollTop) {
     this.setData({
-      keyboardHeight,
+      keyboardHeight: keyboardHeight ? keyboardHeight + 300 : 0,
     });
     if (scrollTop) {
       try {
         this.getScrollOffset().then((lastScrollTop) => {
           wx.pageScrollTo({
             // 濡傛灉宸茬粡瀛樺湪婊氬姩锛屽湪姝ゅ熀纭�涓婄户缁粴
-            scrollTop: lastScrollTop ? lastScrollTop + scrollTop : scrollTop,
+            scrollTop: lastScrollTop ? lastScrollTop + scrollTop + 100 : scrollTop + 200,
             duration: 300,
           });
         });
diff --git a/packageDomain/pages/sampleBookList/applicationForm/index.wxml b/packageDomain/pages/sampleBookList/applicationForm/index.wxml
index acd5bf8..1e56e52 100644
--- a/packageDomain/pages/sampleBookList/applicationForm/index.wxml
+++ b/packageDomain/pages/sampleBookList/applicationForm/index.wxml
@@ -1,80 +1,137 @@
-<view class="container" style="height:calc(100vh + {{keyboardHeight ? (keyboardHeight + 'px'):'0'}});padding-bottom:calc(180rpx+  {{keyboardHeight ?  120 + 'px':0}})">
-  <t-tabs t-class="t-tabs" defaultValue="{{active}}" split="{{false}}" bind:change="tabClick" show-bottom-line="false">
+<view class="tab">
+  <t-tabs
+    t-class="t-tabs"
+    defaultValue="{{active}}"
+    split="{{false}}"
+    bind:change="tabClick"
+    show-bottom-line="false"
+  >
     <t-tab-panel label="绾歌川鏍蜂功" value="0" />
     <t-tab-panel label="鐢靛瓙鏍蜂功" value="1" />
   </t-tabs>
-  <view class="page-content">
-    <view class="con-bg"></view>
-    <scroll-view class="scroll content" scroll-y>
-      <view class="bookListBox">
-        <view class="tips">
-          <rich-text space="emsp" nodes="{{description}}" class="content" />
-        </view>
-        <view class="bookList">
-          <view wx:if="{{bookList.length > 0}}">
-            <view wx:for="{{bookList}}" wx:for-item="item" wx:for-index="index" wx:key="index" class="textbooksItemBox">
-              <t-swipe-cell>
-                <t-cell title="宸︽粦鍗曟搷浣�" note="杈呭姪淇℃伅" bordered="{{false}}">
-                  <view class="listItem flex">
-                    <view class="specialSubject-img">
-                      <image src="{{item.icon}}" mode="aspectFill" class="img" wx:if="{{item.icon}}" />
-                      <image src="/static/images/default-book-img.png" mode="aspectFill" class="img" wx:else="" />
-                    </view>
-                    <view class="body-info">
-                      <view class="name">{{item.title}}</view>
-                      <view class="author">浣滆�咃細{{item.author}}</view>
-                      <view class="author">ISBN:{{item.isbn}}</view>
-                      <view class="author" wx:if="{{item.publicationDate}}">鍑虹増鏃堕棿:{{item.publicationDate}}</view>
-                    </view>
-                  </view>
-                </t-cell>
-                <view slot="right" class="btn delete-btn" bind:tap="onDelete" data-book="{{item}}">鍒犻櫎</view>
-              </t-swipe-cell>
-            </view>
-          </view>
-          <view wx:if="{{bookList.length == 0}}" class="empyt">
-            <!-- <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" /> -->
-            <empty />
-          </view>
-        </view>
-      </view>
-      <view class="formBox">
-        <view class="title"> 鎺堣鎯呭喌 </view>
-        <view class="teachingInfo">
-          <view class="item">
-            <text class="label">瀛︽牎锛�</text>
-            <text>{{teacherInfo.schoolName}}</text>
-          </view>
-          <view class="item">
-            <text class="label">浠绘暀璇剧▼锛�</text>
-            <text>{{teacherInfo.courseName}}</text>
-          </view>
-        </view>
-        <view class="title" wx:if="{{active =='0'}}"> 鏀惰揣浜烘儏鍐� </view>
-        <view class="receiverInfo" wx:if="{{active == '0'}}">
-          <view class="item form-input-1">
-            <text class="label"><text class="icon">*</text>濮撳悕锛�</text>
-            <view class="item-content">
-              <t-input placeholder="璇疯緭鍏ョ湡瀹炲鍚�" borderless value="{{contactInfo.user}}" bindchange="onFullNameInput" adjust-position="{{isIos?false:true}}" bindkeyboardheightchange="bindkeyboardheightchange" bindblur="changeParam" data-class="form-input-1" />
-            </view>
-          </view>
-          <view class="item form-input-2">
-            <text class="label"><text class="icon">*</text>鑱旂郴鐢佃瘽锛�</text>
-            <view class="item-content">
-              <t-input placeholder="杈撳叆鑱旂郴鐢佃瘽" borderless value="{{contactInfo.phone}}" type="number" tips="{{phoneError ? '鎵嬫満鍙疯緭鍏ヤ笉姝g‘' : ''}}" bindchange="onPhoneInput" adjust-position="{{isIos?false:true}}" bindkeyboardheightchange="bindkeyboardheightchange" bindblur="changeParam" data-class="form-input-2" />
-            </view>
-          </view>
-          <view class="item form-input-3">
-            <text class="label"><text class="icon">*</text>璇︾粏鍦板潃锛�</text>
-            <view class="item-content">
-              <t-input placeholder="璇疯緭鍏ヨ缁嗗湴鍧�" borderless value="{{contactInfo.address}}" bindchange="onAddressInput" adjust-position="{{isIos?false:true}}" bindkeyboardheightchange="bindkeyboardheightchange" bindblur="changeParam" data-class="form-input-3" />
-            </view>
-          </view>
-        </view>
-      </view>
-      <view class="btn-area">
-        <button class="submit" bindtap="submit">鎻愪氦</button>
-      </view>
-    </scroll-view>
+</view>
+<view class="bookListBox">
+  <view class="tips">
+    <rich-text space="emsp" nodes="{{description}}" class="content" />
   </view>
-</view>
\ No newline at end of file
+  <view class="bookList">
+    <view wx:if="{{bookList.length > 0}}">
+      <view
+        wx:for="{{bookList}}"
+        wx:for-item="item"
+        wx:for-index="index"
+        wx:key="index"
+        class="textbooksItemBox"
+      >
+        <t-swipe-cell>
+          <t-cell title="宸︽粦鍗曟搷浣�" note="杈呭姪淇℃伅" bordered="{{false}}">
+            <view class="listItem flex">
+              <view class="specialSubject-img">
+                <image
+                  src="{{item.icon}}"
+                  mode="aspectFill"
+                  class="img"
+                  wx:if="{{item.icon}}"
+                />
+                <image
+                  src="/static/images/default-book-img.png"
+                  mode="aspectFill"
+                  class="img"
+                  wx:else=""
+                />
+              </view>
+              <view class="body-info">
+                <view class="name">{{item.title}}</view>
+                <view class="author">浣滆�咃細{{item.author}}</view>
+                <view class="author">ISBN:{{item.isbn}}</view>
+                <view class="author" wx:if="{{item.publicationDate}}"
+                  >鍑虹増鏃堕棿:{{item.publicationDate}}</view
+                >
+              </view>
+            </view>
+          </t-cell>
+          <view
+            slot="right"
+            class="btn delete-btn"
+            bind:tap="onDelete"
+            data-book="{{item}}"
+            >鍒犻櫎</view
+          >
+        </t-swipe-cell>
+      </view>
+    </view>
+    <view wx:if="{{bookList.length == 0}}" class="empyt">
+      <!-- <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" /> -->
+      <empty />
+    </view>
+  </view>
+</view>
+<view class="formBox">
+  <view class="title"> 鎺堣鎯呭喌 </view>
+  <view class="teachingInfo">
+    <view class="item">
+      <text class="label">瀛︽牎锛�</text>
+      <text>{{teacherInfo.schoolName}}</text>
+    </view>
+    <view class="item">
+      <text class="label">浠绘暀璇剧▼锛�</text>
+      <text>{{teacherInfo.courseName}}</text>
+    </view>
+  </view>
+  <view class="title" wx:if="{{active =='0'}}"> 鏀惰揣浜烘儏鍐� </view>
+  <view class="receiverInfo" wx:if="{{active == '0'}}">
+    <view class="item form-input-1">
+      <text class="label"><text class="icon">*</text>濮撳悕锛�</text>
+      <view class="item-content">
+        <t-input
+          placeholder="璇疯緭鍏ョ湡瀹炲鍚�"
+          borderless
+          value="{{contactInfo.user}}"
+          bindchange="onFullNameInput"
+          adjust-position="{{false}}"
+          bindkeyboardheightchange="bindkeyboardheightchange"
+          bindblur="changeParam"
+          data-class="form-input-1"
+        />
+      </view>
+    </view>
+    <view class="item form-input-2">
+      <text class="label"><text class="icon">*</text>鑱旂郴鐢佃瘽锛�</text>
+      <view class="item-content">
+        <t-input
+          placeholder="杈撳叆鑱旂郴鐢佃瘽"
+          borderless
+          value="{{contactInfo.phone}}"
+          type="number"
+          tips="{{phoneError ? '鎵嬫満鍙疯緭鍏ヤ笉姝g‘' : ''}}"
+          bindchange="onPhoneInput"
+          adjust-position="{{false}}"
+          bindkeyboardheightchange="bindkeyboardheightchange"
+          bindblur="changeParam"
+          data-class="form-input-2"
+        />
+      </view>
+    </view>
+    <view class="item form-input-3">
+      <text class="label"><text class="icon">*</text>璇︾粏鍦板潃锛�</text>
+      <view class="item-content">
+        <t-input
+          placeholder="璇疯緭鍏ヨ缁嗗湴鍧�"
+          borderless
+          value="{{contactInfo.address}}"
+          bindchange="onAddressInput"
+          adjust-position="{{false}}"
+          bindkeyboardheightchange="bindkeyboardheightchange"
+          bindblur="changeParam"
+          data-class="form-input-3"
+        />
+      </view>
+    </view>
+  </view>
+</view>
+<view
+  class="btn-area"
+  style="padding-bottom: {{keyboardHeight ? keyboardHeight + 'rpx' : '60rpx'}}"
+>
+  <button class="submit" bindtap="submit">鎻愪氦</button>
+</view>
diff --git a/packageDomain/pages/sampleBookList/applicationForm/index.wxss b/packageDomain/pages/sampleBookList/applicationForm/index.wxss
index c58a4bb..cb79294 100644
--- a/packageDomain/pages/sampleBookList/applicationForm/index.wxss
+++ b/packageDomain/pages/sampleBookList/applicationForm/index.wxss
@@ -1,10 +1,12 @@
 page {
-  background-color: #f0f2f5 !important;
+  overflow-y: auto !important;
+  position: relative;
+  background-color: #F2F3F8 !important;
 }
 
 .container {
   width: 100%;
-  height: 100vh;
+  height: 100%;
 }
 
 
@@ -28,13 +30,18 @@
 
 }
 
-.t-tabs {
+.tab {
+  width: 100%;
+  position: fixed !important;
+  top: 0;
+  left: 0;
   padding-top: 20rpx;
+  background-color: #F2F3F8 !important;
+}
+
+.t-tabs {
   background: none !important;
   width: 100%;
-  position: fixed;
-  top: 0rpx;
-  left: 0;
   z-index: 1
 }
 
@@ -77,8 +84,7 @@
   background: #fff;
   min-height: 200rpx;
   border-radius: 10rpx;
-
-  padding: 60rpx 40rpx 40rpx 40rpx;
+  padding: 180rpx 40rpx 40rpx 40rpx;
 }
 
 .tips {
diff --git a/packageDomain/pages/sampleBookList/index.js b/packageDomain/pages/sampleBookList/index.js
index 07ef61a..86387b0 100644
--- a/packageDomain/pages/sampleBookList/index.js
+++ b/packageDomain/pages/sampleBookList/index.js
@@ -84,6 +84,7 @@
     num: 0,
     x: 280,
     y: 300,
+    scrollTop: 0
   },
 
   /**
@@ -205,6 +206,17 @@
     }
     that.getBookList(false);
   },
+  onHide() {
+    const query = wx.createSelectorQuery()
+    query.select('#scrollView').scrollOffset(res => {
+      console.log(1, res);
+      this.setData({
+        scrollTop: res.scrollTop
+      })
+      console.log('闅愯棌', this.data.scrollTop);
+    }).exec()
+
+  },
   goBack() {
     wx.navigateBack();
   },
diff --git a/packageDomain/pages/sampleBookList/index.wxml b/packageDomain/pages/sampleBookList/index.wxml
index 91f1fa4..ce36254 100644
--- a/packageDomain/pages/sampleBookList/index.wxml
+++ b/packageDomain/pages/sampleBookList/index.wxml
@@ -73,10 +73,12 @@
         <!-- model:scroll-top="{{setScrollValue}}" -->
         <scroll-view
           class="scroll content"
+          id="scrollView"
           bind:scroll="onPageScroll"
           scroll-y
+          enable-passive="{{true}}"
           refresher-enabled="{{true}}"
-          lower-threshold="{{200}}"
+          lower-threshold="{{100}}"
           refresher-threshold="{{180}}"
           refresher-default-style="none"
           refresher-triggered="{{triggered}}"
diff --git a/packageDomain/pages/sampleBookList/index.wxss b/packageDomain/pages/sampleBookList/index.wxss
index 9d217bc..abcc3e7 100644
--- a/packageDomain/pages/sampleBookList/index.wxss
+++ b/packageDomain/pages/sampleBookList/index.wxss
@@ -300,9 +300,17 @@
   margin-left: 10rpx;
 }
 
+movable-area {
+  pointer-events: auto;
+}
+
 .movable-area {
   width: 100%;
   height: 100%;
+}
+
+movable-view {
+  pointer-events: auto;
 }
 
 .movable-view {
@@ -354,5 +362,4 @@
 
 .t-search__input-box {
   height: 70rpx !important;
-}
-
+}
\ No newline at end of file
diff --git a/pages/cart/index.js b/pages/cart/index.js
index c873a64..7a91a6d 100644
--- a/pages/cart/index.js
+++ b/pages/cart/index.js
@@ -101,7 +101,7 @@
       searchList: []
     };
     app.MG.store.getShoppingCartProductList(query).then(res => {
-      console.log(res);
+      console.log(res.datas);
       this.setData({
         totalSize: res.totalSize
       })
@@ -119,8 +119,6 @@
         item.type = type; // 灏唗ype璁剧疆涓篿tem瀵硅薄鐨勫睘鎬э紝鑰屼笉鏄娇鐢╯etData
         item.name = item.linkCmsItems[0].name ? item.productMonWithLinkDto.product.name + ':' + item.linkCmsItems[0].name : item.productMonWithLinkDto.product.name
         item.saleMethod.price = this.numFormat(item.saleMethod.price)
-
-        // 
         if (item.productMonWithLinkDto.links[0].storeRefCode == 'jsek_digitalTextbooks') {
           item.typeTxt = '鏁板瓧鏁欐潗'
           item.productType = "鏁板瓧鏁欐潗"
@@ -131,7 +129,7 @@
           item.typeTxt = '鐢靛瓙涔�'
           item.productType = "鍥句功鏈嶅姟-鐢靛瓙涔�"
 
-          if (item.saleMethod.type == 'createProductItemSaleMethod') {
+          if (item.saleMethod.type == 'createProductItemSaleMethod' || item.saleMethod.type == 'createProductFolderSaleMethod') {
             item.typeTxt = '浜戝涔�'
             item.productType = "鍥句功鏈嶅姟-浜戝涔�"
           }
diff --git a/pages/cart/index.wxml b/pages/cart/index.wxml
index 978a60f..e4a685f 100644
--- a/pages/cart/index.wxml
+++ b/pages/cart/index.wxml
@@ -4,7 +4,11 @@
 <!-- loading
 hidden -->
 <view hidden="{{hidden}}">
-  <scroll-view scroll-y="{{true}}" class="outsideContentBox" bindscrolltolower="onScrollToLower">
+  <scroll-view
+    scroll-y="{{true}}"
+    class="outsideContentBox"
+    bindscrolltolower="onScrollToLower"
+  >
     <view>
       <!-- <checkbox-group bindchange="HandelItemChange"> -->
       <view wx:if="{{shoppingCartData.length <= 0}}" class="noDataBox">
@@ -12,7 +16,13 @@
         <empty />
       </view>
       <!-- <button bind:tap="onLogin"> 鍘荤櫥褰�</button> -->
-      <t-swipe-cell wx:for="{{shoppingCartData}}" wx:key="index" wx:for-item="item" wx:for-index="index" opened="{{swipeOpened}}">
+      <t-swipe-cell
+        wx:for="{{shoppingCartData}}"
+        wx:key="index"
+        wx:for-item="item"
+        wx:for-index="index"
+        opened="{{swipeOpened}}"
+      >
         <view class="itemWarp">
           <t-cell bordered="{{false}}">
             <view slot="title" class="titleBox">
@@ -31,8 +41,9 @@
             </view>
             <view slot="description" class="descriptionBox">
               <view>
-                <view class="textBox" wx:if="{{item.type == 'product'}}">鍥句功鏈嶅姟-鐢靛瓙涔�</view>
-                <view class="textBox" wx:if="{{item.type == 'item'}}">鍥句功鏈嶅姟-浜戝涔�</view>
+                <!-- <view class="textBox" wx:if="{{item.type == 'product'}}">鍥句功鏈嶅姟-鐢靛瓙涔�</view>
+                <view class="textBox" wx:if="{{item.type == 'item'}}">鍥句功鏈嶅姟-浜戝涔�</view> -->
+                <view class="textBox"> {{item.productType}} </view>
               </view>
               <view wx:if="{{item.saleMethod.price != 0}}" class="price-box">
                 锟{item.saleMethod.price }}
@@ -41,19 +52,46 @@
             </view>
             <view slot="left-icon" class="left-icon">
               <view class="contentCheckbox">
-                <t-checkbox icon="rectangle" value=" {{item.id}}" data-item="{{item}}" checked="{{item.checked}}" bindchange="HandelItemChange" />
+                <t-checkbox
+                  icon="rectangle"
+                  value=" {{item.id}}"
+                  data-item="{{item}}"
+                  checked="{{item.checked}}"
+                  bindchange="HandelItemChange"
+                />
               </view>
               <view class="left-image" data-item="{{item}}" bind:tap="onBook">
-                <image wx:if="{{item.imgUrl}}" src="{{item.imgUrl}}" class="imageStyle" mode="aspectFit" />
-                <image wx:else src="/static/images/default-book-img.png" class="imageStyle" mode="aspectFit" />
+                <image
+                  wx:if="{{item.imgUrl}}"
+                  src="{{item.imgUrl}}"
+                  class="imageStyle"
+                  mode="aspectFit"
+                />
+                <image
+                  wx:else
+                  src="/static/images/default-book-img.png"
+                  class="imageStyle"
+                  mode="aspectFit"
+                />
               </view>
             </view>
           </t-cell>
         </view>
-        <view slot="right" class="btn delete-btn" bind:tap="onDelete" data-item="{{item}}">鍒犻櫎</view>
+        <view
+          slot="right"
+          class="btn delete-btn"
+          bind:tap="onDelete"
+          data-item="{{item}}"
+          >鍒犻櫎</view
+        >
       </t-swipe-cell>
       <view wx:if="{{shoppingCartData.length > 0}}" class="bottom-box">
-        <t-loading theme="circular" size="40rpx" class="wrapper" wx:if="{{isMore == true}}" />
+        <t-loading
+          theme="circular"
+          size="40rpx"
+          class="wrapper"
+          wx:if="{{isMore == true}}"
+        />
         <text wx:if="{{isMore == false}}">娌℃湁鏇村浜�</text>
       </view>
     </view>
@@ -63,16 +101,25 @@
   <view class="bottomBox">
     <view class="checkGroupBox">
       <checkbox-group bindchange="bottomChange">
-        <checkbox disabled="{{onDisabled}}" value="鍏ㄩ��" checked="{{checkAll}}">鍏ㄩ��</checkbox>
+        <checkbox disabled="{{onDisabled}}" value="鍏ㄩ��" checked="{{checkAll}}"
+          >鍏ㄩ��</checkbox
+        >
       </checkbox-group>
     </view>
     <view class="settlementBox">
-      <view class="totalPrice">鎬讳环:<text class="totalPriceText">锟{totalPrice}}</text></view>
+      <view class="totalPrice"
+        >鎬讳环:<text class="totalPriceText">锟{totalPrice}}</text></view
+      >
       <view class="buttonBox">
-        <t-button class="tButtonBox" size="small" shape="round" bind:tap="goPaymentPage">
+        <t-button
+          class="tButtonBox"
+          size="small"
+          shape="round"
+          bind:tap="goPaymentPage"
+        >
           <view>鍘荤粨绠�({{selectedCount}})</view>
         </t-button>
       </view>
     </view>
   </view>
-</view>
\ No newline at end of file
+</view>
diff --git a/pages/digitalCourses/digitalCoursesDetails/index.js b/pages/digitalCourses/digitalCoursesDetails/index.js
index a795cee..21b05e9 100644
--- a/pages/digitalCourses/digitalCoursesDetails/index.js
+++ b/pages/digitalCourses/digitalCoursesDetails/index.js
@@ -174,9 +174,10 @@
     this.digitalCoursesDetailsGet(options.id)
     this.getPlayerList()
     this.getType()
-    // this.setData({
-    //   userName: JSON.parse(wx.getStorageSync(app.config.userInfoKey)).name,
-    // })
+    this.setData({
+      userName: JSON.parse(wx.getStorageSync(app.config.userInfoKey)).name,
+    })
+    console.log('1', options.id);
   },
 
   /**
@@ -190,6 +191,10 @@
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず
    */
   onShow() {
+    if (this.data.tabValue == 2) {
+      this.getPlayerList()
+      this.getResource()
+    }
 
   },
 
@@ -481,7 +486,6 @@
         res.datas.cmsDatas[0].datas.forEach((item) => {
           if (item.type == 'questionBankFolder' || item.type == 'questionBankItem') {
             test.push(item)
-
           } else if (item.type != "resourceItem") {
             this.data.playerList.forEach(pItem => {
               if (pItem.cmsItemId == item.id) {
@@ -493,9 +497,7 @@
           if (item.type == 'productItem') {
             learnItemList.push(item)
           }
-
         })
-
         if (this.data.selectActive === 'learn') {
           let list = []
           // 娴嬭瘯 6浣�// 姝e紡 5浣�//  娴嬭瘯璋冪敤浼�20锛屽唴閮�7  姝e紡璋冪敤浼�17 鍐呴儴浼�6
@@ -514,6 +516,7 @@
               learnList: list,
               openTeachids: result,
             });
+            console.log(1, this.data.learnList, this.data.playerList)
           }
         } else {
           const data = test.filter(
@@ -878,6 +881,7 @@
             })
             .then((res) => {
               if (res) {
+                this.digitalCoursesDetailsGet(this.data.digitalsData.id);
                 wx.showToast({
                   title: "棰嗗彇鎴愬姛",
                   icon: "none",
diff --git a/pages/digitalCourses/digitalCoursesDetails/index.wxss b/pages/digitalCourses/digitalCoursesDetails/index.wxss
index 3f70b98..27193be 100644
--- a/pages/digitalCourses/digitalCoursesDetails/index.wxss
+++ b/pages/digitalCourses/digitalCoursesDetails/index.wxss
@@ -200,7 +200,7 @@
   height: 68rpx;
   line-height: 68rpx;
   text-align: center;
-
+  color: #ff6c00;
   flex: 1;
 }
 
diff --git a/pages/digitalCourses/index.js b/pages/digitalCourses/index.js
index e7d403b..a99fbbf 100644
--- a/pages/digitalCourses/index.js
+++ b/pages/digitalCourses/index.js
@@ -21,6 +21,7 @@
     activeItem: null,
     loading: false,
     contentLoading: false,
+    noData:false,
     shoppingCartGetId: [],
     sorter: {
       value: "*",
@@ -132,7 +133,7 @@
   },
   getCourseTypeListList() {
     this.setData({
-      loading: true
+      loading: true,
     })
     const data = {
       path: '*',
@@ -230,6 +231,12 @@
       }
     }
     app.MG.store.getProductList(obj).then((res) => {
+      if(!res.datas.length) {
+        return this.setData({
+          noData:true,
+          contentLoading:false
+        })
+      }
       res.datas.forEach(item => {
         item.price = item.price.toFixed(2)
         item.productLinkInfo = JSON.parse(item.productLinkInfo)
diff --git a/pages/digitalCourses/index.wxml b/pages/digitalCourses/index.wxml
index 15d4087..940cc90 100644
--- a/pages/digitalCourses/index.wxml
+++ b/pages/digitalCourses/index.wxml
@@ -5,20 +5,45 @@
   <view class="nacigationBar" style="width: 70%; height: {{navBarHeight}}px;">
     <view class="back-icon">
       <!-- <t-icon name="chevron-left" size="30" data-name="{{item}}" bind:click="goBack" /> -->
-      <image src="/static/images/digitalTextbooks/chevron-left.png" bind:tap="goBack" mode="aspectFit" />
+      <image
+        src="/static/images/digitalTextbooks/chevron-left.png"
+        bind:tap="goBack"
+        mode="aspectFit"
+      />
     </view>
-    <t-search model:value="{{searchValue}}" shape="round" placeholder="璇疯緭鍏ヨ绋嬪悕绉�/ISBN/璇剧▼璐熻矗浜�" class="navBar-search" style="width: 464rpx" bind:submit="searchBook" />
+    <t-search
+      model:value="{{searchValue}}"
+      shape="round"
+      placeholder="璇疯緭鍏ヨ绋嬪悕绉�/ISBN/璇剧▼璐熻矗浜�"
+      class="navBar-search"
+      style="width: 464rpx"
+      bind:submit="searchBook"
+    />
   </view>
   <view class="heardTab">
     <view class="tabBox">
-      <t-tabs defaultValue="{{active}}" bind:change="onTabsChange" t-class="custom-tabs">
-        <t-tab-panel wx:for="{{tabList}}" wx:key="index" wx:for-item="item" label="{{item.name}}" value="{{index}}">
+      <t-tabs
+        defaultValue="{{active}}"
+        bind:change="onTabsChange"
+        t-class="custom-tabs"
+      >
+        <t-tab-panel
+          wx:for="{{tabList}}"
+          wx:key="index"
+          wx:for-item="item"
+          label="{{item.name}}"
+          value="{{index}}"
+        >
         </t-tab-panel>
       </t-tabs>
     </view>
     <view class="dropdown">
       <t-dropdown-menu>
-        <t-dropdown-item options="{{sorter.options}}" default-value="{{sorter.value}}" bindchange="onSort" />
+        <t-dropdown-item
+          options="{{sorter.options}}"
+          default-value="{{sorter.value}}"
+          bindchange="onSort"
+        />
       </t-dropdown-menu>
     </view>
   </view>
@@ -26,17 +51,39 @@
     <view class="titleBox">
       <view class="frameBox"></view>
       <view class="titleTextBox">
-        <image src="/static/images/digitalCourses/zhuantitaolun@2x.png" mode="aspectFit" />
+        <image
+          src="/static/images/digitalCourses/zhuantitaolun@2x.png"
+          mode="aspectFit"
+        />
       </view>
     </view>
-
   </view>
-  <t-skeleton theme="paragraph" animation="gradient" loading="{{contentLoading}}" class="content-loading" wx:if="{{contentLoading}}"></t-skeleton>
-  <scroll-view scroll-y="{{true}}" class="outsideContentBox" bindscrolltolower="onScrollToLower" wx:if="{{!contentLoading}}">
+  <t-skeleton
+    theme="paragraph"
+    animation="gradient"
+    loading="{{contentLoading}}"
+    class="content-loading"
+    wx:if="{{contentLoading}}"
+  ></t-skeleton>
+  <scroll-view
+    scroll-y="{{true}}"
+    class="outsideContentBox"
+    bindscrolltolower="onScrollToLower"
+    wx:if="{{!contentLoading}}"
+  >
     <view class="ExternalInformationBox">
-      <view class="informationBox" wx:for="{{courseList}}" wx:key="index" wx:for-item="item" data-item="{{item}}">
+      <view
+        class="informationBox"
+        wx:for="{{courseList}}"
+        wx:key="index"
+        wx:for-item="item"
+        data-item="{{item}}"
+      >
         <view class="book-img" bind:tap="courseDetail" data-item="{{item}}">
-          <image src="{{item.icon ? item.icon : 'https://jsek.bnuic.com/home/image/courseIcon.png'}}" mode="aspectFit" />
+          <image
+            src="{{item.icon ? item.icon : 'https://jsek.bnuic.com/home/image/courseIcon.png'}}"
+            mode="aspectFit"
+          />
         </view>
         <view class="book-Info">
           <view class="book-name" bind:tap="courseDetail" data-item="{{item}}">
@@ -57,8 +104,8 @@
         </view>
       </view>
     </view>
-    <view wx:if="{{courseList.length <= 0 &&  !contentLoading}}" class="noDataBox">
+    <view wx:if="{{noData}}" class="noDataBox">
       <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" font-size="80" />
     </view>
   </scroll-view>
-</view>
\ No newline at end of file
+</view>
diff --git a/pages/retrievalPage/index.wxml b/pages/retrievalPage/index.wxml
index f05e3dc..60273d6 100644
--- a/pages/retrievalPage/index.wxml
+++ b/pages/retrievalPage/index.wxml
@@ -4,7 +4,12 @@
 <view class="outsideRetrievalPageBox" hidden="{{hidden}}">
   <view class="retrievalPageBox">
     <view class="example-search">
-      <t-search bind:submit="onSearchSubmit" class="searchBox" model:value="{{searchVal}}" placeholder="璇疯緭鍏ュ叧閿瘝/涔﹀悕/ISBN/浣滆��" />
+      <t-search
+        bind:submit="onSearchSubmit"
+        class="searchBox"
+        model:value="{{searchVal}}"
+        placeholder="璇疯緭鍏ュ叧閿瘝/涔﹀悕/ISBN/浣滆��/椤圭洰璐熻矗浜�"
+      />
       <view class="cancellation" bind:tap="onCancellation">鍙栨秷</view>
     </view>
   </view>
@@ -12,9 +17,15 @@
     <!-- Tab甯冨眬 -->
     <scroll-view scroll-x="{{true}}" class="scroll-x">
       <view class="navBox">
-        <view class="titleBox" wx:for="{{tabList}}" bindtap="tabsOn" data-idx="{{item.index}}">
+        <view
+          class="titleBox"
+          wx:for="{{tabList}}"
+          bindtap="tabsOn"
+          data-idx="{{item.index}}"
+        >
           <view class="tabIndexBox">
-            <text class="{{item.index == tabsId ? 'fontColorBox' : ''}}">{{item.title}} ({{item.bookTotal}})
+            <text class="{{item.index == tabsId ? 'fontColorBox' : ''}}"
+              >{{item.title}} ({{item.bookTotal}})
             </text>
           </view>
           <hr class="{{item.index == tabsId ? 'lineBox' : ''}}" />
@@ -22,22 +33,52 @@
       </view>
     </scroll-view>
     <!-- 鍐呭甯冨眬 -->
-    <swiper class="swiperTtemBox" bindchange="slideOn" current="{{tabsId}}" circular>
+    <swiper
+      class="swiperTtemBox"
+      bindchange="slideOn"
+      current="{{tabsId}}"
+      circular
+    >
       <!-- circular 鍚敤寰幆婊戝姩 -->
       <swiper-item>
-        <scroll-view scroll-y="{{true}}" class="scrollViewBox" bindscrolltolower="onScrollToLower">
+        <scroll-view
+          scroll-y="{{true}}"
+          class="scrollViewBox"
+          bindscrolltolower="onScrollToLower"
+        >
           <view class="bookDataBox">
-            <view class="bookDataForBox" wx:for="{{bookData}}" wx:key="index" wx:for-item="item" wx:for-index="index" data-item="{{item}}" bind:tap="onBook">
+            <view
+              class="bookDataForBox"
+              wx:for="{{bookData}}"
+              wx:key="index"
+              wx:for-item="item"
+              wx:for-index="index"
+              data-item="{{item}}"
+              bind:tap="onBook"
+            >
               <view class="imageBox">
-                <image wx:if="{{item.icon}}" src="{{item.icon}}" mode="aspectFit" />
-                <image wx:if="{{!item.icon}}" src="/static/images/default-book-img.png" mode="" />
+                <image
+                  wx:if="{{item.icon}}"
+                  src="{{item.icon}}"
+                  mode="aspectFit"
+                />
+                <image
+                  wx:if="{{!item.icon}}"
+                  src="/static/images/default-book-img.png"
+                  mode=""
+                />
               </view>
               <view class="bookDataNmae"> {{item.name}} </view>
               <view class="bookDataAuthor">{{item.author}}</view>
             </view>
           </view>
           <view wx:if="{{bookData.length}}" class="bottom-box">
-            <t-loading theme="circular" size="40rpx" class="wrapper" wx:if="{{isMore == true}}" />
+            <t-loading
+              theme="circular"
+              size="40rpx"
+              class="wrapper"
+              wx:if="{{isMore == true}}"
+            />
             <text wx:if="{{isMore == false}}">娌℃湁鏇村浜�</text>
           </view>
           <view wx:if="{{bookData.length <= 0}}" class="noDataBox">
@@ -47,11 +88,27 @@
         </scroll-view>
       </swiper-item>
       <swiper-item>
-        <scroll-view scroll-y="{{true}}" class="scrollViewBox" bindscrolltolower="onScrollToLower">
+        <scroll-view
+          scroll-y="{{true}}"
+          class="scrollViewBox"
+          bindscrolltolower="onScrollToLower"
+        >
           <view class="listBox1">
             <view>
-              <view wx:for="{{courseData}}" wx:for-item="item" wx:for-index="index" wx:key="index" bindtap="toList" data-info="{{item}}" class="listItemBox">
-                <view class="listItem flex" data-item="{{item}}" bind:tap="underConstruction">
+              <view
+                wx:for="{{courseData}}"
+                wx:for-item="item"
+                wx:for-index="index"
+                wx:key="index"
+                bindtap="toList"
+                data-info="{{item}}"
+                class="listItemBox"
+              >
+                <view
+                  class="listItem flex"
+                  data-item="{{item}}"
+                  bind:tap="underConstruction"
+                >
                   <view class="specialSubject-img-box">
                     <image src="{{item.icon}}" mode="aspectFill" />
                   </view>
@@ -62,9 +119,17 @@
                       <text>{{item.classHours}}璇炬椂</text>
                     </view>
                     <view class="priceBox flex jc-sb">
-                      <text class="price" wx:if="{{item.price == 0}}">鍏嶈垂</text>
-                      <text class="price" wx:if="{{item.price !== 0}}">锟{item.price}}</text>
-                      <image src="/static/images/home/home-cart.png" mode="aspectFill" class="addCartImg" />
+                      <text class="price" wx:if="{{item.price == 0}}"
+                        >鍏嶈垂</text
+                      >
+                      <text class="price" wx:if="{{item.price !== 0}}"
+                        >锟{item.price}}</text
+                      >
+                      <image
+                        src="/static/images/home/home-cart.png"
+                        mode="aspectFill"
+                        class="addCartImg"
+                      />
                     </view>
                   </view>
                 </view>
@@ -72,7 +137,12 @@
             </view>
           </view>
           <view wx:if="{{courseData.length != 0}}" class="bottom-box">
-            <t-loading theme="circular" size="40rpx" class="wrapper" wx:if="{{isMore == true}}" />
+            <t-loading
+              theme="circular"
+              size="40rpx"
+              class="wrapper"
+              wx:if="{{isMore == true}}"
+            />
             <text wx:if="{{isMore == false}}">娌℃湁鏇村浜�</text>
           </view>
           <view wx:if="{{courseData.length <= 0}}" class="noDataBox">
@@ -82,9 +152,21 @@
         </scroll-view>
       </swiper-item>
       <swiper-item>
-        <scroll-view scroll-y="{{true}}" class="scrollViewBox" bindscrolltolower="onScrollToLower">
+        <scroll-view
+          scroll-y="{{true}}"
+          class="scrollViewBox"
+          bindscrolltolower="onScrollToLower"
+        >
           <view class="bookDataBox">
-            <view class="bookDataForBox" wx:for="{{digitalTextbooksData}}" wx:key="index" wx:for-item="item" wx:for-index="index" data-item="{{item}}" bind:tap="underConstruction">
+            <view
+              class="bookDataForBox"
+              wx:for="{{digitalTextbooksData}}"
+              wx:key="index"
+              wx:for-item="item"
+              wx:for-index="index"
+              data-item="{{item}}"
+              bind:tap="underConstruction"
+            >
               <view class="imageBox">
                 <image src="{{item.icon}}" mode="" />
               </view>
@@ -94,7 +176,12 @@
           </view>
 
           <view wx:if="{{digitalTextbooksData.length != 0}}" class="bottom-box">
-            <t-loading theme="circular" size="40rpx" class="wrapper" wx:if="{{isMore == true}}" />
+            <t-loading
+              theme="circular"
+              size="40rpx"
+              class="wrapper"
+              wx:if="{{isMore == true}}"
+            />
             <text wx:if="{{isMore == false}}">娌℃湁鏇村浜�</text>
           </view>
           <view wx:if="{{digitalTextbooksData.length <= 0}}" class="noDataBox">
@@ -104,29 +191,62 @@
         </scroll-view>
       </swiper-item>
       <swiper-item>
-        <scroll-view scroll-y="{{true}}" class="scrollViewBox" bindscrolltolower="onScrollToLower">
+        <scroll-view
+          scroll-y="{{true}}"
+          class="scrollViewBox"
+          bindscrolltolower="onScrollToLower"
+        >
           <view class="listBox">
-            <view wx:for="{{seminarData}}" wx:for-item="item" wx:for-index="index" wx:key="index" class="listItemBox" data-item="{{item}}" bind:tap="underConstruction">
-              <view class="listItem" bindtap="goSubjectDetail" data-book="{{item}}">
+            <view
+              wx:for="{{seminarData}}"
+              wx:for-item="item"
+              wx:for-index="index"
+              wx:key="index"
+              class="listItemBox"
+              data-item="{{item}}"
+              bind:tap="underConstruction"
+            >
+              <view
+                class="listItem"
+                bindtap="goSubjectDetail"
+                data-book="{{item}}"
+              >
                 <view class="specialSubject-img">
                   <image src="{{item.icon}}" mode="aspectFill" class="img" />
                 </view>
                 <view class="body-info">
                   <view class="name">{{item.name}}</view>
-                  <view class="time" wx:if="{{item.liveTime}}">鐩存挱鏃堕棿锛歿{item.liveTime}}</view>
-                  <view class="time" wx:if="{{item.startTime}}">寮�鎾椂闂达細{{ item.startTime }}</view>
-                  <view class="time" wx:if="{{!item.liveTime && !item.startTime}}">寮�鎾椂闂达細<text class="grey">寰呭畾</text></view>
+                  <view class="time" wx:if="{{item.liveTime}}"
+                    >鐩存挱鏃堕棿锛歿{item.liveTime}}</view
+                  >
+                  <view class="time" wx:if="{{item.startTime}}"
+                    >寮�鎾椂闂达細{{ item.startTime }}</view
+                  >
+                  <view
+                    class="time"
+                    wx:if="{{!item.liveTime && !item.startTime}}"
+                    >寮�鎾椂闂达細<text class="grey">寰呭畾</text></view
+                  >
                   <view class="flex jc-sb">
-                    <text class="author">{{item.lecturer}} {{item.position}}</text>
+                    <text class="author"
+                      >{{item.lecturer}} {{item.position}}</text
+                    >
                     <text class="price" wx:if="{{item.price == 0}}">鍏嶈垂</text>
-                    <text class="price" wx:if="{{item.price !== 0}}">锟{item.price}}</text>
+                    <text class="price" wx:if="{{item.price !== 0}}"
+                      >锟{item.price}}</text
+                    >
                   </view>
                 </view>
               </view>
             </view>
           </view>
           <view wx:if="{{seminarData.length != 0}}" class="bottom-box">
-            <t-loading theme="circular" size="40rpx" class="wrapper" wx:if="{{isMore == true}}" />
+            <t-loading
+              theme="circular"
+              size="40rpx"
+              class="wrapper"
+              wx:if="{{isMore == true}}"
+            />
             <text wx:if="{{isMore == false}}">娌℃湁鏇村浜�</text>
           </view>
           <view wx:if="{{seminarData.length <= 0}}" class="noDataBox">
@@ -136,15 +256,44 @@
         </scroll-view>
       </swiper-item>
       <swiper-item>
-        <scroll-view scroll-y="{{true}}" class="scrollViewBox" bindscrolltolower="onScrollToLower">
+        <scroll-view
+          scroll-y="{{true}}"
+          class="scrollViewBox"
+          bindscrolltolower="onScrollToLower"
+        >
           <view class="outsideHigherBox">
-            <view class="higherBox" wx:for="{{bookFairData}}" wx:key="index" wx:for-item="item" wx:for-index="index">
+            <view
+              class="higherBox"
+              wx:for="{{bookFairData}}"
+              wx:key="index"
+              wx:for-item="item"
+              wx:for-index="index"
+            >
               <view class="outsideHigherImageBox">
-                <view class="higherImageBox" bind:tap="openBookFair" data-item="{{item}}">
+                <view
+                  class="higherImageBox"
+                  bind:tap="openBookFair"
+                  data-item="{{item}}"
+                >
                   <image src="{{item.icon}}" mode="aspectFill" />
-                  <view class="downloadIcon" data-item="{{item}}" data-key="showWithInput" catch:tap="mailbox">
-                    <image wx:if="{{determine}}" class="download" src="/static/images/bibliographyList/email-click.png" mode="aspectFit" />
-                    <image wx:else="" class="downloadshiftin" src="/static/images/bibliographyList/email.png" mode="aspectFit" />
+                  <view
+                    class="downloadIcon"
+                    data-item="{{item}}"
+                    data-key="showWithInput"
+                    catch:tap="mailbox"
+                  >
+                    <image
+                      wx:if="{{determine}}"
+                      class="download"
+                      src="/static/images/bibliographyList/email-click.png"
+                      mode="aspectFit"
+                    />
+                    <image
+                      wx:else=""
+                      class="downloadshiftin"
+                      src="/static/images/bibliographyList/email.png"
+                      mode="aspectFit"
+                    />
                   </view>
                 </view>
               </view>
@@ -153,7 +302,12 @@
           </view>
 
           <view wx:if="{{bookFairData.length != 0}}" class="bottom-box">
-            <t-loading theme="circular" size="40rpx" class="wrapper" wx:if="{{isMore == true}}" />
+            <t-loading
+              theme="circular"
+              size="40rpx"
+              class="wrapper"
+              wx:if="{{isMore == true}}"
+            />
             <text wx:if="{{isMore == false}}">娌℃湁鏇村浜�</text>
           </view>
           <view wx:if="{{bookFairData.length <= 0 }}" class="noDataBox">
@@ -163,21 +317,54 @@
         </scroll-view>
       </swiper-item>
       <swiper-item>
-        <scroll-view scroll-y="{{true}}" class="scrollViewBox" bindscrolltolower="onScrollToLower">
+        <scroll-view
+          scroll-y="{{true}}"
+          class="scrollViewBox"
+          bindscrolltolower="onScrollToLower"
+        >
           <view class="outside">
-            <view class="contentBox" wx:for="{{biblioClassificationData}}" wx:key="index" wx:for-item="item" wx:for-index="index" bindtap="onBookExhibitionDetails" data-item="{{item}}">
-              <image class="bookFairImage" wx:if="{{item.icon}}" src="{{item.icon}}" mode="" />
-              <image class="bookFairImage" wx:else="" src="/static/images/bookExhibitionList/banner.png" mode="" />
+            <view
+              class="contentBox"
+              wx:for="{{biblioClassificationData}}"
+              wx:key="index"
+              wx:for-item="item"
+              wx:for-index="index"
+              bindtap="onBookExhibitionDetails"
+              data-item="{{item}}"
+            >
+              <image
+                class="bookFairImage"
+                wx:if="{{item.icon}}"
+                src="{{item.icon}}"
+                mode=""
+              />
+              <image
+                class="bookFairImage"
+                wx:else=""
+                src="/static/images/bookExhibitionList/banner.png"
+                mode=""
+              />
               <view class="textBox" title="{{item.name}}">
                 <text>{{item.subtitleName}}</text>
               </view>
             </view>
           </view>
-          <view wx:if="{{biblioClassificationData.length != 0}}" class="bottom-box">
-            <t-loading theme="circular" size="40rpx" class="wrapper" wx:if="{{isMore == true}}" />
+          <view
+            wx:if="{{biblioClassificationData.length != 0}}"
+            class="bottom-box"
+          >
+            <t-loading
+              theme="circular"
+              size="40rpx"
+              class="wrapper"
+              wx:if="{{isMore == true}}"
+            />
             <text wx:if="{{isMore == false}}">娌℃湁鏇村浜�</text>
           </view>
-          <view wx:if="{{biblioClassificationData.length <= 0}}" class="noDataBox">
+          <view
+            wx:if="{{biblioClassificationData.length <= 0}}"
+            class="noDataBox"
+          >
             <!-- <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" /> -->
             <empty />
           </view>
@@ -191,7 +378,7 @@
     </t-dialog>
   </view> -->
 </view>
-<view wx:if="{{showWithInput}}"> 
+<view wx:if="{{showWithInput}}">
   <view class="popup-box" bindtap="closeDialog"></view>
   <view class="info-center" style="top:{{height*0.4}}px;">
     <view>
@@ -215,4 +402,4 @@
       </view>
     </view>
   </view>
-</view>
\ No newline at end of file
+</view>

--
Gitblit v1.9.1