From 51ad6706fed4b080b0cb1bb771028a551b9ec27c Mon Sep 17 00:00:00 2001
From: zhongshujie <2862698242@qq.com>
Date: 星期二, 22 十月 2024 15:19:18 +0800
Subject: [PATCH] Merge branch 'master' of http://182.92.203.7:2001/r/testbookLayout

---
 src/books/mathBook/view/components/index.vue |  209 +++++++++++++++++++++++++++++++---------------------
 1 files changed, 124 insertions(+), 85 deletions(-)

diff --git a/src/books/mathBook/view/components/index.vue b/src/books/mathBook/view/components/index.vue
index e4c31fa..54f01c7 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(0) > -1" :showPageList="loadPageList"></pageHeader>
-      <chapterOne v-if="showCatalogList.indexOf(1) > -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">
+      <chapterThree
+        v-if="showCatalogList.indexOf(4) > -1"
+        :showPageList="loadPageList"
+        :questionData="questionDataMap"
+      >
       </chapterThree>
-      <chapterFour v-if="showCatalogList.indexOf(5) > -1" :showPageList="loadPageList">
+      <chapterFour
+        v-if="showCatalogList.indexOf(5) > -1"
+        :showPageList="loadPageList"
+        :questionData="questionDataMap"
+      >
       </chapterFour>
-      <chapterFive v-if="showCatalogList.indexOf(6) > -1" :showPageList="loadPageList">
+      <chapterFive
+        v-if="showCatalogList.indexOf(6) > -1"
+        :showPageList="loadPageList"
+        :questionData="questionDataMap"
+      >
       </chapterFive>
-
     </div>
   </div>
 </template>
@@ -30,9 +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 chapterSix from './chapter006.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,7 +81,9 @@
       renderSignMap: {},
       highlightData: null,
       questionId: {},
-      collectId: []
+      collectId: [],
+      questionDataIndex: 0, // 褰撳墠璇锋眰鐨勬槸鍝釜绔犺妭鐨勯鐩�
+      questionList: [], // 绔犺妭棰樼洰鍒楄〃
     };
   },
   computed: {
@@ -106,7 +132,7 @@
   },
   mounted() {
     // 榛樿鍔犺浇绔犺妭
-    this.showCatalogList = [0];
+    this.showCatalogList = [1];
     // 婊氬姩鐩戝惉鑺傛祦
     this.throttledScrollHandler = _.throttle(
       this.scrollFun,
@@ -163,7 +189,7 @@
 
     // 娴嬭瘯椤甸潰璺宠浆
     // setTimeout(() => {
-    //   this.gotoPage(2, 8);
+    //   this.gotoPage(6,206);
     //   //   setTimeout(() => {
     //   //     this.renderSign("Highlight", {
     //   //       id: "2ACA9359",
@@ -195,7 +221,7 @@
 
     // 鑾峰彇棰樼洰id鍒楄〃
     this.getQuestionId();
-    this.getCollect()
+    this.getCollect();
   },
   methods: {
     // setZoom1() {
@@ -214,8 +240,7 @@
     // },
     // 婊氬姩鐩戝惉
     scrollFun(event) {
-
-      this.handleVideoPicture()
+      this.handleVideoPicture();
 
       // 鍒ゆ柇鍚戜笂婊氬姩杩樻槸鍚戜笅婊氬姩
       if (event.target.scrollTop > this.previousScrollTop) {
@@ -271,7 +296,6 @@
             this.catalogLength - 2,
             this.catalogLength - 1,
             this.catalogLength,
-
           ];
         } else {
           this.showCatalogList = [catalog - 1, catalog, catalog + 1];
@@ -456,8 +480,8 @@
           page && pageThemeColor && pageThemeColor[page]
             ? pageThemeColor[page]
             : chapterNum && chapterThemeColor && chapterThemeColor[chapterNum]
-              ? chapterThemeColor[chapterNum]
-              : bookThemeColor;
+            ? chapterThemeColor[chapterNum]
+            : bookThemeColor;
         if (themeColor) {
           domItem.style.color = themeColor;
         }
@@ -474,8 +498,8 @@
           page && pageThemeColor && pageThemeColor[page]
             ? pageThemeColor[page]
             : chapterNum && chapterThemeColor && chapterThemeColor[chapterNum]
-              ? chapterThemeColor[chapterNum]
-              : bookThemeColor;
+            ? chapterThemeColor[chapterNum]
+            : bookThemeColor;
         if (themeColor) {
           domItem.style.backgroundColor = themeColor;
         }
@@ -492,8 +516,8 @@
           page && pageThemeColor && pageThemeColor[page]
             ? pageThemeColor[page]
             : chapterNum && chapterThemeColor && chapterThemeColor[chapterNum]
-              ? chapterThemeColor[chapterNum]
-              : bookThemeColor;
+            ? chapterThemeColor[chapterNum]
+            : bookThemeColor;
         if (themeColor) {
           domItem.style.borderColor = themeColor;
         }
@@ -553,15 +577,23 @@
             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);
+                  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);
               }
             }
             // 娓叉煋杩欎竴椤电殑鏍囪
