From d7b7435558c15789e9a2c650389cd28ce88d443b Mon Sep 17 00:00:00 2001
From: 闫增涛 <1829501689@qq.com>
Date: 星期二, 06 五月 2025 15:05:42 +0800
Subject: [PATCH] 资源查看判断是否购买

---
 packageDomain/pages/resourceDetails/document/index.wxss                          |   20 +
 packageDomain/pages/resourceDetails/document/index.wxml                          |   66 +++-
 packageBookService/pages/bookServices/detail/index.wxml                          |   16 
 packageDomain/pages/resourceDetails/myVideo/index.js                             |   30 ++
 packageDomain/pages/resourceDetails/myAudio/index.js                             |   72 ++++-
 packageDomain/pages/resourceDetails/document/index.json                          |    1 
 packageDomain/pages/resourceDetails/document/index.js                            |  129 ++++-----
 packageBookService/pages/bookServices/detail/components/tree/index.wxml          |    7 
 packageDomain/pages/resourceDetails/myVideo/index.wxml                           |   53 ++-
 packageBookService/pages/bookServices/detail/components/suggestDialog/index.js   |    1 
 packageBookService/pages/bookServices/detail/components/note/note.js             |   13 
 packageBookService/pages/bookServices/detail/components/tree/index.js            |   28 ++
 packageBookService/pages/bookServices/detail/index.js                            |   50 +++
 packageDomain/pages/resourceDetails/myVideo/index.wxss                           |   16 
 packageDomain/pages/resourceDetails/myAudio/index.wxss                           |   16 
 packageDomain/pages/resourceDetails/myAudio/index.wxml                           |  213 +++++++++++++--
 packageBookService/pages/bookServices/detail/components/suggestDialog/index.wxml |    4 
 packageBookService/pages/bookServices/detail/components/suggestDialog/index.wxss |    2 
 18 files changed, 533 insertions(+), 204 deletions(-)

