unknown
2024-05-28 4e974b7b54f3ee0561a7291e6fd60e4a4491c6de
src/books/lifeCare/index.vue
@@ -1,33 +1,34 @@
<!-- eslint-disable vue/multi-word-component-names -->
<template>
  <div
    class="public-books"
    @scroll="throttledScrollHandler"
    @mouseup="handleMouseUp"
    :style="{
      fontSize: fontSize ? fontSize + 'px' : '16px',
      transform: `scale(${pageZoom ? pageZoom : 1})`,
    }"
  >
    <front001 v-if="showCatalogList.indexOf(0) > -1" />
    <ChapterOne v-if="showCatalogList.indexOf(1) > -1" />
    <ChapterTwo v-if="showCatalogList.indexOf(2) > -1" />
    <ChapterThree v-if="showCatalogList.indexOf(3) > -1" />
    <ChapterFour v-if="showCatalogList.indexOf(4) > -1" />
    <ChapterFive  v-if="showCatalogList.indexOf(5) > -1" />
    <chapterSix v-if="showCatalogList.indexOf(6) > -1" />
    <!-- <chapterSix /> -->
    <!-- <chapterSeven /> -->
    <!-- <chapterEight /> -->
    <!-- <chapterNine /> -->
    <!-- <chapter010 /> -->
    <!-- <chapter011 /> -->
    <!-- <chapter012 /> -->
    <!-- <chapter013 /> -->
    <!-- <chapter014 /> -->
    <!-- <chapter015 /> -->
    <!-- <chapter016 /> -->
    <!-- <chapter017 /> -->
    <!-- <topic008 /> -->
  <div class="page-main" @scroll="throttledScrollHandler">
    <div
      class="public-books"
      @mouseup="handleMouseUp"
      :style="{
        fontSize: fontSize ? fontSize + 'px' : '16px',
        transform: `scale(${pageZoom ? pageZoom : 1})`,
      }"
    >
      <front001 v-if="showCatalogList.indexOf(1) > -1" />
      <ChapterOne v-if="showCatalogList.indexOf(2) > -1" />
      <ChapterTwo v-if="showCatalogList.indexOf(3) > -1" />
      <ChapterThree v-if="showCatalogList.indexOf(4) > -1" />
      <ChapterFour v-if="showCatalogList.indexOf(5) > -1" />
      <ChapterFive v-if="showCatalogList.indexOf(6) > -1" />
      <chapterSix v-if="showCatalogList.indexOf(7) > -1" />
      <chapterSeven v-if="showCatalogList.indexOf(8) > -1" />
      <chapterEight v-if="showCatalogList.indexOf(9) > -1" />
      <chapterNine v-if="showCatalogList.indexOf(10) > -1" />
      <chapter010 v-if="showCatalogList.indexOf(11) > -1" />
      <chapter011 v-if="showCatalogList.indexOf(12) > -1" />
      <chapter012 v-if="showCatalogList.indexOf(13) > -1" />
      <chapter013 v-if="showCatalogList.indexOf(14) > -1" />
      <chapter014 v-if="showCatalogList.indexOf(15) > -1" />
      <chapter015 v-if="showCatalogList.indexOf(16) > -1" />
      <chapter016 v-if="showCatalogList.indexOf(17) > -1" />
      <chapter017 v-if="showCatalogList.indexOf(18) > -1" />
      <chapter018 v-if="showCatalogList.indexOf(19) > -1" />
    </div>
  </div>
</template>
@@ -50,12 +51,13 @@
import chapter015 from "./view/chapter015";
import chapter016 from "./view/chapter016";
import chapter017 from "./view/chapter017";
import chapter018 from "./view/chapter018";
import NoteIcon from "@/assets/images/biji.png";
import _ from "lodash";
export default {
  name: "temp-book",
  data() {
    return {
      catalogLength: 13, // 总章节数
      catalogLength: 18, // 总章节数
      showCatalogList: [], // 显示的章节
      loadThreshold: 300, // 触发加载阈值
      throttleThreshold: 100, // 节流阈值
@@ -66,6 +68,7 @@
  },
  watch: {
    showCatalogList: {
      // eslint-disable-next-line no-unused-vars
      handler(newVal, oldVal) {
        if (
          this.$store.state.qiankun &&
@@ -86,7 +89,7 @@
  },
  mounted() {
    // 默认加载章节
    this.showCatalogList = [0];
    this.showCatalogList = [4];
    // 滚动监听节流
    this.throttledScrollHandler = _.throttle(
      this.scrollFun,
@@ -163,6 +166,7 @@
    chapter015,
    chapter016,
    chapter017,
    chapter018,
  },
  computed: {
    fontSize() {
@@ -187,6 +191,7 @@
      ).getSelection();
      const txt = selection.toString();
      if (selection.type != "none" && txt) {
        // eslint-disable-next-line no-unused-vars
        let node = selection.anchorNode.parentNode;
        let pageHtml = this.getParentWithClass(
          selection.anchorNode,
@@ -231,6 +236,7 @@
        // 向下
        const currentScrollTop =
          event.target.scrollTop + event.target.offsetHeight;
        if (
          currentScrollTop >=
          event.target.scrollHeight - this.loadThreshold
@@ -330,7 +336,7 @@
            // 笔记
            pageDom.innerHTML = pageDom.innerHTML.replace(
              reg,
              `<span datatype="Note" dataid="${data.id}" style="border-bottom-color:${data.color}" class="notesline" onclick="signClick('Note','${data.id}','${data.chapterNum}')">${data.txt}<img src="${NoteIcon}" style="cursor: pointer" /></span>`
              `<span datatype="Note" dataid="${data.id}" style="border-bottom-color:${data.color}" class="notesline" onclick="signClick('Note','${data.id}','${data.chapterNum}')" onmouseover="noteHover('Note','${data.id}','${data.chapterNum}')">${data.txt}<img src="${NoteIcon}" style="cursor: pointer" /></span>`
            );
            break;
        }
@@ -387,7 +393,6 @@
      const borderColorDom = (
        this.container ? this.container : document
      ).querySelectorAll(".theme-border");
      console.log(this.config, "this.configthis.config");
      // 获取配置的主题色
      const bookThemeColor =
        this.config.activeBook && this.config.activeBook.bookThemeColor
@@ -456,6 +461,7 @@
        }
      });
    },
    // eslint-disable-next-line
    getParentWithClass(element, className) {
      while (element.parentElement) {
        element = element.parentElement;
@@ -464,6 +470,7 @@
        }
      }
    },
    // eslint-disable-next-line no-unused-vars
    pageChangeCallback(entries, observer) {
      //entries:代表观察到的目标元素的集合。 observer:代表观察者对象。
      entries.forEach((entry) => {
@@ -477,7 +484,6 @@
            "chapter"
          );
          const catalog = catalogDom.getAttribute("num");
          console.log("page", page, catalog);
          // 返回页码和章节信息
          if (this.$store.state.qiankun && this.$store.state.qiankun.pageChange)
            this.$store.state.qiankun.pageChange({
@@ -491,7 +497,7 @@
        }
      });
    },
  },
  }
};
</script>