From cb54fc44f2277c491eea25c7831457ca118ecd3c Mon Sep 17 00:00:00 2001
From: 闫增涛 <1829501689@qq.com>
Date: 星期二, 14 五月 2024 16:35:35 +0800
Subject: [PATCH] 分页

---
 src/books/childHealth/view/index.vue |  134 +++++++++++++++++++++++++++++---------------
 1 files changed, 88 insertions(+), 46 deletions(-)

diff --git a/src/books/childHealth/view/index.vue b/src/books/childHealth/view/index.vue
index 4c92694..118cadf 100644
--- a/src/books/childHealth/view/index.vue
+++ b/src/books/childHealth/view/index.vue
@@ -10,24 +10,37 @@
 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
+    examinations,
   },
   data() {
     return {
       type: "option",
       idPathList: [],
-      cardList: []
+      cardList: [],
     };
   },
   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 = {
@@ -36,10 +49,10 @@
         productId: this.config.bookId,
         favoriteTypes: "FavoriteBookCity",
         itemFields: {
-          "SysType=": "CmsFolder"
+          "SysType=": "CmsFolder",
         },
         coverSize: {
-          height: 300
+          height: 300,
         },
         fields: {
           seriesName: [],
@@ -61,8 +74,8 @@
           pdf: [],
           protectedEpub: [],
           probationPage: [], //pdf璇曡椤垫暟
-          freeEpubPage: [] //epub璇曡鐧惧垎姣�
-        }
+          freeEpubPage: [], //epub璇曡鐧惧垎姣�
+        },
       };
       this.MG.store.getProductDetail(query).then((res) => {
         console.log("鍥句功淇℃伅", res.datas.cmsDatas[0].datas);
@@ -89,12 +102,12 @@
           isDownload: [],
           jsek_resourceBrief: [],
           jsek_link: [],
-          jsek_questionBank: []
+          jsek_questionBank: [],
         },
         pading: {
           start: 0,
-          size: 999
-        }
+          size: 999,
+        },
       };
       this.MG.store
         .getProductDetail(query)
@@ -128,8 +141,8 @@
         cmsPath: data.productLinkPath,
         pading: {
           start: 0,
-          size: 999
-        }
+          size: 999,
+        },
       };
       this.MG.store.getProductDetail(query).then((res) => {
         console.log("棰樼洰", res.datas.cmsDatas[0].datas);
@@ -147,7 +160,7 @@
         pathList.push({
           path: pathitem.productLinkPath,
           catalogName: pathitem.name,
-          infoList: []
+          infoList: [],
         });
         this.$data.cardList = pathList;
         // 鑾峰彇棰樼洰
@@ -165,12 +178,12 @@
             Embedded_QuestionBank_StemStyle: [],
             Embedded_QuestionBank_OptionStyle: [],
             Embedded_QuestionBank_KnowledgePoint: [],
-            Embedded_QuestionBank_Difficulty: []
+            Embedded_QuestionBank_Difficulty: [],
           },
           pading: {
             start: 0,
-            size: 999
-          }
+            size: 999,
+          },
         };
         this.MG.store.getProductDetail(query).then((res) => {
           let oldList;
@@ -180,7 +193,7 @@
               (item) => item.path == pathitem.productLinkPath
             ).infoList;
             this.setData({
-              submitStatus: true
+              submitStatus: true,
             });
           }
           res.datas.cmsDatas[0].datas.forEach((item, index) => {
@@ -220,7 +233,7 @@
               isRight: oldObj ? oldObj.isRight : null,
               isComplete: oldObj ? oldObj.isComplete : false,
               isCollect: false,
-              isUnfold: "" // 鎺у埗瑙f瀽鐨勬姌鍙犻潰鏉挎槸鍚﹀睍寮�
+              isUnfold: "", // 鎺у埗瑙f瀽鐨勬姌鍙犻潰鏉挎槸鍚﹀睍寮�
             };
             // 澶氶�夊拰濉┖绛旀鑲负鏁扮粍锛岃杞崲JSON鏍煎紡
             if (
@@ -241,7 +254,7 @@
                 if (item == "input") {
                   questionObj.stem[i] = {
                     num: index,
-                    data: "input"
+                    data: "input",
                   };
                   if (!oldObj) questionObj.userAnswer[index] = "";
                   index++;
@@ -368,7 +381,6 @@
         });
       }
     },
-
     getParentWithClass(element, className) {
       while (element.parentElement) {
         element = element.parentElement;
@@ -381,39 +393,69 @@
       const txt = window.getSelection()?.toString();
       const selection = window.getSelection();
       if (selection.type != "none") {
-        let node = selection.anchorNode.parentNode.parentNode.parentNode;
-        let nextHtml = node.firstChild.innerHTML;
+        let node = selection.anchorNode.parentNode;
         let pageHtml = this.getParentWithClass(
           selection.anchorNode,
           "page-box"
         );
-        if (txt && node) {
-          const page = node.getAttribute("page");
+        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"
+          );
           // 鐩戝惉閫変腑鏂囨湰浜嬩欢锛屽苟瑙﹀彂鐖跺眰鏂规硶
-          if (this.$store.state.qiankun.windowSelection)
-            console.log(
-              {
-                txt,
-                selection,
-                node,
-                page,
-                x: e.x,
-                y: e.y
-              },
-              "sendData"
-            );
-          this.$store.state.qiankun.windowSelection({
-            txt,
-            selection,
-            node,
-            page,
-            x: e.x,
-            y: e.y
-          });
+          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,
+            });
+          }
         }
       }
-    }
-  }
+    },
+    handleDom() {
+      const selection = window.getSelection();
+      let textDom = this.getParentWithClass(selection.anchorNode, "page-box");
+      for (let i = 0; i < this.$store.state.lineHeightList.length; i++) {
+        let item = this.$store.state.lineHeightList[i];
+        let rReg = new RegExp(`${item.selectText}`, "ig");
+        let text = textDom.innerHTML;
+        console.log(item.selectNode, "item.selectNode.innerHTML");
+        let nodeHtml = item.selectNode;
+        let nHtml = "";
+        nHtml = nodeHtml.replace(
+          rReg,
+          `<span style="background: ${item.color};padding: 2px;cursor: pointer">${item.selectText}</span>`
+        );
+        console.log(nHtml);
+        let rHtml = "";
+        rHtml = text.replace(nodeHtml, nHtml);
+        textDom.innerHTML = rHtml;
+      }
+    },
+  },
 };
 </script>
 

--
Gitblit v1.9.1