闫增涛
2024-05-15 8cdcb6b7950710cbcf701cb5149e1b2f949e1b0f
src/books/childHealth/view/content/index.vue
@@ -3,7 +3,6 @@
    <div class="page-content">
      <pageHeader v-if="showCatalogList.indexOf(0) > -1"></pageHeader>
      <chapterOne v-if="showCatalogList.indexOf(1) > -1"></chapterOne>
      <chapterOne v-if="showCatalogList.indexOf(1) > -1"></chapterOne>
      <chapterTwo v-if="showCatalogList.indexOf(2) > -1"></chapterTwo>
      <chapterThree v-if="showCatalogList.indexOf(3) > -1"></chapterThree>
      <chapterFour v-if="showCatalogList.indexOf(4) > -1"></chapterFour>
@@ -37,9 +36,7 @@
import chapterEleven from "./components/chapter011.vue";
import chapterTwelve from "./components/chapter012.vue";
import chapterThirteen from "./components/chapter013.vue";
import _ from "lodash";
export default {
  data() {
    return {
@@ -55,9 +52,11 @@
    showCatalogList: {
      handler(newVal) {
        console.log("显示章节", newVal);
        this.$store.state.qiankun.windowSelection({
          showCatalogList: newVal,
        });
        if (this.$store.state.qiankun.windowSelection) {
          this.$store.state.qiankun.windowSelection({
            showCatalogList: newVal,
          });
        }
      },
    },
  },
@@ -70,6 +69,19 @@
      this.throttleThreshold,
      { leading: true, trailing: false }
    );
    // 提供页面跳转功能
    if (this.setGlobalState) {
      console.log("setGlobalState");
      this.setGlobalState({
        gotoPage: (catalog, page) => {
          this.gotoPage(catalog, page);
        },
      });
    }
    // 测试页面跳转
    // setTimeout(() => {
    //   this.gotoPage(5, 100);
    // }, 3000);
  },
  methods: {
    scrollFun(e) {
@@ -117,6 +129,33 @@
      // 更新上一次滚动的位置
      this.previousScrollTop = event.target.scrollTop;
    },
    gotoPage(catalog, page) {
      if (catalog >= 0 && catalog <= this.catalogLength) {
        // 处理渲染章节
        if (catalog == 0) {
          this.showCatalogList = [0, 1];
        } else if (catalog == this.catalogLength) {
          this.showCatalogList = [
            this.catalogLength - 2,
            this.catalogLength - 1,
            this.catalogLength,
          ];
        } else {
          this.showCatalogList = [catalog - 1, catalog, catalog + 1];
        }
        setTimeout(() => {
          // 跳转页码
          const pageDom = document.querySelector(`[page="${page}"]`);
          if (pageDom) {
            pageDom.scrollIntoView();
          } else {
            console.log("页码错误!");
          }
        }, 50);
      } else {
        console.log("章节错误!");
      }
    },
  },
  components: {
    pageHeader,