From 96fc14f8a8a2ddebeda887f30c902a51bb97b61a Mon Sep 17 00:00:00 2001 From: YM <479443481@qq.com> Date: 星期二, 14 五月 2024 21:16:51 +0800 Subject: [PATCH] 增加页面跳转 --- src/books/childHealth/view/index.vue | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 100 insertions(+), 6 deletions(-) diff --git a/src/books/childHealth/view/index.vue b/src/books/childHealth/view/index.vue index 4ca6f0f..fd1f2d7 100644 --- a/src/books/childHealth/view/index.vue +++ b/src/books/childHealth/view/index.vue @@ -1,20 +1,17 @@ <template> - <div class="temp-book"> - <pageHeader></pageHeader> + <div class="temp-book" @mouseup="handleMouseUp"> <pageContent></pageContent> - <!-- <examinations :questionList="cardList" :type="type"></examinations> --> </div> </template> <script> import examinations from "./components/examinations/index.vue"; import { getPublicImage } from "@/assets/js/middleGround/tool"; -import pageHeader from "./header/index.vue"; import pageContent from "./content/index.vue"; +import { mapState } from "vuex"; export default { - name: "temp-book", + name: "child-health", components: { - pageHeader, pageContent, examinations, }, @@ -23,11 +20,27 @@ type: "option", idPathList: [], cardList: [], + isMouseDown:false, + showToolBox:false, + move:false }; }, mounted() { this.getBookInfo(); + console.log(this.$store.state.qiankun, "this.$store.state.qiankun"); }, + // computed: { + // ...mapState(['lineHeightList']) + // }, + // wathch: { + // lineHeightList:{ + // handler(){ + // console.log('鐩戝惉鍒發ineHeightList鍙樺寲'); + // this.handleDom() + // }, + // deep:true + // } + // }, methods: { getBookInfo() { let query = { @@ -368,6 +381,87 @@ }); } }, + getParentWithClass(element, className) { + while (element.parentElement) { + element = element.parentElement; + if (element.classList.contains(className)) { + return element; + } + } + }, + handleMouseUp(e) { + 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" + ); + console.log("瀛愰」", selection.anchorNode); + let chapterDom = this.getParentWithClass( + selection.anchorNode, + "chapter" + ); + let chapterNum; + if (chapterDom) chapterNum = chapterDom.getAttribute("num"); + console.log("绗竴澶勫垽鏂�", txt, pageHtml); + if (txt && pageHtml) { + 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, + }); + } + } + } + }, + + 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