diff --git a/packageBookService/pages/bookServices/detail/components/note/note.js b/packageBookService/pages/bookServices/detail/components/note/note.js
index 5daf2d0..3da3213 100644
--- a/packageBookService/pages/bookServices/detail/components/note/note.js
+++ b/packageBookService/pages/bookServices/detail/components/note/note.js
@@ -66,12 +66,21 @@
       });
     },
     openDialog() {
-      loginInfo(app, (data) => {})
-      if (data)
+      const token = wx.getStorageSync(app.config.tokenKey);
+      if (token) {
         this.setData({
           submitTitle: this.properties.bookInfo.name,
           showNoteDialog: true,
         });
+      } else {
+        loginInfo(app, (data) => {
+          if (data)
+            this.setData({
+              submitTitle: this.properties.bookInfo.name,
+              showNoteDialog: true,
+            });
+        })
+      }
     },
     closeDialog() {
       this.setData({
diff --git a/packageBookService/pages/bookServices/detail/components/suggestDialog/index.js b/packageBookService/pages/bookServices/detail/components/suggestDialog/index.js
index 9ec3c1d..82aa7a5 100644
--- a/packageBookService/pages/bookServices/detail/components/suggestDialog/index.js
+++ b/packageBookService/pages/bookServices/detail/components/suggestDialog/index.js
@@ -36,6 +36,7 @@
    */
   data: {
     inputStyle: 'border: 2rpx solid rgba(220,220,220,1);border-radius: 12rpx; padding: 0 0 0 16rpx;',
+    textareaStyle: 'border: 2rpx solid rgba(220,220,220,1);border-radius: 12rpx; padding: 0 0 0 16rpx;height:240rpx',
     showIndex: null, //鎵撳紑寮圭獥鐨勫搴斾笅鏍�
     height: '', //灞忓箷楂樺害
     inputvalue: '',
diff --git a/packageBookService/pages/bookServices/detail/components/suggestDialog/index.wxml b/packageBookService/pages/bookServices/detail/components/suggestDialog/index.wxml
index 8350c32..e875221 100644
--- a/packageBookService/pages/bookServices/detail/components/suggestDialog/index.wxml
+++ b/packageBookService/pages/bookServices/detail/components/suggestDialog/index.wxml
@@ -2,7 +2,7 @@
 <view class="popup-box" wx:if="{{showIndex=='1'}}" bindtap="closePopup"></view>
 <view
   class="info-center"
-  style="top:{{height*0.3}}px"
+  style="top:{{height*0.1}}px"
   wx:if="{{showIndex=='1'}}"
 >
   <view class="top-icon">
@@ -52,7 +52,7 @@
           disableDefaultPadding="{{true}}"
           indicator
           bind:change="textareaChange"
-          style="{{inputStyle}}"
+          style="{{textareaStyle}}"
           placeholder-style="{{placeholderstyle}}"
         />
       </view>
diff --git a/packageBookService/pages/bookServices/detail/components/suggestDialog/index.wxss b/packageBookService/pages/bookServices/detail/components/suggestDialog/index.wxss
index 3bedf03..f6d1865 100644
--- a/packageBookService/pages/bookServices/detail/components/suggestDialog/index.wxss
+++ b/packageBookService/pages/bookServices/detail/components/suggestDialog/index.wxss
@@ -142,7 +142,7 @@
 
 .popup-content {
   width: 100%;
-  height: 680rpx;
+  height: 550rpx;
   display: flex;
   flex-direction: column;
 }
diff --git a/packageBookService/pages/bookServices/detail/components/tree/index.js b/packageBookService/pages/bookServices/detail/components/tree/index.js
index d7151ef..a36aa4a 100644
--- a/packageBookService/pages/bookServices/detail/components/tree/index.js
+++ b/packageBookService/pages/bookServices/detail/components/tree/index.js
@@ -59,6 +59,12 @@
     },
     isCloundHaveSaleMethod: {
       type: Boolean
+    },
+    activeId: {
+      type: String
+    },
+    source: {
+      type: String
     }
   },
   data: {
@@ -71,7 +77,27 @@
     canExecute: true,
     purchaseList: []
   },
-  ready() {},
+  ready() {
+    var query = this.createSelectorQuery()
+    const that = this
+    try {
+      if (this.data.activeId)
+        setTimeout(() => {
+          query.select('.cms-' + this.data.activeId).boundingClientRect(function (res) {
+            if (res && res.top > 0) {
+              var myEventDetail = {
+                top: res.top
+              };
+              var myEventOption = {
+                bubbles: true,
+                composed: true,
+              };
+              that.triggerEvent("handleScrollTop", myEventDetail, myEventOption);
+            }
+          }).exec()
+        }, 500)
+    } catch (err) {}
+  },
   onLoad() {},
   observers: {
     treeList: function (newValue) {
diff --git a/packageBookService/pages/bookServices/detail/components/tree/index.wxml b/packageBookService/pages/bookServices/detail/components/tree/index.wxml
index aeb2510..a7d6e82 100644
--- a/packageBookService/pages/bookServices/detail/components/tree/index.wxml
+++ b/packageBookService/pages/bookServices/detail/components/tree/index.wxml
@@ -8,7 +8,7 @@
       wx:if="{{item.sysType== 'CmsItem' }}"
     >
       <view
-        class="listItems"
+        class="listItems {{'cms-' + item.id}}"
         wx:if="{{item.childrenFolderCount <= 0 && item.sysType == 'CmsItem'}}"
       >
         <view class="itemsInfo" data-item="{{item}}" data-index="{{index}}">
@@ -136,7 +136,7 @@
       value="{{item.id}}"
       wx:if="{{item.sysType == 'CmsFolder' }}"
     >
-      <view slot="header" class="header-title">
+      <view slot="header" class=" {{'cms-' + item.id}}  header-title">
         <view class="title-checkBox" catchtap="catchTap">
           <t-checkbox
             style="align-items: center"
@@ -183,7 +183,7 @@
       >
         <!-- // 鍒ゆ柇 鏃犲瓙椤� 涓斾负鍟嗗搧item 鐩存帴鏄剧ず -->
         <view
-          class="listItems"
+          class="listItems {{'cms-' + citem.id}}"
           wx:if="{{citem.childrenFolderCount <= 0 && citem.sysType == 'CmsItem'}}"
         >
           <view class="itemsInfo" data-item="{{citem}}" data-index="{{cindex}}">
@@ -314,6 +314,7 @@
           buyIds="{{buyIds}}"
           openIds="{{openIds}}"
           learnMenu="{{learnMenu}}"
+          activeId="{{activeId}}"
           isCloundHaveSaleMethod="{{isCloundHaveSaleMethod}}"
         ></tree>
       </view>
diff --git a/packageBookService/pages/bookServices/detail/index.js b/packageBookService/pages/bookServices/detail/index.js
index 4a1ea38..f25d147 100644
--- a/packageBookService/pages/bookServices/detail/index.js
+++ b/packageBookService/pages/bookServices/detail/index.js
@@ -212,9 +212,19 @@
     protocolTxt: '',
     learnMenu: null,
     md5List: [],
-    editDialog: false
+    editDialog: false,
+    scrollTop: 0, // 鎵爜杩涜祫婧愭粴鍔�
+    source: '',
+    activeId: '',
+    qrTabValue: ''
   },
-
+  // 鎵爜鍒拌祫婧愬垪琛紝婊氬姩鍒拌璧勬簮浣嶇疆
+  handleScrollTop(e) {
+    if (this.data.tabValue == this.data.qrTabValue)
+      this.setData({
+        scrollTop: e.detail.top
+      })
+  },
   resetTree: function (e) {
     this.setData({
       currentCheck: e.detail.checkedItem,
@@ -258,7 +268,11 @@
         name: decodeURI(options.name),
         storeInfo: options.storeInfo,
       },
+      source: options.source,
+      activeId: options.resourceId,
+      qrTabValue: options.tabValue
     });
+    console.log('浼犲弬', this.data);
     wx.setNavigationBarTitle({
       title: decodeURI(options.name),
     })
@@ -1086,7 +1100,11 @@
       }
       let result = [];
       if (type.refCode == "jsek_teachingResources") {
-        this.findChildIds(list, result);
+        if (this.data.activeId) {
+          result = this.findChildIdsByCode(res.datas.cmsDatas[0].datas)
+        } else {
+          this.findChildIds(list, result);
+        }
         this.setData({
           openTeachids: result,
           loading: false,
@@ -1105,14 +1123,21 @@
         ) || (flags && cloundSaleMethod.Price == 0)
         // 鍒ゆ柇浜戝涔犲叏閮ㄨ喘涔版寜閽槸鍚︽樉绀�
         let isShowBuyCloundMenu = flags && cloundSaleMethod.Price > 0 && !this.data.buyIdList.includes(cloundSaleMethod.Id)
-        // 鍒ゆ柇璧勬簮璐拱鎸夐挳鏄惁鏄剧ず
-        let isShowBuyCloundBtn = !flags && res.datas.cmsDatas[0].datas.some(citem => citem.saleMethod.length != 0)
+        // 鍒ゆ柇璧勬簮璐拱鎸夐挳鏄惁鏄剧ず 锛堜簯瀛︿範鏃犻攢鍞柟寮忥紝璧勬簮鍜岀洰褰曚腑鏈夐攢鍞柟寮忥紝涓斿敭浠峰ぇ浜�0锛�
+        let isShowBuyCloundBtn = !flags && 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())
         // 鍒ゆ柇璐墿杞︽寜閽拰閿佹寜閽槸鍚︽樉绀�
         this.handleTreeData(list).forEach(item => {
           item.isbuy = this.resourceIsBuy(item);
           item.isShopCar = this.isShoppingCart(item);
         })
-        this.findChildIds(list, result);
+        if (this.data.activeId) {
+          result = this.findChildIdsByCode(res.datas.cmsDatas[0].datas)
+        } else {
+          this.findChildIds(list, result);
+        }
         this.setData({
           isshowDrawBtn,
           isShowBuyCloundMenu,
@@ -1124,7 +1149,7 @@
           learnPath: type.productLinkPath
         });
       }
-      console.log('1', this.data.teach);
+      console.log('1', result);
     })
   },
   //  鑾峰彇 浜戞祴璇�
@@ -1275,6 +1300,17 @@
       }
   },
 
