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 | 223 +++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 156 insertions(+), 67 deletions(-) diff --git a/src/books/mathBook/view/components/index.vue b/src/books/mathBook/view/components/index.vue index 0bee8ec..54f01c7 100644 --- a/src/books/mathBook/view/components/index.vue +++ b/src/books/mathBook/view/components/index.vue @@ -19,7 +19,32 @@ v-if="showCatalogList.indexOf(2) > -1" :showPageList="loadPageList" :questionData="questionDataMap" - ></chapterOne> + > + </chapterOne> + <chapterTwo + v-if="showCatalogList.indexOf(3) > -1" + :showPageList="loadPageList" + :questionData="questionDataMap" + > + </chapterTwo> + <chapterThree + v-if="showCatalogList.indexOf(4) > -1" + :showPageList="loadPageList" + :questionData="questionDataMap" + > + </chapterThree> + <chapterFour + v-if="showCatalogList.indexOf(5) > -1" + :showPageList="loadPageList" + :questionData="questionDataMap" + > + </chapterFour> + <chapterFive + v-if="showCatalogList.indexOf(6) > -1" + :showPageList="loadPageList" + :questionData="questionDataMap" + > + </chapterFive> </div> </div> </template> @@ -28,11 +53,10 @@ import axios from "axios"; import pageHeader from "./header.vue"; 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 chapterTwo from "./chapter002.vue"; +import chapterThree from "./chapter003.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"; @@ -44,7 +68,7 @@ name: "pageContent", data() { return { - catalogLength: 2, // 鎬荤珷鑺傛暟 + catalogLength: 6, // 鎬荤珷鑺傛暟 showCatalogList: [], // 鏄剧ず鐨勭珷鑺� loadThreshold: 300, // 瑙﹀彂鍔犺浇闃堝�� throttleThreshold: 100, // 鑺傛祦闃堝�� @@ -57,7 +81,9 @@ renderSignMap: {}, highlightData: null, questionId: {}, - collectId:[] + collectId: [], + questionDataIndex: 0, // 褰撳墠璇锋眰鐨勬槸鍝釜绔犺妭鐨勯鐩� + questionList: [], // 绔犺妭棰樼洰鍒楄〃 }; }, computed: { @@ -163,39 +189,39 @@ // 娴嬭瘯椤甸潰璺宠浆 // setTimeout(() => { - // this.gotoPage(1, 10); - // setTimeout(() => { - // this.renderSign("Highlight", { - // id: "2ACA9359", - // txt: "棰樹竴瀛︿範涓婚涓� 杩愬姩", - // page: "10", - // type: "Highlight", - // color: "#F5E12A" - // }); - // setTimeout(() => { - // this.delSign({ - // ids: ["2ACA9359"] - // }); - // }, 2000); - // }, 5000); + // this.gotoPage(6,206); + // // setTimeout(() => { + // // this.renderSign("Highlight", { + // // id: "2ACA9359", + // // txt: "棰樹竴瀛︿範涓婚涓� 杩愬姩", + // // page: "10", + // // type: "Highlight", + // // color: "#F5E12A" + // // }); + // // setTimeout(() => { + // // this.delSign({ + // // ids: ["2ACA9359"] + // // }); + // // }, 2000); + // // }, 5000); - // const pageDom = (this.container ? this.container : document) - // .querySelector("#app") - // .querySelectorAll(".page-box"); - // 妫�绱� - // console.log(this.searchTextByPage("淇濇姢鍐呰剰鍣ㄥ畼"), "searchTextByPage"); - // 妫�绱㈣烦杞� - // this.searchItemLocation({ - // catalog: 2, - // page: 10, - // txt: " 杩愬姩绯荤粺鏄敱楠ㄣ�侀杩炵粨鍜岄楠艰倢涓夐儴鍒嗙粍鎴愮殑銆傚叏韬殑楠ㄩ�氳繃楠ㄨ繛缁撶粍鎴愪汉浣撻楠硷紙瑙佸浘1-1锛夈�傞楠兼槸浜轰綋鐨勬敮鏋讹紝鍏锋湁淇濇姢鍐呰剰鍣ㄥ畼銆佷緵鑲岃倝闄勭潃鍜屼綔涓鸿倢鑲夎繍鍔ㄧ殑鏉犳潌绛変綔鐢ㄣ�傚湪绁炵粡绯荤粺鐨勬敮閰嶄笅锛岃倢鑲夋敹缂╃壍鍔ㄦ墍闄勭潃鐨勯缁曠潃鍏宠妭杞姩锛屼娇韬綋浜х敓鍚勭鍔ㄤ綔銆傛墍浠ワ紝杩愬姩绯荤粺鍏锋湁杩愬姩銆佹敮鎸佸拰淇濇姢绛夊姛鑳斤紝骞煎勾鏃舵湡鐨勯楠艰繕鍏锋湁閫犺鍔熻兘銆� ", - // txtIndex: 57 - // }); - // }, 5000); + // // const pageDom = (this.container ? this.container : document) + // // .querySelector("#app") + // // .querySelectorAll(".page-box"); + // // 妫�绱� + // // console.log(this.searchTextByPage("淇濇姢鍐呰剰鍣ㄥ畼"), "searchTextByPage"); + // // 妫�绱㈣烦杞� + // // this.searchItemLocation({ + // // catalog: 2, + // // page: 10, + // // txt: " 杩愬姩绯荤粺鏄敱楠ㄣ�侀杩炵粨鍜岄楠艰倢涓夐儴鍒嗙粍鎴愮殑銆傚叏韬殑楠ㄩ�氳繃楠ㄨ繛缁撶粍鎴愪汉浣撻楠硷紙瑙佸浘1-1锛夈�傞楠兼槸浜轰綋鐨勬敮鏋讹紝鍏锋湁淇濇姢鍐呰剰鍣ㄥ畼銆佷緵鑲岃倝闄勭潃鍜屼綔涓鸿倢鑲夎繍鍔ㄧ殑鏉犳潌绛変綔鐢ㄣ�傚湪绁炵粡绯荤粺鐨勬敮閰嶄笅锛岃倢鑲夋敹缂╃壍鍔ㄦ墍闄勭潃鐨勯缁曠潃鍏宠妭杞姩锛屼娇韬綋浜х敓鍚勭鍔ㄤ綔銆傛墍浠ワ紝杩愬姩绯荤粺鍏锋湁杩愬姩銆佹敮鎸佸拰淇濇姢绛夊姛鑳斤紝骞煎勾鏃舵湡鐨勯楠艰繕鍏锋湁閫犺鍔熻兘銆� ", + // // txtIndex: 57 + // // }); + // }, 500); // 鑾峰彇棰樼洰id鍒楄〃 this.getQuestionId(); - this.getCollect() + this.getCollect(); }, methods: { // setZoom1() { @@ -214,6 +240,8 @@ // }, // 婊氬姩鐩戝惉 scrollFun(event) { + this.handleVideoPicture(); + // 鍒ゆ柇鍚戜笂婊氬姩杩樻槸鍚戜笅婊氬姩 if (event.target.scrollTop > this.previousScrollTop) { // 鍚戜笅 @@ -551,9 +579,21 @@ 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); } } // 娓叉煋杩欎竴椤电殑鏍囪 @@ -700,11 +740,10 @@ const pageData = { pageHeader, chapterOne, - // chapterTwo, - // chapterThree, - // chapterFour, - // chapterFive, - // chapterSix, + chapterTwo, + chapterThree, + chapterFour, + chapterFive, }; // 閬嶅巻鎵�鏈夌珷鑺傛枃浠� for (const key in pageData) { @@ -816,6 +855,7 @@ }, // 鑾峰彇棰樼洰鏀惰棌id鍒楄〃 getCollect() { + if (!localStorage.getItem(this.config.tokenKey)) return false; this.MG.identity .getUserKey({ domain: "collectData", @@ -825,18 +865,20 @@ try { const collect = JSON.parse(res[0].value); if (collect.length) { - this.collectId = collect.find(item => item.type == 'json').collectList - console.log('鏀惰棌鍒楄〃',this.collectId); + 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) { + async getQuestion(num, page, questionIndex) { let cardList = [ { catalogName: "鍗曢�夐", @@ -861,27 +903,58 @@ ]; 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.data) return []; - for (let index = 0; index < res.data.data.length; index++) { - const item = res.data.data[index]; - item.isCollect = this.collectId.indexOf(item.id) > -1 ? true :false - console.log(item.id ,this.collectId.indexOf(item.id)); - if (this.questionId[num][page].indexOf(item.id) > -1) { + 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"' + ); + }); + } else { + 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 (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); } } @@ -893,15 +966,30 @@ 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); + if (playVudio) { + const bottomGap = playVudio.getBoundingClientRect().bottom; + const topGap = playVudio.getBoundingClientRect().top; + if (bottomGap < 0 || topGap > window.innerHeight) { + playVudio.requestPictureInPicture(); + } + } + }, }, components: { pageHeader, chapterOne, - // chapterTwo, - // chapterThree, - // chapterFour, - // chapterFive, - // chapterSix, + chapterTwo, + chapterThree, + chapterFour, + chapterFive, }, }; </script> @@ -911,6 +999,7 @@ width: 100%; height: 100%; overflow: auto; + .page-content { max-width: 816px; min-width: 375px; -- Gitblit v1.9.1