From f165c79ce81b7f96cf5a0881671a8e0f36ce1f59 Mon Sep 17 00:00:00 2001
From: litian <2804272236@qq.com>
Date: 星期五, 24 一月 2025 10:51:33 +0800
Subject: [PATCH] Merge branch 'master' of http://182.92.203.7:2001/r/testbookLayout

---
 src/books/mathBook/view/components/index.vue |  194 +++++++++++++++++++++++++++++------------------
 1 files changed, 119 insertions(+), 75 deletions(-)

diff --git a/src/books/mathBook/view/components/index.vue b/src/books/mathBook/view/components/index.vue
index e5c1ead..433fef6 100644
--- a/src/books/mathBook/view/components/index.vue
+++ b/src/books/mathBook/view/components/index.vue
@@ -3,23 +3,48 @@
     <div id="searchDomBox" style="display: none">
       <div id="searchContent"></div>
     </div>
-    <div class="page-content" :style="{
-      fontSize: fontSize ? fontSize + 'px' : '16px',
-      transform: `scale(${pageZoom ? pageZoom : 1})`,
-      transformOrigin: 'center top',
-    }">
-      <pageHeader v-if="showCatalogList.indexOf(1) > -1" :showPageList="loadPageList"></pageHeader>
-      <chapterOne v-if="showCatalogList.indexOf(2) > -1" :showPageList="loadPageList" :questionData="questionDataMap">
+    <div
+      class="page-content"
+      :style="{
+        fontSize: fontSize ? fontSize + 'px' : '16px',
+        transform: `scale(${pageZoom ? pageZoom : 1})`,
+        transformOrigin: 'center top',
+      }"
+    >
+      <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
+        v-if="showCatalogList.indexOf(3) > -1"
+        :showPageList="loadPageList"
+        :questionData="questionDataMap"
+      >
       </chapterTwo>
-      <chapterThree v-if="showCatalogList.indexOf(4) > -1" :showPageList="loadPageList" :questionData="questionDataMap">
+      <chapterThree
+        v-if="showCatalogList.indexOf(4) > -1"
+        :showPageList="loadPageList"
+        :questionData="questionDataMap"
+      >
       </chapterThree>
-      <chapterFour v-if="showCatalogList.indexOf(5) > -1" :showPageList="loadPageList" :questionData="questionDataMap">
+      <chapterFour
+        v-if="showCatalogList.indexOf(5) > -1"
+        :showPageList="loadPageList"
+        :questionData="questionDataMap"
+      >
       </chapterFour>
-      <chapterFive v-if="showCatalogList.indexOf(6) > -1" :showPageList="loadPageList" :questionData="questionDataMap">
+      <chapterFive
+        v-if="showCatalogList.indexOf(6) > -1"
+        :showPageList="loadPageList"
+        :questionData="questionDataMap"
+      >
       </chapterFive>
-
     </div>
   </div>
 </template>
@@ -30,8 +55,8 @@
 import chapterOne from "./chapter001.vue";
 import chapterTwo from "./chapter002.vue";
 import chapterThree from "./chapter003.vue";
-import chapterFour from './chapter004.vue'
-import chapterFive from './chapter005.vue'
+import chapterFour from "./chapter004.vue";
+import chapterFive from "./chapter005.vue";
 import NoteIcon from "@/assets/images/biji.png";
 import _ from "lodash";
 import Swiper from "swiper/bundle";
@@ -57,6 +82,8 @@
       highlightData: null,
       questionId: {},
       collectId: [],
+      questionDataIndex: 0, // 褰撳墠璇锋眰鐨勬槸鍝釜绔犺妭鐨勯鐩�
+      questionList: [], // 绔犺妭棰樼洰鍒楄〃
     };
   },
   computed: {
@@ -161,8 +188,8 @@
     }, 500);
 
     // 娴嬭瘯椤甸潰璺宠浆
-    setTimeout(() => {
-      this.gotoPage(3, 76);
+     setTimeout(() => {
+     this.gotoPage(4,79);
     //   //   setTimeout(() => {
     //   //     this.renderSign("Highlight", {
     //   //       id: "2ACA9359",
@@ -190,11 +217,11 @@
     //   //   txt: " 杩愬姩绯荤粺鏄敱楠ㄣ�侀杩炵粨鍜岄楠艰倢涓夐儴鍒嗙粍鎴愮殑銆傚叏韬殑楠ㄩ�氳繃楠ㄨ繛缁撶粍鎴愪汉浣撻楠硷紙瑙佸浘1-1锛夈�傞楠兼槸浜轰綋鐨勬敮鏋讹紝鍏锋湁淇濇姢鍐呰剰鍣ㄥ畼銆佷緵鑲岃倝闄勭潃鍜屼綔涓鸿倢鑲夎繍鍔ㄧ殑鏉犳潌绛変綔鐢ㄣ�傚湪绁炵粡绯荤粺鐨勬敮閰嶄笅锛岃倢鑲夋敹缂╃壍鍔ㄦ墍闄勭潃鐨勯缁曠潃鍏宠妭杞姩锛屼娇韬綋浜х敓鍚勭鍔ㄤ綔銆傛墍浠ワ紝杩愬姩绯荤粺鍏锋湁杩愬姩銆佹敮鎸佸拰淇濇姢绛夊姛鑳斤紝骞煎勾鏃舵湡鐨勯楠艰繕鍏锋湁閫犺鍔熻兘銆� ",
     //   //   txtIndex: 57
     //   // });
-    }, 500);
+     }, 500);
 
     // 鑾峰彇棰樼洰id鍒楄〃
     this.getQuestionId();
