unknown
2024-05-24 6be0b7cf6f8c6ae69373d28e8c7910798906d1a2
src/books/lifeCare/index.vue
@@ -1,46 +1,38 @@
<template>
  <div
    class="public-books"
    @mouseup="handleMouseUp"
    :style="{
      fontSize: fontSize ? fontSize + 'px' : '16px',
      transform: `scale(${pageZoom ? pageZoom : 1})`,
    }"
  >
    <front001 v-if="showCatalogList.indexOf(0) > -1" />
    <front002 v-if="showCatalogList.indexOf(0) > -1" />
    <front003 v-if="showCatalogList.indexOf(0) > -1" />
    <front004  v-if="showCatalogList.indexOf(0) > -1"/>
    <front005 v-if="showCatalogList.indexOf(0) > -1" />
    <front006 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" />
    <!-- <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(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" />
      <chapterSeven v-if="showCatalogList.indexOf(7) > -1" />
      <chapterEight v-if="showCatalogList.indexOf(8) > -1" />
      <chapterNine v-if="showCatalogList.indexOf(9) > -1" />
      <chapter010 v-if="showCatalogList.indexOf(10) > -1" />
      <chapter011 v-if="showCatalogList.indexOf(11) > -1" />
      <chapter012 v-if="showCatalogList.indexOf(12) > -1" />
      <chapter013 v-if="showCatalogList.indexOf(13) > -1" />
      <chapter014 v-if="showCatalogList.indexOf(14) > -1" />
      <chapter015 v-if="showCatalogList.indexOf(15) > -1" />
      <chapter016 v-if="showCatalogList.indexOf(16) > -1" />
      <chapter017 v-if="showCatalogList.indexOf(17) > -1" />
      <chapter018 v-if="showCatalogList.indexOf(18) > -1" />
    </div>
  </div>
</template>
<script>
import front001 from "./view/front001";
import front002 from "./view/front002";
import front003 from "./view/front003";
import front004 from "./view/front004";
import front005 from "./view/front005";
import front006 from "./view/front006";
import ChapterOne from "./view/chapter001";
import ChapterTwo from "./view/chapter002";
import ChapterThree from "./view/chapter003";
@@ -58,19 +50,20 @@
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, // 节流阈值
      previousScrollTop: 0,
      throttledScrollHandler: null,
      observer: null
    }
      observer: null,
    };
  },
  watch: {
    showCatalogList: {
@@ -81,20 +74,21 @@
        ) {
          // 调用父层方法
          this.$store.state.qiankun.catalogChange({
            showCatalogList: newVal
            showCatalogList: newVal,
          });
        }
        // 启动页码观察
        setTimeout(() => {
          this.initObservation();
          this.initThemeColor();
        }, 500);
      }
    }
      },
    },
  },
  mounted() {
        // 默认加载章节
        this.showCatalogList = [0];
    // 默认加载章节
    this.showCatalogList = [10];
    // 滚动监听节流
    this.throttledScrollHandler = _.throttle(
      this.scrollFun,
@@ -115,7 +109,7 @@
        // 删除笔记、高亮、划线
        delSign: (data) => {
          this.delSign(data);
        }
        },
      });
    }
@@ -124,7 +118,7 @@
    this.observer = new IntersectionObserver(this.pageChangeCallback, {
      root: null, // 指定根元素,这里设为 null,表示选取整个视窗作为根元素。
      rootMargin: "0px", // 指定根元素的边界,这里设为 "0px",表示根元素的边界和视窗的边界重合
      threshold: 0.5 // 指定交叉比例,这里设为 0.5,表示当目标元素一半或更多显示在视窗中时触发回调函数。
      threshold: 0.5, // 指定交叉比例,这里设为 0.5,表示当目标元素一半或更多显示在视窗中时触发回调函数。
    });
    // 启动页码观察
@@ -154,11 +148,6 @@
  },
  components: {
    front001,
    front002,
    front003,
    front004,
    front005,
    front006,
    ChapterOne,
    ChapterTwo,
    ChapterThree,
@@ -176,6 +165,7 @@
    chapter015,
    chapter016,
    chapter017,
    chapter018,
  },
  computed: {
    fontSize() {
@@ -237,14 +227,14 @@
      }
    },
        // 滚动监听
        scrollFun(event) {
    // 滚动监听
    scrollFun(event) {
      // 判断向上滚动还是向下滚动
      if (event.target.scrollTop > this.previousScrollTop) {
        // 向下
        const currentScrollTop =
          event.target.scrollTop + event.target.offsetHeight;
        if (
          currentScrollTop >=
          event.target.scrollHeight - this.loadThreshold
@@ -293,7 +283,7 @@
          this.showCatalogList = [
            this.catalogLength - 2,
            this.catalogLength - 1,
            this.catalogLength
            this.catalogLength,
          ];
        } else {
          this.showCatalogList = [catalog - 1, catalog, catalog + 1];
@@ -401,7 +391,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
@@ -491,12 +480,11 @@
            "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({
              page: page,
              catalog: catalog
              catalog: catalog,
            });
          // const sections = Array.from(document.querySelectorAll(".section"));
          //sections:获取所有具有 .section 类名的元素,并转换为数组。
@@ -504,11 +492,11 @@
          //index:查找当前目标元素在 sections 数组中的索引,并加 1,用于确定当前页码。
        }
      });
    }
    },
  },
};
</script>
<style lang="less">
@import './css/default.less';
@import "./css/default.less";
</style>