@@ -709,7 +741,6 @@
         pageHeader,
         chapterOne,
         chapterTwo,
-
         chapterThree,
         chapterFour,
         chapterFive,
@@ -812,7 +843,7 @@
       // 璁板綍楂樹寒淇℃伅
       this.highlightData = data;
       // 璺宠浆
-      this.gotoPage(data.catalog, data.page, () => { });
+      this.gotoPage(data.catalog, data.page, () => {});
     },
     // 鑾峰彇棰樼洰鍒楄〃
     getQuestionId() {
@@ -820,11 +851,11 @@
         .get(this.config.activeBook.resourceUrl + "/question.json")
         .then((res) => {
           this.questionId = res.data.data;
-
         });
     },
     // 鑾峰彇棰樼洰鏀惰棌id鍒楄〃
     getCollect() {
+      if (!localStorage.getItem(this.config.tokenKey)) return false;
       this.MG.identity
         .getUserKey({
           domain: "collectData",
@@ -834,18 +865,20 @@
           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((res) => {
+          console.log("index 璇锋眰棰樼洰鏀惰棌id鎶ラ敊");
+        });
     },
     // 鑾峰彇绔犺妭棰樼洰
-    async getQuestion(num, page) {
-      // debugger
+    async getQuestion(num, page, questionIndex) {
       let cardList = [
         {
           catalogName: "鍗曢�夐",
@@ -870,69 +903,77 @@
       ];
       if (this.questionId) {
         if (this.questionId[num] && this.questionId[num][page]) {
-          const res = await axios.get(
-            this.config.activeBook.resourceUrl + "/question-" + num + ".json"
-          );
-
-          console.log(1, res);
-
-
-
-          // debugger
-          if (!res.data) return [];
-          // debugger
-          for (let index = 0; index < res.data.data.length; index++) {
-            const item = res.data.data[index];
-            // debugger
+          if (num != this.questionDataIndex) {
+            // 鍒ゆ柇褰撳墠绔犺妭鐨勯鐩甹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;
+            console.log("绔犺妭鍙�", num, res);
+          }
+          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
-            // debugger
-            if (this.questionId[num][page].indexOf(item.id) > -1) {
+            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);
-                } 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);
                 }
               }
             }
           }
-
-          console.log(cardList.filter((item) => item.infoList.length > 0));
-
           return cardList.filter((item) => item.infoList.length > 0);
         }
       } else {
         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;
@@ -940,7 +981,7 @@
           playVudio.requestPictureInPicture();
         }
       }
-    }
+    },
   },
   components: {
     pageHeader,
@@ -948,9 +989,7 @@
     chapterTwo,
     chapterThree,
     chapterFour,
-    chapterFive
-
-
+    chapterFive,
   },
 };
 </script>

--
Gitblit v1.9.1