From cdfdcec9cc8a7644e70fb28d39a01d438cc74496 Mon Sep 17 00:00:00 2001
From: litian <C21AF165>
Date: 星期一, 25 三月 2024 09:26:30 +0800
Subject: [PATCH] 详情,阅读器

---
 pages/home/home.js                                                         |    2 
 packageBookService/pages/bookServices/detail/components/note/note.js       |    1 
 packageBookService/pages/bookServices/detail/index.json                    |    2 
 packageBookService/pages/bookServices/detail/components/webView/index.js   |  110 +++++++++++++++++++++++++++
 packageBookService/pages/bookServices/detail/components/webView/index.wxss |    4 +
 packageBookService/pages/bookServices/detail/index.wxml                    |   17 +++
 packageBookService/pages/bookServices/detail/index.wxss                    |   12 +++
 assets/js/config.js                                                        |    4 
 packageBookService/pages/bookServices/detail/components/webView/index.wxml |    4 +
 packageBookService/pages/bookServices/detail/index.js                      |   60 ++++++++++++++
 packageBookService/pages/bookServices/detail/components/webView/index.json |    4 +
 11 files changed, 212 insertions(+), 8 deletions(-)

diff --git a/assets/js/config.js b/assets/js/config.js
index f1adde9..4ede485 100644
--- a/assets/js/config.js
+++ b/assets/js/config.js
@@ -20,8 +20,8 @@
 export const fontUrl = "http://192.168.3.132:5173";
 // export const fontUrl = "http://182.92.203.7:3007/jsek/website";
 // export const fontUrl = "http://jsysf.bnuic.com/website";
-// export const epubUrl = "http://182.92.203.7:3007/epubReadMobile/";
-export const epubUrl = "http://jsysf.bnuic.com/epubReadMobile/#/";
+export const epubUrl = "http://182.92.203.7:3007/epubReadMobile/";
+// export const epubUrl = "http://jsysf.bnuic.com/epubReadMobile/#/";
 
 const config = {
   requestCtx,
diff --git a/packageBookService/pages/bookServices/detail/components/note/note.js b/packageBookService/pages/bookServices/detail/components/note/note.js
index 64cc2ad..5f4fb5e 100644
--- a/packageBookService/pages/bookServices/detail/components/note/note.js
+++ b/packageBookService/pages/bookServices/detail/components/note/note.js
@@ -141,7 +141,6 @@
         loading: true,
         noList: false
       })