+  // 鑾峰彇鐩綍鎵爜灞曞紑椤�
+  findChildIdsByCode(list) {
+    let arr = []
+    const data = list.find(item => item.id == this.data.activeId)
+    if (data) {
+      const ids = data.productLinkInfo.find(item => item.CmsItemId == data.id).LinkPath.split('\\')
+      arr = [data.id, ...ids].map(item => Number(item))
+    }
+    return arr
+  },
+
   // 鍥句功娣诲姞璐墿杞�
   addBookShopcCar() {
     const addFun = async () => {
diff --git a/packageBookService/pages/bookServices/detail/index.wxml b/packageBookService/pages/bookServices/detail/index.wxml
index d8164b8..e130935 100644
--- a/packageBookService/pages/bookServices/detail/index.wxml
+++ b/packageBookService/pages/bookServices/detail/index.wxml
@@ -16,6 +16,8 @@
       scroll-y="{{true}}"
       class="book"
       bindscrolltolower="onReachBottom"
+      scroll-with-animation="{{true}}"
+      scroll-top="{{scrollTop}}"
     >
       <!-- 鍥句功璇︽儏 -->
       <view class="book-box">
@@ -195,13 +197,7 @@
               <empty />
             </view>
           </t-tab-panel>
-          <!-- <t-tab-panel
-          label="鐢靛瓙涔�"
-          icon="{{tabValue == 'jsek_eBook' ? eBookClickIcon : eBookIcon}}"
-          value="jsek_eBook"
-          style="{{tabPanelstyle}}"
-        >
-        </t-tab-panel> -->
+
           <t-tab-panel
             label="鏁欏璧勬簮"
             icon="{{tabValue == 'jsek_teachingResources' ? teachResourcesClickIcon : teachResourcesIcon}}"
@@ -229,9 +225,12 @@
                 bind:downloadTeach="downloadTeach"
                 bind:handleTree="handleTree"
                 openTeachids="{{openTeachids}}"
+                source="{{source}}"
+                activeId="{{activeId}}"
                 wx:if="{{teach.length}}"
                 isShoppingCart="isShoppingCart"
                 bind:updateCloudLearning="updateCloudLearning"
+                bind:handleScrollTop="handleScrollTop"
               ></tree>
             </view>
             <view wx:if="{{loading}}" style="width: 100%; height: min-content">
@@ -280,9 +279,12 @@
                 cloundMenuIsBuy="{{cloundMenuIsBuy}}"
                 learnMenu="{{learnMenu}}"
                 isCloundHaveSaleMethod="{{isCloundHaveSaleMethod}}"
+                source="{{source}}"
+                activeId="{{activeId}}"
                 bind:updateShoppingCartHidden="updateShoppingCartHidden"
                 bind:updateCloudLearning="updateCloudLearning"
                 bind:getCloundIsBuy="getCloundIsBuy"
+                bind:handleScrollTop="handleScrollTop"
               ></tree>
             </view>
             <view wx:if="{{noResources && !loading}}" class="noData">
diff --git a/packageDomain/pages/resourceDetails/document/index.js b/packageDomain/pages/resourceDetails/document/index.js
index dac4ffc..03edf9b 100644
--- a/packageDomain/pages/resourceDetails/document/index.js
+++ b/packageDomain/pages/resourceDetails/document/index.js
@@ -55,7 +55,13 @@
     learnTimeList: [],
     learnTimeData: 0,
     threeLeveData: [],
-    selectTypeData: ''
+    selectTypeData: '',
+    promptVisable: false,
+    showMd5: '',
+    confirmBtn: {
+      content: '纭畾',
+      variant: 'base',
+    },
   },
   /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
@@ -385,12 +391,10 @@
       })
       if (this.data.source == 'qrcode') {
         let qrData = this.data.threeLeveData.find(ditem => ditem.id == this.data.activeId)
-        if (qrData && this.data.isLearnDataBuy) {
-          if (qrData) {
-            this.setData({
-              threeLeveData: [qrData]
-            })
-          }
+        if (qrData && this.cmsItemIsBuy(qrData)) {
+          this.setData({
+            threeLeveData: [qrData]
+          })
         } else {
           this.setData({
             threeLeveData: []
@@ -500,7 +504,8 @@
     let that = this
     //鍥剧墖
     if (item.selectType == 'picture' || item.learnSelectType == 'picture') {
-      let file = item.file ? item.file : item.protectedFile ? item.protectedFile : item.freeFile
+      const isBuy = this.cmsItemIsBuy(item)
+      let file = isBuy ? item.protectedFile || item.file : item.freeFile
       this.setData({
         showData: app.config.requestCtx + '/file/api/ApiDownload?md5=' + file,
       })
@@ -520,21 +525,14 @@
       })
       wx.hideLoading();
     }
-    // if (item.selectType == 'pdf') {
-    //   console.log('pdf', item);
-    //   wx.hideLoading()
-    //   let md5 = item.file ? item.file : item.freeFile
-    //   let pdfSrc = app.config.pdfUrl + "?MD5=" + md5 + "&url=" + app.config.requestCtx + '&currentPage=' + "1" + "&isPreview=" + false + "&warterMark=" + "鍖椾含甯堣寖澶у鍑虹増绀�" + "&previewPages=" + 30 + "&token=" + wx.getStorageSync(app.config.tokenKey)
-    //   this.setData({
-    //     pdfSrc: pdfSrc
-    //   })
-    // }
     //鏂囨。绛�
     if (item.selectType == 'document' || item.selectType == 'pdf' || item.learnSelectType == 'document' || item.learnSelectType == 'pdf') {
-      let md5 = item.file ? item.file : item.protectedFile ? item.protectedFile : item.freeFile
+      const isBuy = this.cmsItemIsBuy(item)
+      let md5 = isBuy ? item.protectedFile || item.file || item.freeFile : item.freeFile
       if (item.fileMap[md5]?.extension == 'xlsx' || item.fileMap[md5]?.extension == 'xls') {
         this.setData({
-          selectTypeData: 'excel'
+          selectTypeData: 'excel',
+          showMd5: md5,
         })
         wx.request({
           url: app.config.requestCtx + '/file/api/ApiDownload?md5=' + md5,
@@ -625,56 +623,45 @@
       urls: urls // 闇�瑕侀瑙堢殑鍥剧墖http閾炬帴鍒楄〃
     })
   },
-
-  // myTouchStart(e) {
-  //   //---------------------璁板綍缂╂斁浜嬩欢淇℃伅---------------------
-  //   // 褰撲袱鏍规墜鎸囨斁涓婂幓鐨勬椂鍊欙紝灏嗚窛绂�(distance)鍒濆鍖栥��
-  //   let xMove = e.touches[1].clientX - e.touches[0].clientX;
-  //   let yMove = e.touches[1].clientY - e.touches[0].clientY;
-  //   //璁$畻寮�濮嬭Е鍙戜袱涓墜鎸囧潗鏍囩殑璺濈
-  //   const distance = Math.sqrt(xMove * xMove + yMove * yMove);
-  //   this.setData({
-  //     distance: distance
-  //   })
-  //   //---------------------璁板綍缂╂斁浜嬩欢淇℃伅end---------------------
-  // },
-  // myTouchMove(e) {
-  //   // ----------------鐩戝惉鎵嬪娍缂╁皬鏀惧ぇ浜嬩欢----------------
-  //   // 鍗曟墜鎸囩缉鏀句笉鍋氫换浣曟搷浣�
-  //   if (e.touches.length != 1) {
-  //     //鍙屾墜鎸囪繍鍔� x绉诲姩鍚庣殑鍧愭爣鍜寉绉诲姩鍚庣殑鍧愭爣
-  //     let xMove = e.touches[1].clientX - e.touches[0].clientX;
-  //     let yMove = e.touches[1].clientY - e.touches[0].clientY;
-  //     //鍙屾墜鎸囪繍鍔ㄦ柊鐨� ditance
-  //     let newDistance = Math.sqrt(xMove * xMove + yMove * yMove);
-  //     //璁$畻绉诲姩鐨勮繃绋嬩腑瀹為檯绉诲姩浜嗗灏戠殑璺濈
-  //     let distanceDiff = newDistance - this.data.distance;
-  //     // newScale = scale + 0.005 * distanceDiff
-  //     console.log('绉诲姩璺濈', distanceDiff);
-  //     this.setData({
-  //       newScale: this.data.newScale + 0.005 * distanceDiff
-  //     })
-  //     // 鎵撳紑缂╂斁鐩戝惉
-  //     // zoomFlag = true
-  //     this.setData({
-  //       lzoomFlag: true
-  //     })
-  //     return
-  //   }
-  //   // ----------------鐩戝惉鎵嬪娍缂╁皬鏀惧ぇ浜嬩欢end----------------
-  // },
-  // myTouchEnd() {
-  //   if (this.data.lzoomFlag) {
-  //     if (this.data.newScale > 1.3) {
-  //       console.log("鏀惧ぇ浜�", this.data.newScale);
-  //     } else if (this.data.newScale < 0.7, this.data.newScale) {
-  //       console.log("缂╁皬浜�");
-  //     }
-  //     // 鍏抽棴缂╂斁鐩戝惉
-  //     // zoomFlag = false
-  //     this.setData({
-  //       lzoomFlag: false
-  //     })
-  //   }
-  // },
+  // 鍒ゆ柇褰撳墠鐐瑰嚮鐨勬暟鎹槸鍚﹁喘涔�
+  cmsItemIsBuy(item) {
+    let flag = false
+    // 涔颁簡
+    if (this.data.buyList.length) {
+      if (this.data.buyList.some(citem => item.productLinkPath.includes(citem.productLinkPath)))
+        flag = true
+    } else {
+      // 娌′拱涓旀棤閿�鍞柟寮�
+      if (!item.saleMethod.length) {
+        flag = true
+      } else {
+        // 娌′拱涓旈攢鍞柟寮忚繃鏈�//娌′拱锛岄攢鍞柟寮忎环鏍间负0
+        const itemSaleMethod = item.saleMethod.find(citem => citem.SaleType == 'Normal')
+        if (new Date().getTime() > new Date(itemSaleMethod.EndDate).getTime() || itemSaleMethod.Price == 0) flag = true
+      }
+    }
+    return flag
+  },
+  // 
+  scrolltolower(e) {
+    const activeData = this.data.threeLeveData.find(item => item.id == this.data.activeId)
+    const flag = this.data.naturalResources.some(item => item.includes(activeData.freeFile))
+    if ((this.data.showMd5 == activeData.freeFile || flag) && activeData.protectedFile)
+      this.setData({
+        promptVisable: true
+      })
+  },
+  // 鎻愮ず寮圭獥鍏抽棴
+  closePromapDialog() {
+    this.setData({
+      promptVisable: false
+    })
+    if (this.data.source == 'qrcode') {
+      wx.navigateTo({
+        url: `/packageBookService/pages/bookServices/detail/index?id=${this.data.bookDetail.id}&name=${this.data.bookDetail.name}&tabValue=jsek_cloudLearning`,
+      });
+    } else {
+      wx.navigateBack()
+    }
+  }
 })
\ No newline at end of file
diff --git a/packageDomain/pages/resourceDetails/document/index.json b/packageDomain/pages/resourceDetails/document/index.json
index 65c32cd..2293025 100644
--- a/packageDomain/pages/resourceDetails/document/index.json
+++ b/packageDomain/pages/resourceDetails/document/index.json
@@ -5,6 +5,7 @@
     "t-button": "tdesign-miniprogram/button/button",
     "t-image": "tdesign-miniprogram/image/image",
     "t-toast": "tdesign-miniprogram/toast/toast",
+    "t-dialog": "tdesign-miniprogram/dialog/dialog",
     "t-image-viewer": "tdesign-miniprogram/image-viewer/image-viewer"
   }
 }
