From 67d22fb0aeb9fe90b766abae0e41cb04aebc1296 Mon Sep 17 00:00:00 2001 From: YM <479443481@qq.com> Date: 星期五, 17 五月 2024 15:45:09 +0800 Subject: [PATCH] 页码监听 --- src/books/childHealth/view/index.vue | 139 ++++++++++++++++------------------------------ 1 files changed, 49 insertions(+), 90 deletions(-) diff --git a/src/books/childHealth/view/index.vue b/src/books/childHealth/view/index.vue index 7683b14..9a515d1 100644 --- a/src/books/childHealth/view/index.vue +++ b/src/books/childHealth/view/index.vue @@ -1,33 +1,27 @@ <template> - <div class="temp-book" @mouseup="handleMouseUp" @mousedown="handleMouseDown" @mousemove="handleMousemove"> + <div class="temp-book" @mouseup="handleMouseUp"> <pageContent></pageContent> </div> </template> <script> -import examinations from "./components/examinations/index.vue"; -import testData from '../assets/examinationList.json' import pageContent from "./content/index.vue"; export default { name: "child-health", components: { - pageContent, - examinations, + pageContent }, data() { return { - bookData:{}, + bookData: {}, type: "option", idPathList: [], cardList: [], - isMouseDown: false, - showToolBox: false, - move: false, + isMouseDown: false }; }, mounted() { this.getBookInfo(); - console.log(this.$store.state.qiankun, "this.$store.state.qiankun"); }, methods: { getBookInfo() { @@ -37,10 +31,10 @@ productId: this.config.bookId, favoriteTypes: "FavoriteBookCity", itemFields: { - "SysType=": "CmsFolder", + "SysType=": "CmsFolder" }, coverSize: { - height: 300, + height: 300 }, fields: { seriesName: [], @@ -62,13 +56,12 @@ pdf: [], protectedEpub: [], probationPage: [], //pdf璇曡椤垫暟 - freeEpubPage: [], //epub璇曡鐧惧垎姣� - }, + freeEpubPage: [] //epub璇曡鐧惧垎姣� + } }; this.MG.store.getProductDetail(query).then((res) => { - console.log("鍥句功淇℃伅",res.datas.cmsDatas[0].datas); - this.$data.bookData = res.datas.cmsDatas[0].datas - + this.$data.bookData = res.datas; + this.$store.commit("setRootCmsItemId", res.datas.rootCmsItemId); }); }, getParentWithClass(element, className) { @@ -80,82 +73,48 @@ } }, handleMouseUp(e) { - if (this.$data.move) { - const txt = window.getSelection()?.toString(); - const selection = window.getSelection(); - if (selection.type != "none") { - let node = selection.anchorNode.parentNode; - let pageHtml = this.getParentWithClass( - selection.anchorNode, - "page-box" - ); - let chapterDom = this.getParentWithClass( - selection.anchorNode, - "chapter" - ); - let chapterNum; - if (chapterDom) chapterNum = chapterDom.getAttribute("num"); - if (txt && pageHtml) { - this.$dsta.showToolBox = true; - const page = pageHtml.getAttribute("page"); - console.log( - { - chapterNum, - txt, - selection, - node, - page, - x: e.x, - y: e.y, - }, - "sendData" - ); - // 鐩戝惉閫変腑鏂囨湰浜嬩欢锛屽苟瑙﹀彂鐖跺眰鏂规硶 - console.log("绗簩澶勫垽鏂�", this.$store.state.qiankun); - if (this.$store.state.qiankun.windowSelection) { - this.$store.state.qiankun.windowSelection({ - txt, - selection, - node, - page, - x: e.x, - y: e.y, - }); - } + const selection = ( + this.container ? this.container : window + ).getSelection(); + const txt = selection.toString(); + if (selection.type != "none" && txt) { + let node = selection.anchorNode.parentNode; + let pageHtml = this.getParentWithClass( + selection.anchorNode, + "page-box" + ); + let chapterDom = this.getParentWithClass( + selection.anchorNode, + "chapter" + ); + let chapterNum; + if (chapterDom) chapterNum = chapterDom.getAttribute("num"); + if (pageHtml) { + const page = pageHtml.getAttribute("page"); + // 鐩戝惉閫変腑鏂囨湰浜嬩欢锛屽苟瑙﹀彂鐖跺眰鏂规硶 + if (this.$store.state.qiankun.windowSelection) { + this.$store.state.qiankun.windowSelection({ + chapterNum, + txt, + page, + x: e.x, + y: e.y + }); } - this.$data.isMouseDown = false; + } + } else { + if (this.$store.state.qiankun.windowSelection) { + this.$store.state.qiankun.windowSelection({ + chapterNum: "", + txt: "", + page: "", + x: "", + y: "" + }); } } - this.$data.move = false - }, - - handleMouseDown() { - this.$data.isMouseDown = true; - this.$data.showToolBox = false; - }, - handleMousemove() { - if (this.$data.isMouseDown) { - this.$data.move = true; - } - }, - - // handleMouseUp(e) { - // if (move.value) { - // const txt = window.getSelection()?.toString(); - // selectText.value = txt; - // const node = window.getSelection(); - // let html = node.anchorNode.parentNode.parentNode; - // dialogToolData.chapter = html.firstChild.innerHTML; - // if (txt) { - // showToolBox.value = true; - // dialogToolData.top = e.y; - // dialogToolData.left = e.x; - // } - // isMouseDown.value = false; - // } - // move.value = false; - // }, - }, + } + } }; </script> -- Gitblit v1.9.1