YM
2024-05-31 781876372311fa27266a223062b460ac09e93a40
src/books/English/view/components/index.vue
@@ -16,6 +16,8 @@
        @saveCharacters="saveCharacters"
        v-if="showCatalogList.indexOf(2) > -1"
        :showPageList="loadPageList"
        :pageNum="pageNum"
        :total="total"
      ></chapterOne>
    </div>
  </div>
@@ -33,7 +35,7 @@
export default {
  data() {
    return {
      catalogLength: 2, // 总章节数
      catalogLength: 13, // 总章节数
      showCatalogList: [], // 显示的章节
      loadThreshold: 300, // 触发加载阈值
      throttleThreshold: 100, // 节流阈值
@@ -44,6 +46,8 @@
      loadPageList: [],
      questionData: {},
      renderSignMap: {},
      pageNum: "1",
      total: "27",
    };
  },
  computed: {
@@ -75,7 +79,6 @@
    },
    loadPageList: {
      handler(newVal, oldVal) {
        console.log(newVal, "this.loadPageList");
        setTimeout(() => {
          this.initSwiper();
          this.initViewer();
@@ -230,6 +233,12 @@
    // 处理标记数据
    handelSignData(type, data) {
      if (this.loadPageList.indexOf(Number(data.page)) > -1) {
        // 立即渲染
        this.renderSign(type, data);
      }
      // 储存数据
      if (!this.renderSignMap[type]) this.renderSignMap[type] = {};
      if (!this.renderSignMap[type][data.page])
        this.renderSignMap[type][data.page] = [];
@@ -484,7 +493,6 @@
            //           testData[catalog][page],
            //           this.config.activeBook
            //         );
            //       } else {
            //         const obj = {};
            //         for (let key in testData[catalog][page]) {
@@ -496,7 +504,7 @@
            //         }
            //         this.questionData[page] = obj;
            //       }
            //       console.log('题目',this.questionData);
            //       console.log("题目", this.questionData);
            //     }
            //   }
            // }
@@ -521,7 +529,7 @@
    initSwiper() {
      const doms = (
        this.container ? this.container : document
      ).querySelectorAll(".swiper-container");
      ).querySelectorAll(".swiper-img");
      for (let i = 0; i < doms.length; i++) {
        const dom = doms[i];
        new Swiper(dom, {
@@ -555,6 +563,46 @@
          // }
        });
      }
      const that = this
      const pptDoms = (
        this.container ? this.container : document
      ).querySelectorAll(".swiper_ppt");
      for (let i = 0; i < pptDoms.length; i++) {
        const dom = pptDoms[i];
        new Swiper(dom, {
        loop: false, // 无缝
        autoplay: false,
        paginationClickable: true,
        slidesPerView: 1, // 一组三个
        spaceBetween: 30, // 间隔
        // 如果需要前进后退按钮
        navigation: {
          nextEl: (this.container ? this.container : document).querySelector(
            ".swiper-button-next"
          ),
          prevEl: (this.container ? this.container : document).querySelector(
            ".swiper-button-prev"
          ),
        },
        // 窗口变化,重新init,针对F11全屏和放大缩小,必须加
        observer: true,
        observeParents: true,
        on: {
          slideChange: function (value) {
            let currentPage = value.activeIndex + 1; // 获取当前页(从1开始计数)
            let totalPages = value.slides.length; // 获取总页数
            that.pageNum = currentPage.toString();
          },
          // slideChangeTran sitionStart:function (value) {
          //   // 每当滑块改变时触发,更新当前页和总页数的显示
          //   let currentPage = value.activeIndex + 1; // 获取当前页(从1开始计数)
          //   let totalPages = value.slides.length; // 获取总页数
          //   var paginationInfoEl = document.querySelector('.pagination-info');
          //   paginationInfoEl.textContent = currentPage + '/' + totalPages;
          // }
        },
      });
      }
    },
    initViewer() {
      const doms = (
@@ -573,18 +621,18 @@
      }
    },
    // 点击事件:将生僻单词传给 主应用 从而调用词典功能
    saveCharacters(event,word) {
      console.log('生僻字',event,word);
    saveCharacters(event, word) {
      console.log("生僻字", event, word);
      if (this.$store.state.qiankun && this.$store.state.qiankun.chooseWords) {
          this.$store.state.qiankun.chooseWords({
            word,
            x: event.pageX,
            y: event.pageY
          });
        }
        this.$store.state.qiankun.chooseWords({
          type:"word",
          word,
          x: event.pageX,
          y: event.pageY,
        });
      }
      // chooseWords
    }
    },
  },
  components: {
    pageHeader,