| | |
| | | import examinations from "./components/examinations/index.vue"; |
| | | import { getPublicImage } from "@/assets/js/middleGround/tool"; |
| | | import pageContent from "./content/index.vue"; |
| | | import {mapState} from 'vuex' |
| | | export default { |
| | | name: "child-health", |
| | | components: { |
| | | pageContent, |
| | | examinations |
| | | examinations, |
| | | }, |
| | | data() { |
| | | return { |
| | | type: "option", |
| | | idPathList: [], |
| | | cardList: [] |
| | | cardList: [], |
| | | }; |
| | | }, |
| | | mounted() { |
| | | this.getBookInfo(); |
| | | console.log(this.$store.state.qiankun, "this.$store.state.qiankun"); |
| | | }, |
| | | // computed: { |
| | | // ...mapState(['lineHeightList']) |
| | | // }, |
| | | // wathch: { |
| | | // lineHeightList:{ |
| | | // handler(){ |
| | | // console.log('监听到lineHeightList变化'); |
| | | // this.handleDom() |
| | | // }, |
| | | // deep:true |
| | | // } |
| | | // }, |
| | | methods: { |
| | | getBookInfo() { |
| | | let query = { |
| | |
| | | productId: this.config.bookId, |
| | | favoriteTypes: "FavoriteBookCity", |
| | | itemFields: { |
| | | "SysType=": "CmsFolder" |
| | | "SysType=": "CmsFolder", |
| | | }, |
| | | coverSize: { |
| | | height: 300 |
| | | height: 300, |
| | | }, |
| | | fields: { |
| | | seriesName: [], |
| | |
| | | pdf: [], |
| | | protectedEpub: [], |
| | | probationPage: [], //pdf试读页数 |
| | | freeEpubPage: [] //epub试读百分比 |
| | | } |
| | | freeEpubPage: [], //epub试读百分比 |
| | | }, |
| | | }; |
| | | this.MG.store.getProductDetail(query).then((res) => { |
| | | console.log("图书信息", res.datas.cmsDatas[0].datas); |
| | |
| | | isDownload: [], |
| | | jsek_resourceBrief: [], |
| | | jsek_link: [], |
| | | jsek_questionBank: [] |
| | | jsek_questionBank: [], |
| | | }, |
| | | pading: { |
| | | start: 0, |
| | | size: 999 |
| | | } |
| | | size: 999, |
| | | }, |
| | | }; |
| | | this.MG.store |
| | | .getProductDetail(query) |
| | |
| | | cmsPath: data.productLinkPath, |
| | | pading: { |
| | | start: 0, |
| | | size: 999 |
| | | } |
| | | size: 999, |
| | | }, |
| | | }; |
| | | this.MG.store.getProductDetail(query).then((res) => { |
| | | console.log("题目", res.datas.cmsDatas[0].datas); |
| | |
| | | pathList.push({ |
| | | path: pathitem.productLinkPath, |
| | | catalogName: pathitem.name, |
| | | infoList: [] |
| | | infoList: [], |
| | | }); |
| | | this.$data.cardList = pathList; |
| | | // 获取题目 |
| | |
| | | Embedded_QuestionBank_StemStyle: [], |
| | | Embedded_QuestionBank_OptionStyle: [], |
| | | Embedded_QuestionBank_KnowledgePoint: [], |
| | | Embedded_QuestionBank_Difficulty: [] |
| | | Embedded_QuestionBank_Difficulty: [], |
| | | }, |
| | | pading: { |
| | | start: 0, |
| | | size: 999 |
| | | } |
| | | size: 999, |
| | | }, |
| | | }; |
| | | this.MG.store.getProductDetail(query).then((res) => { |
| | | let oldList; |
| | |
| | | (item) => item.path == pathitem.productLinkPath |
| | | ).infoList; |
| | | this.setData({ |
| | | submitStatus: true |
| | | submitStatus: true, |
| | | }); |
| | | } |
| | | res.datas.cmsDatas[0].datas.forEach((item, index) => { |
| | |
| | | isRight: oldObj ? oldObj.isRight : null, |
| | | isComplete: oldObj ? oldObj.isComplete : false, |
| | | isCollect: false, |
| | | isUnfold: "" // 控制解析的折叠面板是否展开 |
| | | isUnfold: "", // 控制解析的折叠面板是否展开 |
| | | }; |
| | | // 多选和填空答案肯为数组,要转换JSON格式 |
| | | if ( |
| | |
| | | if (item == "input") { |
| | | questionObj.stem[i] = { |
| | | num: index, |
| | | data: "input" |
| | | data: "input", |
| | | }; |
| | | if (!oldObj) questionObj.userAnswer[index] = ""; |
| | | index++; |
| | |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | getParentWithClass(element, className) { |
| | | while (element.parentElement) { |
| | | element = element.parentElement; |
| | |
| | | const txt = window.getSelection()?.toString(); |
| | | const selection = window.getSelection(); |
| | | if (selection.type != "none") { |
| | | let node = selection.anchorNode.parentNode.parentNode.parentNode; |
| | | let nextHtml = node.firstChild.innerHTML; |
| | | let node = selection.anchorNode.parentNode; |
| | | let pageHtml = this.getParentWithClass( |
| | | selection.anchorNode, |
| | | "page-box" |
| | | ); |
| | | if (txt && node) { |
| | | const page = node.getAttribute("page"); |
| | | // 监听选中文本事件,并触发父层方法 |
| | | if (this.$store.state.qiankun.windowSelection) |
| | | console.log("子项", selection.anchorNode); |
| | | let chapterDom = this.getParentWithClass( |
| | | selection.anchorNode, |
| | | "chapter" |
| | | ); |
| | | let chapterNum; |
| | | if (chapterDom) chapterNum = chapterDom.getAttribute("num"); |
| | | console.log("第一处判断", txt, pageHtml); |
| | | if (txt && pageHtml) { |
| | | const page = pageHtml.getAttribute("page"); |
| | | console.log( |
| | | { |
| | | chapterNum, |
| | | txt, |
| | | selection, |
| | | node, |
| | | page, |
| | | x: e.x, |
| | | y: e.y |
| | | y: e.y, |
| | | }, |
| | | "sendData" |
| | | ); |
| | | // 监听选中文本事件,并触发父层方法 |
| | | console.log("第二处判断", this.$store.state.qiankun); |
| | | if (this.$store.state.qiankun.windowSelection) { |
| | | this.$store.state.qiankun.windowSelection({ |
| | | txt, |
| | | selection, |
| | | node, |
| | | page, |
| | | x: e.x, |
| | | y: e.y |
| | | y: e.y, |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | handleDom() { |
| | | const selection = window.getSelection(); |
| | | let textDom = this.getParentWithClass(selection.anchorNode, "page-box"); |
| | | for (let i = 0; i < this.$store.state.lineHeightList.length; i++) { |
| | | let item = this.$store.state.lineHeightList[i]; |
| | | let rReg = new RegExp(`${item.selectText}`, "ig"); |
| | | let text = textDom.innerHTML; |
| | | console.log(item.selectNode, "item.selectNode.innerHTML"); |
| | | let nodeHtml = item.selectNode; |
| | | let nHtml = ""; |
| | | nHtml = nodeHtml.replace( |
| | | rReg, |
| | | `<span style="background: ${item.color};padding: 2px;cursor: pointer">${item.selectText}</span>` |
| | | ); |
| | | console.log(nHtml); |
| | | let rHtml = ""; |
| | | rHtml = text.replace(nodeHtml, nHtml); |
| | | textDom.innerHTML = rHtml; |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |