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 f3c90f7..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(5, 210); + 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