-    this.getCollect()
+    this.getCollect();
   },
   methods: {
     // setZoom1() {
@@ -213,9 +240,7 @@
     // },
     // 婊氬姩鐩戝惉
     scrollFun(event) {
-
-      this.handleVideoPicture()
-
+      this.handleVideoPicture();
       // 鍒ゆ柇鍚戜笂婊氬姩杩樻槸鍚戜笅婊氬姩
       if (event.target.scrollTop > this.previousScrollTop) {
         // 鍚戜笅
@@ -270,7 +295,6 @@
             this.catalogLength - 2,
             this.catalogLength - 1,
             this.catalogLength,
-
           ];
         } else {
           this.showCatalogList = [catalog - 1, catalog, catalog + 1];
@@ -455,8 +479,8 @@
           page && pageThemeColor && pageThemeColor[page]
             ? pageThemeColor[page]
             : chapterNum && chapterThemeColor && chapterThemeColor[chapterNum]
-              ? chapterThemeColor[chapterNum]
-              : bookThemeColor;
+            ? chapterThemeColor[chapterNum]
+            : bookThemeColor;
         if (themeColor) {
           domItem.style.color = themeColor;
         }
@@ -473,8 +497,8 @@
           page && pageThemeColor && pageThemeColor[page]
             ? pageThemeColor[page]
             : chapterNum && chapterThemeColor && chapterThemeColor[chapterNum]
-              ? chapterThemeColor[chapterNum]
-              : bookThemeColor;
+            ? chapterThemeColor[chapterNum]
+            : bookThemeColor;
         if (themeColor) {
           domItem.style.backgroundColor = themeColor;
         }
@@ -491,15 +515,14 @@
           page && pageThemeColor && pageThemeColor[page]
             ? pageThemeColor[page]
             : chapterNum && chapterThemeColor && chapterThemeColor[chapterNum]
-              ? chapterThemeColor[chapterNum]
-              : bookThemeColor;
+            ? chapterThemeColor[chapterNum]
+            : bookThemeColor;
         if (themeColor) {
           domItem.style.borderColor = themeColor;
         }
       });
     },
     getParentWithClass(element, className) {
-      console.log(element, className, "element, className");
       while (element.parentElement) {
         element = element.parentElement;
         if (element.classList.contains(className)) {
@@ -554,19 +577,21 @@
             if (!this.questionDataMap[page]) {
               if (this.questionId && this.questionId[catalog]) {
                 if (this.questionId[catalog][page]) {
-                  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);
+                  if (Array.isArray(this.questionId[catalog][page])) {
+                    this.questionDataMap[page] = await this.getQuestion(
+                      catalog,
+                      page,
+                      false
+                    );
                   } else {
-                    const obj = {}
+                    const obj = {};
                     for (let key in this.questionId[catalog][page]) {
-                      obj[key] = await this.getQuestion(catalog, page,key)
+                      obj[key] = await this.getQuestion(catalog, page, key);
                     }
-                    this.questionDataMap[page] = obj
+                    this.questionDataMap[page] = obj;
                   }
+                  console.log('棰樼洰',this.questionDataMap);
                 }
-                console.log(1,this.questionDataMap);
-                
               }
             }
             // 娓叉煋杩欎竴椤电殑鏍囪
@@ -816,7 +841,7 @@
       // 璁板綍楂樹寒淇℃伅
       this.highlightData = data;
       // 璺宠浆
-      this.gotoPage(data.catalog, data.page, () => { });
+      this.gotoPage(data.catalog, data.page, () => {});
     },
     // 鑾峰彇棰樼洰鍒楄〃
     getQuestionId() {
@@ -828,7 +853,7 @@
     },
     // 鑾峰彇棰樼洰鏀惰棌id鍒楄〃
     getCollect() {
-      if(!localStorage.getItem(this.config.tokenKey)) return false
+      if (!localStorage.getItem(this.config.tokenKey)) return false;
       this.MG.identity
         .getUserKey({
           domain: "collectData",
@@ -838,17 +863,21 @@
           try {
             const collect = JSON.parse(res[0].value);
             if (collect.length) {
-              this.collectId = collect.find(item => item.type == 'json').collectList
+              this.collectId = collect.find(
+                (item) => item.type == "json"
+              ).collectList;
             }
           } catch (error) {
             console.log("鏆傛棤鏁版嵁");
           }
-        }).catch(res => {
-          console.log('index 璇锋眰棰樼洰鏀惰棌id鎶ラ敊');
         })
+        .catch(() => {
+          console.log("index 璇锋眰棰樼洰鏀惰棌id鎶ラ敊");
+        });
+      console.log('鏀惰棌id',this.collectId);
     },
     // 鑾峰彇绔犺妭棰樼洰
-    async getQuestion(num, page,questionIndex) {
+    async getQuestion(num, page, questionIndex) {
       let cardList = [
         {
           catalogName: "鍗曢�夐",
@@ -870,44 +899,62 @@
           catalogName: "绠�绛旈",
           infoList: [],
         },
+        
       ];
       if (this.questionId) {
         if (this.questionId[num] && this.questionId[num][page]) {
-          const res = await axios.get(
-            this.config.activeBook.resourceUrl + "/question-" + num + ".json"
-          );
-          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];
+          if (num != this.questionDataIndex || !this.questionList.length) {
+            // 鍒ゆ柇褰撳墠绔犺妭鐨勯鐩甹son鏄惁宸茬粡璇锋眰杩�
+            const res = await axios.get(
+              this.config.activeBook.resourceUrl + "/question-" + num + ".json"
+            );
+            if (!res.data) return [];
+            this.questionList = res.data.data;
+            this.questionDataIndex = res.data.chapterNum;
+          }
+          let ids = [];
+          questionIndex
+            ? (ids = this.questionId[num][page][questionIndex])
+            : (ids = this.questionId[num][page]);
+          for (let index = 0; index < this.questionList.length; index++) {
+            const item = this.questionList[index];
             // 鏁板鍏紡鍔犵被鍚嶅幓淇敼鏍峰紡
-            if (item.type && item.type == 'material') {
-              if (!item.infoList.length) return false
-              item.infoList.forEach(citem => {
-                if (citem.answer) citem.answer = citem.answer.replace(/\<math/gi, '<math class="examination-math"')
-              })
+            if (item.type && item.type == "material") {
+              if (!item.infoList.length) return false;
+              item.infoList.forEach((citem) => {
+                if (citem.answer)
+                  citem.answer = citem.answer.replace(
+                    /\<math/gi,
+                    '<math class="examination-math"'
+                  );
+              });
             } else {
-              if (item.answer) item.answer = item.answer.replace(/\<math/gi, '<math class="examination-math"')
+              if (item.answer)
+                item.answer = item.answer.replace(
+                  /\<math/gi,
+                  '<math class="examination-math"'
+                );
             }
-            item.isCollect = this.collectId.indexOf(item.id) > -1 ? true : false
+            item.isCollect =
+              this.collectId.indexOf(item.id) > -1 ? true : false;
             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);
-                }  
+                }
                 if (item.questionType == "singleChoice") {
                   cardList[0].infoList.push(item);
-                } 
-                 if (item.questionType == "multipleChoice") {
+                }
+                if (item.questionType == "multipleChoice") {
                   cardList[2].infoList.push(item);
-                } 
-                 if (item.questionType == "completion") {
+                }
+                if (item.questionType == "completion") {
                   cardList[3].infoList.push(item);
-                } 
-                if (item.questionType == "shortAnswer") {
+                }
+                if (item.questionType == "shortAnswer" ||item.questionType == "formula") {
+                  if(typeof item.userAnswer != 'string') console.log('澶辫触',item);
                   cardList[4].infoList.push(item);
                 }
               }
@@ -919,17 +966,14 @@
         return [];
       }
     },
-
     // 瑙嗛灏忕獥
     handleVideoPicture() {
-      let doms = (
-        this.container ? this.container : document
-      ).querySelectorAll(".video");
-      doms = Array.from(doms)
-      if (!doms.length) return false
-      const playVudio = doms
-        .reverse()
-        .find((item) => item.paused == false);
+      let doms = (this.container ? this.container : document).querySelectorAll(
+        ".video"
+      );
+      doms = Array.from(doms);
+      if (!doms.length) return false;
+      const playVudio = doms.reverse().find((item) => item.paused == false);
       if (playVudio) {
         const bottomGap = playVudio.getBoundingClientRect().bottom;
         const topGap = playVudio.getBoundingClientRect().top;
@@ -937,7 +981,7 @@
           playVudio.requestPictureInPicture();
         }
       }
-    }
+    },
   },
   components: {
     pageHeader,

--
Gitblit v1.9.1