\ No newline at end of file
diff --git a/packageDomain/pages/resourceDetails/document/index.wxml b/packageDomain/pages/resourceDetails/document/index.wxml
index 3702219..f4e3b5a 100644
--- a/packageDomain/pages/resourceDetails/document/index.wxml
+++ b/packageDomain/pages/resourceDetails/document/index.wxml
@@ -1,19 +1,13 @@
-<!-- <view style="width: 100%; height: {{barHeight}}px; "></view>
-<view class="nacigationBar" style="width: 70%; height: {{navBarHeight}}px;">
-  <view>
-    <t-icon name="chevron-left" size="30" data-name="{{item}}" bind:click="goBack" />
-  </view>
-  <view class="navbar-title">璧勬簮璇︽儏</view>
-</view>
-
--->
-
-<view class="titleNameBox" wx:if="{{selectType != 'webpage' && learnSelectType != 'webpage'}}">
+<view
+  class="titleNameBox"
+  wx:if="{{selectType != 'webpage' && learnSelectType != 'webpage'}}"
+>
   {{titleName}}
 </view>
-<!-- bind:tap="onClick" -->
-<view class="pictureBox" wx:if="{{selectType == 'picture' || learnSelectType == 'picture'}}">
-  <!-- style="width: {{(newScale <= 5 ? newScale: 5) * 100}}%;" -->
+<view
+  class="pictureBox"
+  wx:if="{{selectType == 'picture' || learnSelectType == 'picture'}}"
+>
   <image
     src="{{showData}}"
     mode="widthFix"
@@ -34,20 +28,34 @@
   </view>
 </view>
 
-<view wx:if="{{(selectType == 'document' || learnSelectType == 'document') && selectTypeData == 'excel'}}" class="excelBox">
-  <!-- <rich-text nodes="{{webpageSrc}}" ></rich-text> -->
-  <view wx:for="{{naturalResources}}"
+<view
+  wx:if="{{(selectType == 'document' || learnSelectType == 'document') && selectTypeData == 'excel'}}"
+  class="excelBox"
+>
+  <view
+    wx:for="{{naturalResources}}"
     wx:key="key"
     wx:for-item="item"
     wx:for-index="index"
     class="textBox"
+  >
+    <view
+      class="textWidth"
+      wx:for="{{item}}"
+      wx:key="key1"
+      wx:for-index="index1"
+      wx:for-item="item1"
+      >{{item1}}</view
     >
-    <view class="textWidth" wx:for="{{item}}" wx:key="key1" wx:for-index="index1" wx:for-item="item1" >{{item1}}</view>
   </view>
-
 </view>
 
-<view wx:if="{{(selectType == 'pdf' ||  selectType == 'document' || learnSelectType == 'pdf' ||  learnSelectType == 'document') && selectTypeData != 'excel'}}">
+<scroll-view
+  wx:if="{{(selectType == 'pdf' ||  selectType == 'document' || learnSelectType == 'pdf' ||  learnSelectType == 'document') && selectTypeData != 'excel'}}"
+  scroll-y="{{true}}"
+  bindscrolltolower="scrolltolower"
+  class="scrollBox"
+>
   <view
     wx:for="{{naturalResources}}"
     wx:key="index"
@@ -66,11 +74,12 @@
     <view class="divider">绗� {{index + 1}} 椤�</view>
   </view>
   <!-- <web-view src="{{pdfSrc}}" id="web-view-pdf" /> -->
-</view>
+</scroll-view>
 
-
-
-<web-view wx:if="{{selectType == 'webpage' || learnSelectType == 'webpage'}}" src="{{webpageSrc}}"></web-view>
+<web-view
+  wx:if="{{selectType == 'webpage' || learnSelectType == 'webpage'}}"
+  src="{{webpageSrc}}"
+></web-view>
 <!-- <button bind:tap="handleTap">鐐逛綅</button> -->
 
 <!-- <t-button theme="primary" size="large" variant="outline" block>鍩虹鍥剧墖棰勮</t-button> -->
