From de8dbab2dae4853f781ae91e6ca864fdf9b361e7 Mon Sep 17 00:00:00 2001 From: YM <479443481@qq.com> Date: 星期二, 28 五月 2024 17:48:21 +0800 Subject: [PATCH] 修复放大缩小 --- src/books/childHealth/view/content/index.vue | 89 +++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 82 insertions(+), 7 deletions(-) diff --git a/src/books/childHealth/view/content/index.vue b/src/books/childHealth/view/content/index.vue index 3f0193b..6a116dd 100644 --- a/src/books/childHealth/view/content/index.vue +++ b/src/books/childHealth/view/content/index.vue @@ -1,6 +1,13 @@ <template> <div class="page-main" @scroll="throttledScrollHandler"> - <div class="page-content"> + <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" @@ -8,46 +15,57 @@ <chapterOne v-if="showCatalogList.indexOf(1) > -1" :showPageList="loadPageList" + :questionData="questionData" ></chapterOne> <chapterTwo v-if="showCatalogList.indexOf(2) > -1" :showPageList="loadPageList" + :questionData="questionData" ></chapterTwo> <chapterThree v-if="showCatalogList.indexOf(3) > -1" :showPageList="loadPageList" + :questionData="questionData" ></chapterThree> <chapterFour v-if="showCatalogList.indexOf(4) > -1" :showPageList="loadPageList" + :questionData="questionData" ></chapterFour> <chapterFive v-if="showCatalogList.indexOf(5) > -1" :showPageList="loadPageList" + :questionData="questionData" ></chapterFive> <chapterSix v-if="showCatalogList.indexOf(6) > -1" :showPageList="loadPageList" + :questionData="questionData" ></chapterSix> <chapterSeven v-if="showCatalogList.indexOf(7) > -1" :showPageList="loadPageList" + :questionData="questionData" ></chapterSeven> <chapterEight v-if="showCatalogList.indexOf(8) > -1" :showPageList="loadPageList" + :questionData="questionData" ></chapterEight> <chapterNine v-if="showCatalogList.indexOf(9) > -1" :showPageList="loadPageList" + :questionData="questionData" ></chapterNine> <chapterTen v-if="showCatalogList.indexOf(10) > -1" :showPageList="loadPageList" + :questionData="questionData" ></chapterTen> <chapterEleven v-if="showCatalogList.indexOf(11) > -1" :showPageList="loadPageList" + :questionData="questionData" ></chapterEleven> <chapterTwelve v-if="showCatalogList.indexOf(12) > -1" @@ -77,6 +95,8 @@ import chapterThirteen from "./components/chapter013.vue"; import NoteIcon from "@/assets/images/biji.png"; import _ from "lodash"; +import getQuestionList from "@/assets/methods/examination"; +import testData from "../../assets/examinationList"; export default { data() { return { @@ -88,7 +108,21 @@ throttledScrollHandler: null, observer: null, loadPageObserver: null, - loadPageList: [] + loadPageList: [], + questionData: {} + }; + }, + computed: { + fontSize() { + return this.$store.state.qiankun.fontSize; + }, + pageZoom() { + return this.$store.state.qiankun.scale / 100; + } + }, + provide() { + return { + changeQuestionData: this.changeQuestionData }; }, watch: { @@ -284,7 +318,7 @@ // 绗旇 pageDom.innerHTML = pageDom.innerHTML.replace( reg, - `<span datatype="Note" dataid="${data.id}" style="border-bottom-color:${data.color}" class="notesline" onclick="signClick('Note','${data.id}','${data.chapterNum}')" onmouseover="noteHover('Note','${data.id}','${data.chapterNum}')">${data.txt}<img src="${NoteIcon}"/></span>` + `<span datatype="Note" dataid="${data.id}" style="border-bottom-color:${data.color}" class="notesline" onclick="signClick('Note','${data.id}','${data.chapterNum}')" onmouseover="noteHover('Note','${data.id}','${data.chapterNum}')" onmouseout="noteOut">${data.txt}<img src="${NoteIcon}"/></span>` ); break; } @@ -322,6 +356,16 @@ this.container ? this.container : document ).querySelectorAll(".page-box"); sections.forEach((section) => { + if (this.config.activeBook && this.config.activeBook.tryPageCount) { + const page = section.getAttribute("page"); + if (Number(page) > this.config.activeBook.tryPageCount) { + let chapterDom = this.getParentWithClass(section, "chapter"); + const chapterNum = chapterDom.getAttribute("num"); + this.catalogLength = Number(chapterNum) - 1; + section.remove(); + return false; + } + } //observer 瑙傚療姣忎釜鍏冪礌锛屼互渚垮湪瀹冧滑杩涘叆鎴栫寮�瑙嗙獥鏃惰Е鍙戝洖璋冨嚱鏁般�� const isObserver = section.getAttribute("observer"); const isLoadObserver = section.getAttribute("loadObserver"); @@ -435,7 +479,7 @@ "chapter" ); const catalog = catalogDom.getAttribute("num"); - console.log("page", page, catalog); + console.log(page, "page", catalog, "catalog"); // 杩斿洖椤电爜鍜岀珷鑺備俊鎭� if (this.$store.state.qiankun && this.$store.state.qiankun.pageChange) this.$store.state.qiankun.pageChange({ @@ -450,20 +494,51 @@ }); }, loadPageCallback(entries, observer) { - entries.forEach((entry) => { + entries.forEach(async (entry) => { if (entry.isIntersecting) { const target = entry.target; const page = target.getAttribute("page"); if (this.loadPageList.indexOf(page) == -1) { + // + const catalogDom = this.tool.getParentNodeByClassName( + target, + "chapter" + ); + const catalog = catalogDom.getAttribute("num"); + if (!this.questionData[page]) { + if (testData && testData[catalog]) { + if (testData[catalog][page]) { + if (Array.isArray(testData[catalog][page])) { + this.questionData[page] = await getQuestionList( + [], + testData[catalog][page], + this.config.activeBook + ); + } else { + const obj = {}; + for (let key in testData[catalog][page]) { + obj[key] = await getQuestionList( + [], + testData[catalog][page][key], + this.config.activeBook + ); + } + this.questionData[page] = obj; + } + } + } + } this.loadPageList.push(Number(page)); - console.log(this.loadPageList,"this.loadPageList"); if (this.loadPageList.length > 5) { - // 瓒呰繃涓夌珷闅愯棌椤堕儴涓�绔� + // 瓒呰繃5椤� this.loadPageList.shift(); } } } }); + }, + changeQuestionData(page, data) { + this.$props.questionData[page] = data; } }, components: { -- Gitblit v1.9.1