闫增涛
2024-10-18 40fb2059e31c525952e71782acecd97c178fb6e6
src/books/mathBook/view/components/index.vue
@@ -8,8 +8,8 @@
      transform: `scale(${pageZoom ? pageZoom : 1})`,
      transformOrigin: 'center top',
    }">
      <pageHeader v-if="showCatalogList.indexOf(0) > -1" :showPageList="loadPageList"></pageHeader>
      <chapterOne v-if="showCatalogList.indexOf(1) > -1" :showPageList="loadPageList" :questionData="questionDataMap">
      <pageHeader v-if="showCatalogList.indexOf(1) > -1" :showPageList="loadPageList"></pageHeader>
      <chapterOne v-if="showCatalogList.indexOf(2) > -1" :showPageList="loadPageList" :questionData="questionDataMap">
      </chapterOne>
      <chapterTwo v-if="showCatalogList.indexOf(3) > -1" :showPageList="loadPageList" :questionData="questionDataMap">
      </chapterTwo>
@@ -105,7 +105,7 @@
  },
  mounted() {
    // 默认加载章节
    this.showCatalogList = [0];
    this.showCatalogList = [1];
    // 滚动监听节流
    this.throttledScrollHandler = _.throttle(
      this.scrollFun,
@@ -161,8 +161,8 @@
    }, 500);
    // 测试页面跳转
    setTimeout(() => {
      this.gotoPage(3, 96);
    // setTimeout(() => {
    //   this.gotoPage(5, 210);
    //   //   setTimeout(() => {
    //   //     this.renderSign("Highlight", {
    //   //       id: "2ACA9359",
@@ -190,7 +190,7 @@
    //   //   txt: " 运动系统是由骨、骨连结和骨骼肌三部分组成的。全身的骨通过骨连结组成人体骨骼(见图1-1)。骨骼是人体的支架,具有保护内脏器官、供肌肉附着和作为肌肉运动的杠杆等作用。在神经系统的支配下,肌肉收缩牵动所附着的骨绕着关节转动,使身体产生各种动作。所以,运动系统具有运动、支持和保护等功能,幼年时期的骨骼还具有造血功能。 ",
    //   //   txtIndex: 57
    //   // });
    }, 500);
    // }, 500);
    // 获取题目id列表
    this.getQuestionId();
@@ -552,15 +552,21 @@
            this.loadPageList.push(Number(page));
            const catalog = catalogDom.getAttribute("num");
            if (!this.questionDataMap[page]) {
              if (this.questionId && this.questionId[catalog]) {
                if (this.questionId[catalog][page]) {
                  this.questionDataMap[page] = await this.getQuestion(catalog, page);
                  console.log("题目", this.questionDataMap);
                  console.log(page,Array.isArray(this.questionId[catalog][page]));
                  if(Array.isArray(this.questionId[catalog][page])) {
                    this.questionDataMap[page] = await this.getQuestion(catalog, page,false);
                  } else {
                    const obj = {}
                    for (let key in this.questionId[catalog][page]) {
                      obj[key] = await this.getQuestion(catalog, page,key)
                    }
                    this.questionDataMap[page] = obj
                  }
                }
                console.log(1,this.questionDataMap);
              }
            }
            // 渲染这一页的标记
@@ -842,7 +848,7 @@
        })
    },
    // 获取章节题目
    async getQuestion(num, page) {
    async getQuestion(num, page,questionIndex) {
      let cardList = [
        {
          catalogName: "单选题",
@@ -870,8 +876,9 @@
          const res = await axios.get(
            this.config.activeBook.resourceUrl + "/question-" + num + ".json"
          );
          console.log(1, res);
          if (!res.data) return [];
          let ids = []
          questionIndex ? ids = this.questionId[num][page][questionIndex] : ids = this.questionId[num][page]
          for (let index = 0; index < res.data.data.length; index++) {
            const item = res.data.data[index];
            // 数学公式加类名去修改样式
@@ -884,19 +891,23 @@
              if (item.answer) item.answer = item.answer.replace(/\<math/gi, '<math class="examination-math"')
            }
            item.isCollect = this.collectId.indexOf(item.id) > -1 ? true : false
            if (this.questionId[num][page].indexOf(item.id) > -1) {
            if (ids.indexOf(item.id) > -1) {
              if (item.type && item.type == "material") {
                cardList.push(item);
              } else {
                if (item.questionType == "judge") {
                  cardList[1].infoList.push(item);
                } else if (item.questionType == "singleChoice") {
                }
                if (item.questionType == "singleChoice") {
                  cardList[0].infoList.push(item);
                } else if (item.questionType == "multipleChoice") {
                }
                 if (item.questionType == "multipleChoice") {
                  cardList[2].infoList.push(item);
                } else if (item.questionType == "completion") {
                }
                 if (item.questionType == "completion") {
                  cardList[3].infoList.push(item);
                } else if (item.questionType == "shortAnswer") {
                }
                if (item.questionType == "shortAnswer") {
                  cardList[4].infoList.push(item);
                }
              }