-      console.log(this.properties.bookInfo.id, 'this.properties.bookInfo.id');
       let topicId
       await app.MG.ugc
         .getProductUserSubmitTopic({
diff --git a/packageBookService/pages/bookServices/detail/components/webView/index.js b/packageBookService/pages/bookServices/detail/components/webView/index.js
new file mode 100644
index 0000000..6c5577c
--- /dev/null
+++ b/packageBookService/pages/bookServices/detail/components/webView/index.js
@@ -0,0 +1,110 @@
+// packageBookService/pages/components/webView/index.js
+const app = getApp()
+Component({
+  /**
+   * 缁勪欢鐨勫睘鎬у垪琛�
+   */
+  properties: {
+    fileInfo: {
+      type: Object,
+      value: {}
+    }
+  },
+  /**
+   * 椤甸潰鐨勫垵濮嬫暟鎹�
+   */
+  data: {
+    src: "",
+    link: false,
+    epubObj: null,
+    currentPage: '',
+  },
+
+  methods: {
+    onLoadWeb(e) {
+      console.log(e, "load")
+    },
+
+    onError(e) {
+      console.log(e, "err")
+    },
+
+    setWebViewSrc() {
+      var url = app.config.epubUrl +
+        "?md5=" +
+        this.properties.fileInfo.md5 +
+        "&bookName=" +
+        this.properties.fileInfo.bookName +
+        "&url=" + app.config.requestCtx +
+        "&token=" +
+        wx.getStorageSync(app.config.tokenKey) +
+        "&recordLocation=" +
+        this.data.currentPage
+      this.setData({
+        src: url
+      })
+    },
+
+    // 鑾峰彇UserKey
+    getProgress() {
+      app.MG.identity
+        .getUserKey({
+          domain: "bookReadProgress",
+          keys: [this.properties.fileInfo.md5],
+        })
+        .then((res) => {
+          if (res.length) {
+            try {
+              this.setData({
+                currentPage: JSON.parse(res[0].value).page,
+              });
+            } catch (error) {
+              this.setData({
+                currentPage: "",
+              });
+            }
+            if (this.data.currentPage > this.properties.fileInfo.freePage) {
+              this.setData({
+                currentPage: "",
+              });
+            }
+          }
+          this.setWebViewSrc();
+        });
+    },
+    // 璁剧疆userKey
+    setProgress(data) {
+      if (data.page && data.page != this.data.currentPage) {
+        app.MG.identity
+          .setUserKey({
+            setKeyRequests: [{
+              domain: "bookReadProgress",
+              key: this.properties.fileInfo.md5,
+              value: JSON.stringify(data),
+            },],
+          })
+          .then((res) => { });
+      }
+    },
+
+    drawBack(e) {
+      let {
+        currentLocation,
+        percentage,
+        type
+      } =
+        e.detail.data[0];
+      if (type == "progress" && type != "backDetail") {
+        this.setProgress({
+          page: currentLocation,
+          progress: percentage,
+        });
+      } else if (type == "backDetail") {
+        this.setProgress({
+          page: 1,
+          progress: "0%",
+        });
+      }
+    },
+  }
+})
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/detail/components/webView/index.json b/packageBookService/pages/bookServices/detail/components/webView/index.json
new file mode 100644
index 0000000..e8cfaaf
--- /dev/null
+++ b/packageBookService/pages/bookServices/detail/components/webView/index.json
@@ -0,0 +1,4 @@
+{
+  "component": true,
+  "usingComponents": {}
+}
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/detail/components/webView/index.wxml b/packageBookService/pages/bookServices/detail/components/webView/index.wxml
new file mode 100644
index 0000000..2cee560
--- /dev/null
+++ b/packageBookService/pages/bookServices/detail/components/webView/index.wxml
@@ -0,0 +1,4 @@
+<!--packageBookService/pages/components/webView/index.wxml-->
+<view class="page-body">
+  <!-- <web-view bind:message="drawBack" binderror="onError" bindload="onLoadWeb" src="{{src}}"></web-view> -->
+</view>
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/detail/components/webView/index.wxss b/packageBookService/pages/bookServices/detail/components/webView/index.wxss
new file mode 100644
index 0000000..06a98b7
--- /dev/null
+++ b/packageBookService/pages/bookServices/detail/components/webView/index.wxss
@@ -0,0 +1,4 @@
+.page-body {
+  width: 100vw;
+  height: 500rpx;
+}
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/detail/index.js b/packageBookService/pages/bookServices/detail/index.js
index 500be20..09c6555 100644
--- a/packageBookService/pages/bookServices/detail/index.js
+++ b/packageBookService/pages/bookServices/detail/index.js
@@ -67,6 +67,12 @@
     paperBookCount: 0, //绾歌川涔﹀墿浣欐鏁�
     ebookCount: 0, //鐢靛瓙涔﹀墿浣欐鏁�
     userInfo: {},
+    fileInfo: {
+      bookName: "",
+      fileType: "",
+      md5: "",
+      freePage: ""
+    }//闃呰鍣ㄦ暟鎹�
   },
 
 
@@ -157,7 +163,7 @@
    * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁�
    */
   onReachBottom() {
-    if (this.data.tabValue == 'jesk_note') {
+    if (this.data.tabValue == 'jsek_note') {
       const child = this.selectComponent('#note')
       child.onReachBottom()
     }
@@ -352,13 +358,44 @@
           this.setData({
             noFile: true
           });
+          if (res.datas[0].bookshelf_pdf) {
+            this.setData({
+              "fileInfo.bookName": this.data.bookDetail.name,
+              "fileInfo.fileType": 'pdf',
+              "fileInfo.md5": res.datas[0].bookshelf_pdf,
+              "fileInfo.freePage": res.datas[0].bookshelf_probationPage,
+            });
+          } else if (res.datas[0].bookshelf_protectedEpub) {
+            this.setData({
+              "fileInfo.bookName": this.data.bookDetail.name,
+              "fileInfo.fileType": 'epub',
+              "fileInfo.md5": res.datas[0].bookshelf_protectedEpub,
+              "fileInfo.freePage": res.datas[0].bookshelf_freeEpub,
+            });
+          }
         }
       } else {
         if (this.data.bookDetail.pdf || this.data.bookDetail.protectedEpub) {
           this.setData({
             noFile: true
           });
+          if (this.data.bookDetail.pdf) {
+            this.setData({
+              "fileInfo.bookName": this.data.bookDetail.name,
+              "fileInfo.fileType": 'pdf',
+              "fileInfo.md5": this.data.bookDetail.pdf,
+              "fileInfo.freePage": this.data.bookDetail.probationPage,
+            });
+          } else if (this.data.bookDetail.protectedEpub) {
+            this.setData({
+              "fileInfo.bookName": this.data.bookDetail.name,
+              "fileInfo.fileType": 'epub',
+              "fileInfo.md5": this.data.bookDetail.protectedEpub,
+              "fileInfo.freePage": this.data.bookDetail.freeEpubPage,
+            });
+          }
         }
+        console.log(this.data.fileInfo, 456)
         this.setData({
           selectedIds: this.data.bookDetail.defaultSaleMethodId,
           bookBuy: this.data.bookDetail.purchasedSaleMethodIdList.indexOf(this.data.bookDetail.defaultSaleMethodId) > -1
@@ -470,6 +507,12 @@
       if (token) {
         child.changeLoading()
         child.getNoteList()
+      }
+
+    } else if (e.detail.label == '鐢靛瓙涔�') {
+      const child = this.selectComponent('#eBook')
+      if (child) {
+        child.getProgress()
       }
 
     }
@@ -1342,6 +1385,21 @@
     }
   },
 
+  goRead() {
+    if (!this.data.noFile) {
+      wx.showToast({
+        title: '鏆傛棤闃呰鏂囦欢',
+        icon: 'none',
+        duration: 2000
+      })
+      return false;
+    }
+    wx.navigateTo({
+      url: '/packageBookService/pages/components/webView/index?md5=' + this.data.fileInfo.md5 + '&fileName=' + this.data.fileInfo.bookName + '&fileType=' + this.data.fileInfo.fileType + '&freePage=' + this.data.fileInfo.freePage
+    })
+
+  },
+
   //鏍蜂功鐢宠
   //鐢宠鐢靛瓙鏍蜂功
   appplyElectronicBook() {
diff --git a/packageBookService/pages/bookServices/detail/index.json b/packageBookService/pages/bookServices/detail/index.json
index 9bba7c1..980bf12 100644
--- a/packageBookService/pages/bookServices/detail/index.json
+++ b/packageBookService/pages/bookServices/detail/index.json
@@ -1,5 +1,4 @@
 {
-  "component": true,
   "usingComponents": {
     "t-icon": "tdesign-miniprogram/icon/icon",
     "t-image": "tdesign-miniprogram/image/image",
@@ -14,6 +13,7 @@
     "note": "/packageBookService/pages/bookServices/detail/components/note/note",
     "tree": "/packageBookService/pages/bookServices/detail/components/tree/index",
     "suggest": "/packageBookService/pages/bookServices/detail/components/suggest/suggest",
+    "epub-view": "/packageBookService/pages/bookServices/detail/components/webView/index",
     "t-loading": "tdesign-miniprogram/loading/loading",
     "t-dialog": "tdesign-miniprogram/dialog/dialog",
     "t-toast": "tdesign-miniprogram/toast/toast",
diff --git a/packageBookService/pages/bookServices/detail/index.wxml b/packageBookService/pages/bookServices/detail/index.wxml
index b55720f..198773c 100644
--- a/packageBookService/pages/bookServices/detail/index.wxml
+++ b/packageBookService/pages/bookServices/detail/index.wxml
@@ -173,8 +173,8 @@
           <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" />
         </view>
       </t-tab-panel>
-      <t-tab-panel label="鐢靛瓙涔�" value="1" style="{{tabPanelstyle}}">
-        鐢靛瓙涔�
+      <t-tab-panel label="鐢靛瓙涔�" value="jsek_eBook" style="{{tabPanelstyle}}">
+        <epub-view fileInfo="{{fileInfo}}" id="eBook" class="webView"></epub-view>
       </t-tab-panel>
       <t-tab-panel
         label="鏁欏璧勬簮"
@@ -248,6 +248,7 @@
           <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" />
         </view>
       </t-tab-panel>
+<<<<<<< Updated upstream
       <t-tab-panel label="浜戠瑪璁�" value="jesk_note" style="{{tabPanelstyle}}">
         <note
           bookInfo="{{bookDetail}}"
@@ -255,6 +256,10 @@
           class="note-list"
           bind:changeLoaidng="changeLoaidng"
         ></note>
+=======
+      <t-tab-panel label="浜戠瑪璁�" value="jsek_note" style="{{tabPanelstyle}}">
+        <note bookInfo="{{bookDetail}}" id="note" class="note-list" bind:changeLoaidng="changeLoaidng"></note>
+>>>>>>> Stashed changes
       </t-tab-panel>
     </t-tabs>
   </view>
@@ -274,6 +279,7 @@
       </view>
       <view class="btn-text">绾歌川鏍蜂功鐢宠</view>
     </view>
+<<<<<<< Updated upstream
     <view
       class="shopCar {{(tabValue == 'jsek_teachingResources' || tabValue == 'jesk_note') ? 'disabledColor' : 'shopCarColor' }}"
       bind:tap="addBookShopcCar"
@@ -284,6 +290,13 @@
       bind:tap="buyBtn"
       >绔嬪嵆璐拱</view
     >
+=======
+    <view class="shopCar {{(tabValue == 'jsek_teachingResources' || tabValue == 'jsek_note') ? 'disabledColor' : 'shopCarColor' }}" bind:tap="addBookShopcCar" wx:if="{{tabValue != 'jsek_eBook'}}">鍔犲叆璐墿杞�</view>
+    <view class="buy  {{(tabValue == 'jsek_teachingResources' || tabValue == 'jsek_note') ? 'disabledColor' : 'buyColor' }}" bind:tap="buyBtn" wx:if="{{tabValue != 'jsek_eBook'}}">绔嬪嵆璐拱</view>
+    <view class="shopCar shopCarColor" bind:tap="addBookShopcCar" wx:if="{{tabValue == 'jsek_eBook' && !bookBuy}}">鍔犲叆璐墿杞�</view>
+    <view class="buy buyColor" bind:tap="buyBtn" wx:if="{{tabValue == 'jsek_eBook' && !bookBuy}}">绔嬪嵆璐拱</view>
+    <view class="read buyColor" bind:tap="goRead" wx:if="{{tabValue == 'jsek_eBook' && bookBuy}}">绔嬪嵆鏌ョ湅</view>
+>>>>>>> Stashed changes
   </view>
 </scroll-view>
 <!-- 鎴戣寤鸿寮圭獥 -->
diff --git a/packageBookService/pages/bookServices/detail/index.wxss b/packageBookService/pages/bookServices/detail/index.wxss
index 8b09d1f..5148c91 100644
--- a/packageBookService/pages/bookServices/detail/index.wxss
+++ b/packageBookService/pages/bookServices/detail/index.wxss
@@ -263,6 +263,14 @@
   color: #fff;
 }
 
+.read {
+  width: 50%;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  color: #fff;
+}
+
 .shopCarColor {
   background-color: #F1AC37;
 }
@@ -338,4 +346,8 @@
   position: absolute;
   top: 30rpx;
   left: 118rpx;
+}
+
+.webView {
+  height: 500rpx;
 }
\ No newline at end of file
diff --git a/pages/home/home.js b/pages/home/home.js
index 2105851..b2ef42e 100644
--- a/pages/home/home.js
+++ b/pages/home/home.js
@@ -520,7 +520,7 @@
 
   onPageScroll(e) {
     this.setData({
-      isWhite: e.scrollTop > 50 ? true : false
+      isWhite: e.scrollTop > 20 ? true : false
     })
 
   },

--
Gitblit v1.9.1