@@ -86,3 +95,12 @@
   bind:delete="onDelete"
   bind:close="onClose"
 ></t-image-viewer>
+
+<t-dialog
+  class="prompDialog"
+  visible="{{promptVisable}}"
+  title="鎻愮ず"
+  content="璇曠湅缁撴潫锛岃璐拱姝e紡璧勬簮"
+  confirm-btn="{{ confirmBtn }}"
+  bind:confirm="closePromapDialog"
+/>
diff --git a/packageDomain/pages/resourceDetails/document/index.wxss b/packageDomain/pages/resourceDetails/document/index.wxss
index 118f1e9..126a4b7 100644
--- a/packageDomain/pages/resourceDetails/document/index.wxss
+++ b/packageDomain/pages/resourceDetails/document/index.wxss
@@ -63,10 +63,7 @@
   height: 100%;
 }
 
-.pictureBox image {
-  /* width: 100%;
-  height: auto; */
-}
+
 
 .download-btn {
   width: 100%;
@@ -125,4 +122,19 @@
 .textWidth {
   text-align: center;
   flex: 1;
+}
+
+.scrollBox {
+  height: calc(100vh - env(safe-area-inset-bottom) - 60px);
+}
+
+.prompDialog {
+  --td-button-primary-bg-color: #ff6c00;
+  --td-button-primary-border-color: #ff6c00;
+  --td-button-primary-active-bg-color: #ff984d;
+  --td-button-primary-active-border-color: #ff984d;
+}
+
+.prompDialog .t-dialog__header {
+  margin-top: 30rpx;
 }
\ No newline at end of file
diff --git a/packageDomain/pages/resourceDetails/myAudio/index.js b/packageDomain/pages/resourceDetails/myAudio/index.js
index 85e1bc6..209e23a 100644
--- a/packageDomain/pages/resourceDetails/myAudio/index.js
+++ b/packageDomain/pages/resourceDetails/myAudio/index.js
@@ -63,6 +63,11 @@
     learnTimeList: [],
     learnTimeData: 0,
     toView: 'activeName',
+    promptVisable: false,
+    confirmBtn: {
+      content: '纭畾',
+      variant: 'base',
+    },
   },
 
   format(time) {
@@ -139,6 +144,13 @@
   onShow() {
     this.setData({
       startTime: Date.now()
+    })
+    myAudio.onEnded((e) => {
+      const data = this.data.threeLeveData.find(item => item.id == this.data.activeId)
+      if (data.freeFile && this.data.showData.includes(data.freeFile) && data.protectedFile)
+        this.setData({
+          promptVisable: true
+        })
     })
   },
 
@@ -296,7 +308,6 @@
       const buyList = res.datas.cmsDatas[0].datas.filter(item => item.saleMethod.length && this.data.buyIdList.includes(item.saleMethod.find(citem => citem.SaleType == 'Normal').Id))
       if (this.data.learnClassData && this.data.learnClassData.saleMethod.length) {
         const learnSaleMethod = this.data.learnClassData.saleMethod.find(citem => citem.SaleType == 'Normal')
-        // if (this.data.buyIdList.includes(learnSaleMethod.Id)) buyList.push(learnClassData)
         if (this.data.buyIdList.includes(learnSaleMethod.Id)) {
           buyList.push(this.data.learnClassData)
         } else {
@@ -380,11 +391,6 @@
       let showDataUrl = '';
       let titleName = '';
       res.datas.cmsDatas[0].datas.forEach((item, index) => {
-        // if (this.data.source == 'qrcode') {
-        //   if (item.id == this.data.activeId) {
-        //     this.data.threeLeveData.push(item);
-        //   }
-        // } else {
         if (item.selectType === "audio" || item.learnSelectType === "audio") {
           if (this.data.storeInfo == 'jsek_digitalCourses') {
             if (item.sysType == 'CmsItem') {
@@ -399,7 +405,7 @@
                 this.data.threeLeveData.push(item)
               }
             } else {
-              // if (!item.saleMethod.length) this.data.threeLeveData.push(item)
+
               if (!item.saleMethod.length) {
                 // 娌′拱涓旀棤閿�鍞柟寮�
                 this.data.threeLeveData.push(item)
@@ -410,21 +416,22 @@
                   this.data.threeLeveData.push(item)
                 }
                 //  娌′拱涓斿彧鏈夎瘯璇昏祫婧�
-                if (!item.file && item.freeFile) this.data.threeLeveData.push(item)
+                if ((!item.file && !item.protectedFile) && item.freeFile) {
+                  const state = this.data.threeLeveData.find(citem => citem.id == item.id)
+                  if (!state)
+                    this.data.threeLeveData.push(item)
+                }
               }
             }
           }
         }
-        // }
       });
       if (this.data.source == 'qrcode') {
         let qrData = this.data.threeLeveData.find(ditem => ditem.id == this.data.activeId)
-        if (qrData && this.data.isLearnDataBuy) {
-          if (qrData) {
-            this.setData({
-              threeLeveData: [qrData]
-            })
-          }
+        if (qrData && this.cmsItemIsBuy(qrData)) {
+          this.setData({
+            threeLeveData: [qrData]
+          })
         } else {
           this.setData({
             threeLeveData: []
@@ -440,7 +447,7 @@
         if (selectedId !== -1) {
           let datas = this.data.threeLeveData[selectedId];
           if (this.data.formPath == 'jsek_cloudLearning') {
-            let file = datas.protectedFile ? datas.protectedFile : datas.freeFile
+            let file = this.cmsItemIsBuy(datas) ? datas.protectedFile || datas.freeFile : datas.freeFile
             showDataUrl = app.config.requestCtx + '/file/api/ApiDownloadForAuthorize?md5=' + file + '&token=' + wx.getStorageSync(app.config.tokenKey);
           } else {
             showDataUrl = datas.file ? app.config.requestCtx + '/file/api/ApiDownload?md5=' + datas.file : app.config.requestCtx + '/file/api/ApiDownload?md5=' + datas.freeFile
@@ -824,7 +831,6 @@
     }
 
     setTimeout(() => {
-
       myAudio.startTime = this.data.myAudioDuration //寮�濮嬫椂闂�  
       myAudio.playbackRate = this.data.speed; //  鎾斁閫熺巼
     }, 200);
@@ -925,4 +931,36 @@
         .then((res) => {})
     }
   },
+  // 鍒ゆ柇褰撳墠鐐瑰嚮鐨勬暟鎹槸鍚﹁喘涔�
+  cmsItemIsBuy(item) {
+    let flag = false
+    // 涔颁簡
+    if (this.data.buyList.length) {
+      if (this.data.buyList.some(citem => item.productLinkPath.includes(citem.productLinkPath)))
+        flag = true
+    } else {
+      // 娌′拱涓旀棤閿�鍞柟寮�
+      if (!item.saleMethod.length) {
+        flag = true
+      } else {
+        // 娌′拱涓旈攢鍞柟寮忚繃鏈�//娌′拱锛岄攢鍞柟寮忎环鏍间负0
+        const itemSaleMethod = item.saleMethod.find(citem => citem.SaleType == 'Normal')
+        if (new Date().getTime() > new Date(itemSaleMethod.EndDate).getTime() || itemSaleMethod.Price == 0) flag = true
+      }
+    }
+    return flag
+  },
+  // 鎻愮ず寮圭獥鍏抽棴
+  closePromapDialog() {
+    this.setData({
+      promptVisable: false
+    })
+    if (this.data.source == 'qrcode') {
+      wx.navigateTo({
+        url: `/packageBookService/pages/bookServices/detail/index?id=${this.data.bookDetail.id}&name=${this.data.bookDetail.name}&tabValue=jsek_cloudLearning`,
+      });
+    } else {
+      wx.navigateBack()
+    }
+  }
 })
\ No newline at end of file
diff --git a/packageDomain/pages/resourceDetails/myAudio/index.wxml b/packageDomain/pages/resourceDetails/myAudio/index.wxml
index cd941e2..14764ec 100644
--- a/packageDomain/pages/resourceDetails/myAudio/index.wxml
+++ b/packageDomain/pages/resourceDetails/myAudio/index.wxml
@@ -16,27 +16,43 @@
   </view> -->
 
   <view class="audioPlayerBox">
-    <view class="audioBackground" style="background-image: url('https://jsek.bnuic.com/home/image/video-bg.png');">
+    <view
+      class="audioBackground"
+      style="background-image: url('https://jsek.bnuic.com/home/image/video-bg.png')"
+    >
       <image src="/static/images/resourceDetailsMyAudio/cd.png" alt="" />
     </view>
     <!-- 瑙嗛鎾斁鐨勬寜閽� -->
     <view class="bigFunctionBox">
       <view class="functionBox">
-
-
         <!-- 鏆傚仠鎾斁 -->
-        <view class="audioIconBox color" style="margin-left: 30rpx; margin-right: 10rpx">
+        <view
+          class="audioIconBox color"
+          style="margin-left: 30rpx; margin-right: 10rpx"
+        >
           <view wx:if="{{isplay}}" bind:tap="play" class="pauseCircleBox">
             <!-- <t-icon name="play-circle-stroke" size="24" /> -->
-            <image src="/static/images/resourceDetailsMyAudio/play@2x.png" mode="" />
+            <image
+              src="/static/images/resourceDetailsMyAudio/play@2x.png"
+              mode=""
+            />
           </view>
           <view wx:if="{{!isplay}}" bind:tap="stop" class="pauseCircleBox">
             <!-- <t-icon name="pause-circle-stroke" size="24" /> -->
-            <image src="/static/images/resourceDetailsMyAudio/zanting@2x.png" mode="" />
+            <image
+              src="/static/images/resourceDetailsMyAudio/zanting@2x.png"
+              mode=""
+            />
           </view>
         </view>
-        <slider style="width: 300rpx" activeColor="#FF6C00" class="mp-slider-bar" block-size="16" value="{{myAudioPos}}" bindchange="hanle_slider_change"></slider>
-
+        <slider
+          style="width: 300rpx"
+          activeColor="#FF6C00"
+          class="mp-slider-bar"
+          block-size="16"
+          value="{{myAudioPos}}"
+          bindchange="hanle_slider_change"
+        ></slider>
 
         <!-- 鏃堕棿 -->
         <view class="timeBox">
@@ -49,14 +65,46 @@
         <view class="publicBtn color">
           <view class="publicText" bind:tap="toggleDropdown">
             <view> {{"x "+speed}} </view>
-            <t-icon style="margin-top: 10rpx" wx:if="{{showDropdown}}" name="caret-up-small" size="14" bind:click="onIconTap" />
-            <t-icon style="margin-top: 10rpx" wx:else name="caret-down-small" size="14" bind:click="onIconTap" />
+            <t-icon
+              style="margin-top: 10rpx"
+              wx:if="{{showDropdown}}"
+              name="caret-up-small"
+              size="14"
+              bind:click="onIconTap"
+            />
+            <t-icon
+              style="margin-top: 10rpx"
+              wx:else
+              name="caret-down-small"
+              size="14"
+              bind:click="onIconTap"
+            />
           </view>
           <view class="multipleBox" wx:if="{{showDropdown}}">
-            <view style="margin: 10rpx 0" wx:if="{{speed != 0.5}}" bind:tap="smallSpeed">x0.5</view>
-            <view style="margin: 10rpx 0" wx:if="{{speed != 1}}" bind:tap="smallSpeeDmultiple">x1</view>
-            <view style="margin: 10rpx 0" wx:if="{{speed != 1.5}}" bind:tap="centreSpeed">x1.5</view>
-            <view style="margin: 10rpx 0" wx:if="{{speed != 2}}" bind:tap="bigSpeed">x2</view>
+            <view
+              style="margin: 10rpx 0"
+              wx:if="{{speed != 0.5}}"
+              bind:tap="smallSpeed"
+              >x0.5</view
+            >
+            <view
+              style="margin: 10rpx 0"
+              wx:if="{{speed != 1}}"
+              bind:tap="smallSpeeDmultiple"
+              >x1</view
+            >
+            <view
+              style="margin: 10rpx 0"
+              wx:if="{{speed != 1.5}}"
+              bind:tap="centreSpeed"
+              >x1.5</view
+            >
+            <view
+              style="margin: 10rpx 0"
+              wx:if="{{speed != 2}}"
+              bind:tap="bigSpeed"
+              >x2</view
+            >
           </view>
         </view>
       </view>
@@ -66,23 +114,52 @@
   <!-- 鏍囬 -->
   <view class="titleBox">{{titleName}}</view>
   <view class="contentBox">
-    <t-tabs defaultValue="{{0}}" bind:change="onTabsChange" bind:click="onTabsClick" t-class="custom-tabs" t-class-content="custom-panel" split="{{false}}">
+    <t-tabs
+      defaultValue="{{0}}"
+      bind:change="onTabsChange"
+      bind:click="onTabsClick"
+      t-class="custom-tabs"
+      t-class-content="custom-panel"
+      split="{{false}}"
+    >
       <!-- 璧勬簮鍒楄〃 -->
-      <t-tab-panel label="璧勬簮鍒楄〃" value="0" style="{{tabPanelstyle}}" style="width: 750rpx">
-        <scroll-view style="height:700rpx" scroll-y scroll-into-view="{{toView}}">
-        <view class="wrapper">
-          <!-- <t-collapse value="{{activeValues}}" bind:change="handleChange">
+      <t-tab-panel
+        label="璧勬簮鍒楄〃"
+        value="0"
+        style="{{tabPanelstyle}}"
+        style="width: 750rpx"
+      >
+        <scroll-view
+          style="height: 700rpx"
+          scroll-y
+          scroll-into-view="{{toView}}"
+        >
+          <view class="wrapper">
+            <!-- <t-collapse value="{{activeValues}}" bind:change="handleChange">
             <t-collapse-panel header="{{parentName}}" value="{{0}}" expandIcon>
         
             </t-collapse-panel>
           </t-collapse> -->
-          <view class="outsideDetailsName">
-            <view class="titleBox"> {{parentName}}</view>
-            <view class="detailsName" wx:for="{{threeLeveData}}" wx:key="index" wx:for-item="item" wx:for-index="index" bind:tap="onVideo" data-item="{{item}}" data-index="{{index}}" id="{{selectedId == index ? 'activeName'+index : ''}}">
-              <view style="color: {{selectedId == index ? '#ff6c00' : '#000'}} ">{{item.name}}</view>
+            <view class="outsideDetailsName">
+              <view class="titleBox"> {{parentName}}</view>
+              <view
+                class="detailsName"
+                wx:for="{{threeLeveData}}"
+                wx:key="index"
+                wx:for-item="item"
+                wx:for-index="index"
+                bind:tap="onVideo"
+                data-item="{{item}}"
+                data-index="{{index}}"
+                id="{{selectedId == index ? 'activeName'+index : ''}}"
+              >
+                <view
+                  style="color: {{selectedId == index ? '#ff6c00' : '#000'}} "
+                  >{{item.name}}</view
+                >
+              </view>
             </view>
           </view>
-        </view>
         </scroll-view>
       </t-tab-panel>
       <!-- 绗旇灞曠ず -->
@@ -94,9 +171,16 @@
               <empty />
             </view>
 
-            <t-collapse-panel value="{{item.id}}" expandIcon wx:for="{{noteList}}">
+            <t-collapse-panel
+              value="{{item.id}}"
+              expandIcon
+              wx:for="{{noteList}}"
+            >
               <view slot="header" class="collapse-header">
-                <t-image class="note-icon" src="/static/images/bookService/detail/note-icon.png"></t-image>
+                <t-image
+                  class="note-icon"
+                  src="/static/images/bookService/detail/note-icon.png"
+                ></t-image>
                 <view class="header-name">{{item.name}}</view>
               </view>
               <view>
@@ -104,9 +188,19 @@
                 <view class="note-bottom">
                   <view class="note-time">{{item.createDate}}</view>
                   <view class="bottom-btn">
-                    <t-image src="/static/images/bookService/detail/compliceHover.png" class="complice" bind:tap="editNote" data-note="{{item}}"></t-image>
+                    <t-image
+                      src="/static/images/bookService/detail/compliceHover.png"
+                      class="complice"
+                      bind:tap="editNote"
+                      data-note="{{item}}"
+                    ></t-image>
                     <view></view>
-                    <t-image src="/static/images/bookService/detail/deleteHover.png" class="delete" bind:tap="deleteNote" data-id="{{item.id}}"></t-image>
+                    <t-image
+                      src="/static/images/bookService/detail/deleteHover.png"
+                      class="delete"
+                      bind:tap="deleteNote"
+                      data-id="{{item.id}}"
+                    ></t-image>
                   </view>
                 </view>
               </view>
@@ -119,7 +213,10 @@
     <!-- 璁扮瑪璁� -->
     <view class="takeNotes" data-key="showCloseBtn" bind:tap="showDialog">
       <view class="takeNotesLining">
-        <image src="/static/images/resourceDetails/jibiji锛廼con@2x.png" mode="" />
+        <image
+          src="/static/images/resourceDetails/jibiji锛廼con@2x.png"
+          mode=""
+        />
         璁扮瑪璁�
       </view>
     </view>
@@ -127,28 +224,72 @@
   </view>
 
   <!-- 璁扮瑪璁板脊绐� -->
-  <t-popup visible="{{dialogKey}}" bind:visible-change="onVisibleChange" placement="center">
+  <t-popup
+    visible="{{dialogKey}}"
+    bind:visible-change="onVisibleChange"
+    placement="center"
+  >
     <view class="popup">
       <view slot="title">
         <view class="title-text" wx:if="{{!flag}}">
           <text class="note-title">{{submitTitle}}</text>
-          <t-image src="/static/images/bookService/detail/edit.png" class="edit-icon" bind:tap="changeTitle" data-value="{{true}}"></t-image>
+          <t-image
+            src="/static/images/bookService/detail/edit.png"
+            class="edit-icon"
+            bind:tap="changeTitle"
+            data-value="{{true}}"
+          ></t-image>
         </view>
         <view wx:else>
-          <t-input value="{{submitTitle}}" style="{{inputStyle}}" data-value="{{false}}" bind:enter="changeTitle" bind:blur="changeTitle" maxlength="{{50}}" bind:change="inputChange"></t-input>
+          <t-input
+            value="{{submitTitle}}"
+            style="{{inputStyle}}"
+            data-value="{{false}}"
+            bind:enter="changeTitle"
+            bind:blur="changeTitle"
+            maxlength="{{50}}"
+            bind:change="inputChange"
+          ></t-input>
         </view>
       </view>
       <view slot="content">
         <view class="textarea-example">
           <text class="textarea-example__label">鍐呭:</text>
-          <t-textarea value="{{textvalue}}" t-class="external-class" placeholder="璇疯緭鍏ユ枃瀛�" bordered maxlength="500" disableDefaultPadding="{{true}}" indicator style="{{inputStyle}}" bind:change="textareaChange" />
+          <t-textarea
+            value="{{textvalue}}"
+            t-class="external-class"
+            placeholder="璇疯緭鍏ユ枃瀛�"
+            bordered
+            maxlength="500"
+            disableDefaultPadding="{{true}}"
+            indicator
+            style="{{inputStyle}}"
+            bind:change="textareaChange"
+          />
         </view>
 
         <view class="submit-btn">
-          <t-button theme="primary" size="large" block bind:tap="confirmSuggest">鎻愪氦</t-button>
+          <t-button theme="primary" size="large" block bind:tap="confirmSuggest"
+            >鎻愪氦</t-button
+          >
         </view>
       </view>
     </view>
-    <t-icon t-class="close-btn" name="close-circle" size="32" color="#fff" bind:tap="closeDialog" />
+    <t-icon
+      t-class="close-btn"
+      name="close-circle"
+      size="32"
+      color="#fff"
+      bind:tap="closeDialog"
+    />
   </t-popup>
-</view>
\ No newline at end of file
+</view>
+
+<t-dialog
+class="prompDialog"
+  visible="{{promptVisable}}"
+  title="鎻愮ず"
+  content="璇曞惉缁撴潫锛岃璐拱姝e紡璧勬簮"
+  confirm-btn="{{ confirmBtn }}"
+  bind:confirm="closePromapDialog"
+/>
diff --git a/packageDomain/pages/resourceDetails/myAudio/index.wxss b/packageDomain/pages/resourceDetails/myAudio/index.wxss
index 477b3a0..2e9d805 100644
--- a/packageDomain/pages/resourceDetails/myAudio/index.wxss
+++ b/packageDomain/pages/resourceDetails/myAudio/index.wxss
@@ -407,8 +407,16 @@
   flex-direction: row;
 }
 
-.wrapper {
-  /* overflow-y: scroll;
-  overflow-x: hidden;
-  height: 50vh; */
+.t-dialog__header {
+  margin-top: 30rpx;
+}
+
+.prompDialog {
+  --td-button-primary-bg-color: #ff6c00;
+  --td-button-primary-border-color: #ff6c00;
+  --td-button-primary-active-bg-color: #ff984d;
+  --td-button-primary-active-border-color: #ff984d;
+}
+.prompDialog .t-dialog__header {
+  margin-top: 30rpx;
 }
\ No newline at end of file
diff --git a/packageDomain/pages/resourceDetails/myVideo/index.js b/packageDomain/pages/resourceDetails/myVideo/index.js
index 15c01ed..d31a296 100644
--- a/packageDomain/pages/resourceDetails/myVideo/index.js
+++ b/packageDomain/pages/resourceDetails/myVideo/index.js
@@ -61,6 +61,12 @@
     learnTimeList: [],
     learnTimeData: 0,
     toView: 'activeName',
+    promptVisable: false,
+    confirmBtn: {
+      content: '纭畾',
+      variant: 'base',
+    },
+    showMd5: ''
   },
   // 鏍煎紡鍖栫瑪璁版椂闂�
   convertTimestamp(timestamp) {
@@ -458,7 +464,6 @@
         wx.navigateTo({
           url: `/packageBookService/pages/bookServices/detail/index?id=${this.data.bookDetail.id}&name=${this.data.bookDetail.name}&tabValue=jsek_cloudLearning`,
         });
-
       }
       this.setData({
         loading: false,
@@ -520,6 +525,9 @@
         appRefCode: app.config.appRefCode
       }
       app.MG.file.getAliVod(query).then((res) => {
+        this.setData({
+          showMd5: md5
+        })
         if (res) {
           if (res && res.data == '') {
             this.setData({
@@ -877,5 +885,25 @@
       }
     }
     return flag
+  },
+  videoEnd() {
+    const data = this.data.threeLeveData.find(item => item.id == this.data.activeId)
+    if (data.freeFile && (this.data.showDataVod.includes(data.freeFile) || this.data.showMd5 == data.freeFile) && data.protectedFile)
+      this.setData({
+        promptVisable: true
+      })
+  },
+  // 鎻愮ず寮圭獥鍏抽棴
+  closePromapDialog() {
+    this.setData({
+      promptVisable: false
+    })
+    if (this.data.source == 'qrcode') {
+      wx.navigateTo({
+        url: `/packageBookService/pages/bookServices/detail/index?id=${this.data.bookDetail.id}&name=${this.data.bookDetail.name}&tabValue=jsek_cloudLearning`,
+      });
+    } else {
+      wx.navigateBack()
+    }
   }
 })
\ No newline at end of file
diff --git a/packageDomain/pages/resourceDetails/myVideo/index.wxml b/packageDomain/pages/resourceDetails/myVideo/index.wxml
index 70cea7c..67706a1 100644
--- a/packageDomain/pages/resourceDetails/myVideo/index.wxml
+++ b/packageDomain/pages/resourceDetails/myVideo/index.wxml
@@ -16,6 +16,7 @@
       src="{{showDataVod}}"
       style="width: 100%"
       bindvideoloaded="loadedmetadata"
+      bindEnded="videoEnd"
       bindTimeupdate="timeUpdate"
       wx:if="{{!videoLoading}}"
     >
@@ -50,28 +51,33 @@
             loading="true"
           ></t-skeleton>
         </view>
-        <scroll-view style="height:700rpx" scroll-y scroll-into-view="{{toView}}">
-        <view class="wrapper" wx:if="{{!loading}}">
-          <view class="outsideDetailsName">
-            <view class="titleBox">{{parentName}}</view>
-            <view
-              wx:for="{{threeLeveData}}"
-              wx:key="index"
-              wx:for-item="item"
-              wx:for-index="index"
-              bind:tap="onVideo"
-              data-item="{{item}}"
-              data-index="{{index}}"
-              class="detailsName"
-              id="{{selectedId == index ? 'activeName'+index : ''}}"
-            >
-              <view style="color: {{selectedId == index ? '#ff6c00' : '#000'}}"
-                >{{item.name}}</view
+        <scroll-view
+          style="height: 700rpx"
+          scroll-y
+          scroll-into-view="{{toView}}"
+        >
+          <view class="wrapper" wx:if="{{!loading}}">
+            <view class="outsideDetailsName">
+              <view class="titleBox">{{parentName}}</view>
+              <view
+                wx:for="{{threeLeveData}}"
+                wx:key="index"
+                wx:for-item="item"
+                wx:for-index="index"
+                bind:tap="onVideo"
+                data-item="{{item}}"
+                data-index="{{index}}"
+                class="detailsName"
+                id="{{selectedId == index ? 'activeName'+index : ''}}"
               >
+                <view
+                  style="color: {{selectedId == index ? '#ff6c00' : '#000'}}"
+                  >{{item.name}}</view
+                >
+              </view>
             </view>
           </view>
-        </view>
-      </scroll-view>
+        </scroll-view>
       </t-tab-panel>
       <!-- 绗旇灞曠ず -->
       <t-tab-panel label="绗旇" value="1" style="{{tabPanelstyle}}">
@@ -194,3 +200,12 @@
     />
   </t-popup>
 </view>
+
+<t-dialog
+  class="prompDialog"
+  visible="{{promptVisable}}"
+  title="鎻愮ず"
+  content="璇曠湅缁撴潫锛岃璐拱姝e紡璧勬簮"
+  confirm-btn="{{ confirmBtn }}"
+  bind:confirm="closePromapDialog"
+/>
diff --git a/packageDomain/pages/resourceDetails/myVideo/index.wxss b/packageDomain/pages/resourceDetails/myVideo/index.wxss
index 3e52b3e..4388e7f 100644
--- a/packageDomain/pages/resourceDetails/myVideo/index.wxss
+++ b/packageDomain/pages/resourceDetails/myVideo/index.wxss
@@ -356,12 +356,18 @@
 }
 
 
-.wrapper {
-  /* overflow-y: scroll;
-  overflow-x: hidden; */
-  /* height: 50vh; */
-}
 
 .demo-section__content {
   margin: 40rpx;
+}
+
+.prompDialog {
+  --td-button-primary-bg-color: #ff6c00;
+  --td-button-primary-border-color: #ff6c00;
+  --td-button-primary-active-bg-color: #ff984d;
+  --td-button-primary-active-border-color: #ff984d;
+}
+
+.prompDialog .t-dialog__header {
+  margin-top: 30rpx;
 }
\ No newline at end of file

--
Gitblit v1.9.1