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