From 7869653a258353bd70fc232630ab8467fa379bfe Mon Sep 17 00:00:00 2001 From: user1 <10901603+no-distractions1@user.noreply.gitee.com> Date: 星期五, 21 六月 2024 18:43:36 +0800 Subject: [PATCH] Merge branch 'master' of http://182.92.203.7:2001/r/testbookLayout --- src/books/mathBook/view/components/chapter001.vue | 110 ++++++---- src/components/examinations/index.vue | 255 ++++++++++++++++++++----- src/components/matching/matching.vue | 2 src/assets/methods/resources.js | 29 ++ src/books/mathBook/view/components/index.vue | 173 ++++++++++++---- src/App.vue | 2 6 files changed, 426 insertions(+), 145 deletions(-) diff --git a/src/App.vue b/src/App.vue index 77be6ac..58ee2a9 100644 --- a/src/App.vue +++ b/src/App.vue @@ -65,7 +65,7 @@ process.env.VUE_APP_RESOURCE_CTX + (process.env.VUE_APP_ENV == "product" ? process.env.VUE_APP_BOOK_ID - : "artAndDrama") + : "mathBook") ); // 娴嬭瘯璇曡30椤� // this.activeBook.tryPageCount = 10; diff --git a/src/assets/methods/resources.js b/src/assets/methods/resources.js index bd860ff..74e4315 100644 --- a/src/assets/methods/resources.js +++ b/src/assets/methods/resources.js @@ -1,4 +1,5 @@ import fileApi from "@/assets/js/middleGround/api/file"; +import identityApi from "../js/middleGround/api/identity"; export const getResourcePath = async (md5, appRefCode = "jingshieke") => { let path = ""; await fileApi @@ -15,8 +16,36 @@ }); return path; }; +// 鑾峰彇鏀惰棌鐨勮祫婧� +export const getCollectResource = async (key) => { + let list = [] + await identityApi + .getUserKey({ + domain: "collectResource", + keys: [key], + }) + .then((res) => { + if(res.length) { + list = JSON.parse(res[0].value) + } + }); + return list +} +export const setCollectResource = (key,list) => { + identityApi.setUserKey({ + setKeyRequests: [ + { + domain: "collectResource", + key, + value: JSON.stringify(list), + }, + ], + }) +} const MT = { getResourcePath, + getCollectResource, + setCollectResource }; export default MT; diff --git a/src/books/mathBook/view/components/chapter001.vue b/src/books/mathBook/view/components/chapter001.vue index 55f50d7..9cf0e20 100644 --- a/src/books/mathBook/view/components/chapter001.vue +++ b/src/books/mathBook/view/components/chapter001.vue @@ -156,7 +156,7 @@ placement="top-start" > <img - :src="chapterData.isCollectImg ? collectCheck : collectImg" + :src="collectResourceList.findIndex(item => item.id == '722FE833') > -1 ? collectCheck : collectImg" alt="" class="collect-btn" @click="handleCollect('img')" @@ -184,7 +184,7 @@ placement="top-start" > <img - :src="chapterData.isCollectVideo ? collectCheck : collectImg" + :src="collectResourceList.findIndex(item => item.id == 'a28cd862d61b5df2201406b76e9f01b0') > -1 ? collectCheck : collectImg" alt="" class="collect-btn" @click="handleCollect('video')" @@ -564,8 +564,9 @@ </p> <div class="bj"> <examinations - :cardList="questionData" + :cardList="questionData[9]" :hideCollect="true" + sourceType="json" inputBc="#d3edfa" v-if="questionData" :isReal="false" @@ -818,7 +819,7 @@ <script> import examinations from "@/components/examinations/index.vue"; import { getResourcePath } from "@/assets/methods/resources"; -import axios from "axios"; +import { getCollectResource,setCollectResource } from "@/assets/methods/resources"; export default { name: "chapter-one", components: { examinations }, @@ -827,14 +828,17 @@ type: Array, default: [], }, + questionData:{ + type:Object + } }, - mounted() { + async mounted() { const data = localStorage.getItem("math-chapterData"); if (data) { this.chapterData = JSON.parse(data); } this.getPath(); - this.getQuestionData(); + this.collectResourceList = await getCollectResource(this.config.activeBook.bookId) }, data() { return { @@ -849,9 +853,9 @@ thinkingDialog: false, stepDialog: false, videoPath: "", - questionData: [], stepIndex: 1, thinkIndex: 1, + collectResourceList:[], chapterData: { isCollectImg: false, isCollectVideo: false, @@ -896,45 +900,46 @@ "a28cd862d61b5df2201406b76e9f01b0" ); }, - getQuestionData() { - axios - .get(this.config.activeBook.resourceUrl + "/question.json") - .then((res) => { - let oldAnswer = localStorage.getItem( - this.config.activeBook.name + "oldAnswerData" - ); - if (oldAnswer) { - oldAnswer = JSON.parse(oldAnswer); - console.log("鏃ф暟鎹�", oldAnswer); - if (oldAnswer[9]) { - for (let index = 0; index < res.data.data.length; index++) { - const item = res.data.data[index]; - if (item.infoList.length) { - for ( - let cindex = 0; - cindex < item.infoList.length; - cindex++ - ) { - const citem = item.infoList[cindex]; - const question = oldAnswer[9].find( - (ditem) => ditem.id == citem.id - ); - if (question) { - citem.userAnswer = question.userAnswer; - } - } - } - } - } - } - this.questionData = res.data.data; - }); - }, + // getQuestionData() { + // axios + // .get(this.config.activeBook.resourceUrl + "/question.json") + // .then((res) => { + // let oldAnswer = localStorage.getItem( + // this.config.activeBook.name + "oldAnswerData" + // ); + // if (oldAnswer) { + // oldAnswer = JSON.parse(oldAnswer); + // console.log("鏃ф暟鎹�", oldAnswer); + // if (oldAnswer[9]) { + // for (let index = 0; index < res.data.data.length; index++) { + // const item = res.data.data[index]; + // if (item.infoList.length) { + // for ( + // let cindex = 0; + // cindex < item.infoList.length; + // cindex++ + // ) { + // const citem = item.infoList[cindex]; + // const question = oldAnswer[9].find( + // (ditem) => ditem.id == citem.id + // ); + // if (question) { + // citem.userAnswer = question.userAnswer; + // } + // } + // } + // } + // } + // } + // this.questionData = res.data.data; + // }); + // }, handleCollect(type) { if (type == "img") { - this.chapterData.isCollectImg = !this.chapterData.isCollectImg; + this.handleCollectResource("722FE833","",'images/0101-1.jpg',"鍥剧墖","json",'鍥�3-15') } else if (type == "video") { - this.chapterData.isCollectVideo = !this.chapterData.isCollectVideo; + this.handleCollectResource("a28cd862d61b5df2201406b76e9f01b0","a28cd862d61b5df2201406b76e9f01b0",'',"瑙嗛","bits",'瑙嗛锛氬垽鏁板嚱鏁板鍋舵�х殑鏂规硶鍜屾楠�') + // setCollectResource(this.config.activeBook.bookId,[]) } this.handleChapterData(); }, @@ -959,6 +964,25 @@ this.stepIndex++; } }, + //璧勬簮鏀惰棌浜嬩欢 + handleCollectResource(id,md5,resourcePath,resourceType,source,resourceName){ + console.log(this.collectResourceList); + let list = this.collectResourceList + if(list.findIndex(item => item.id == id) > -1) { + list = list.filter(item => item.id != id) + } else { + list.push({ + id, + md5, + resourcePath, + resourceType, + source, + resourceName, + }) + } + this.collectResourceList = list + setCollectResource(this.config.activeBook.bookId,this.collectResourceList) + } }, }; </script> diff --git a/src/books/mathBook/view/components/index.vue b/src/books/mathBook/view/components/index.vue index d608cce..44910de 100644 --- a/src/books/mathBook/view/components/index.vue +++ b/src/books/mathBook/view/components/index.vue @@ -18,13 +18,14 @@ <chapterOne v-if="showCatalogList.indexOf(2) > -1" :showPageList="loadPageList" + :questionData="questionDataMap" ></chapterOne> </div> - </div> </template> <script> +import axios from "axios"; import pageHeader from "./header.vue"; import chapterOne from "./chapter001.vue"; // import chapterTwo from "./chapter002.vue"; @@ -38,8 +39,9 @@ import "swiper/swiper-bundle.css"; import Viewer from "viewerjs"; import "viewerjs/dist/viewer.css"; +import getQuestionList from "@/assets/methods/examination"; export default { - name:"pageContent", + name: "pageContent", data() { return { catalogLength: 2, // 鎬荤珷鑺傛暟 @@ -54,6 +56,8 @@ questionDataMap: {}, renderSignMap: {}, highlightData: null, + questionId: {}, + collectId:[] }; }, computed: { @@ -188,6 +192,10 @@ // txtIndex: 57 // }); // }, 5000); + + // 鑾峰彇棰樼洰id鍒楄〃 + this.getQuestionId(); + this.getCollect() }, methods: { // setZoom1() { @@ -309,7 +317,10 @@ this.container ? this.container : document ).querySelector(`[page="${data.page}"]`); // 鍒涘缓 createTreeWalker 杩唬鍣紝鐢ㄤ簬閬嶅巻鏂囨湰鑺傜偣锛屼繚瀛樺埌涓�涓暟缁� - const treeWalker = document.createTreeWalker(pageDom, NodeFilter.SHOW_TEXT); + const treeWalker = document.createTreeWalker( + pageDom, + NodeFilter.SHOW_TEXT + ); const allTextNodes = []; let currentNode = treeWalker.nextNode(); while (currentNode) { @@ -537,30 +548,14 @@ // 娣诲姞椤电爜 this.loadPageList.push(Number(page)); const catalog = catalogDom.getAttribute("num"); - // if (!this.questionDataMap[page]) { - // if (testData && testData[catalog]) { - // if (testData[catalog][page]) { - // if (Array.isArray(testData[catalog][page])) { - // this.questionDataMap[page] = await getQuestionList( - // page, - // 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.questionDataMap[page] = obj; - // } - // console.log("棰樼洰", this.questionDataMap); - // } - // } - // } + 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); + } + } + } // 娓叉煋杩欎竴椤电殑鏍囪 for (const key in this.renderSignMap) { if (this.renderSignMap[key][page]) { @@ -574,7 +569,10 @@ // 楂樹寒琛� setTimeout(() => { // 鑾峰彇椤甸潰鎵�鏈塼ext鑺傜偣 - const pageTextList = document.createTreeWalker(target, NodeFilter.SHOW_TEXT); + const pageTextList = document.createTreeWalker( + target, + NodeFilter.SHOW_TEXT + ); // 鍖归厤鍏抽敭瀛� const allPageTextNodes = []; let currentNode = pageTextList.nextNode(); @@ -618,23 +616,19 @@ autoplay: { //鑷姩寮�濮� delay: 3000, //鏃堕棿闂撮殧 - disableOnInteraction: false //*鎵嬪姩鎿嶄綔杞挱鍥惧悗涓嶄細鏆傚仠* + disableOnInteraction: false, //*鎵嬪姩鎿嶄綔杞挱鍥惧悗涓嶄細鏆傚仠* }, paginationClickable: true, slidesPerView: 1, // 涓�缁勪笁涓� spaceBetween: 30, // 闂撮殧 // 濡傛灉闇�瑕佸墠杩涘悗閫�鎸夐挳 navigation: { - nextEl: dom.querySelector( - ".swiper-button-next" - ), - prevEl: dom.querySelector( - ".swiper-button-prev" - ) + nextEl: dom.querySelector(".swiper-button-next"), + prevEl: dom.querySelector(".swiper-button-prev"), }, // 绐楀彛鍙樺寲,閲嶆柊init,閽堝F11鍏ㄥ睆鍜屾斁澶х缉灏�,蹇呴』鍔� observer: true, - observeParents: true + observeParents: true, // // 濡傛灉闇�瑕佸垎椤靛櫒 // pagination: { // el: (this.container ? this.container : document).querySelector( @@ -657,12 +651,8 @@ spaceBetween: 30, // 闂撮殧 // 濡傛灉闇�瑕佸墠杩涘悗閫�鎸夐挳 navigation: { - nextEl: dom.querySelector( - ".swiper-button-next" - ), - prevEl: dom.querySelector( - ".swiper-button-prev" - ) + nextEl: dom.querySelector(".swiper-button-next"), + prevEl: dom.querySelector(".swiper-button-prev"), }, // 绐楀彛鍙樺寲,閲嶆柊init,閽堝F11鍏ㄥ睆鍜屾斁澶х缉灏�,蹇呴』鍔� observer: true, @@ -681,8 +671,8 @@ var paginationInfoEl = dom.querySelector(".pageBox"); if (paginationInfoEl) paginationInfoEl.textContent = currentPage + "/" + totalPages; - } - } + }, + }, }); } }, @@ -726,7 +716,7 @@ propsData: { showPageList: [], questionData: {}, - isSearch: true + isSearch: true, }, }); pageExample.$mount( @@ -758,7 +748,7 @@ propsData: { showPageList: [pageNum], questionData: {}, - isSearch: true + isSearch: true, }, }); pageExample.$mount( @@ -772,7 +762,10 @@ .querySelector(`[page="${pageNum}"]`); if (thisPageDom) { // 鑾峰彇椤甸潰鎵�鏈塼ext鑺傜偣 - const pageTextList = document.createTreeWalker(thisPageDom, NodeFilter.SHOW_TEXT); + const pageTextList = document.createTreeWalker( + thisPageDom, + NodeFilter.SHOW_TEXT + ); // 鍖归厤鍏抽敭瀛� const allPageTextNodes = []; let currentNode = pageTextList.nextNode(); @@ -813,6 +806,92 @@ // 璺宠浆 this.gotoPage(data.catalog, data.page, () => {}); }, + // 鑾峰彇棰樼洰鍒楄〃 + getQuestionId() { + axios + .get(this.config.activeBook.resourceUrl + "/question.json") + .then((res) => { + this.questionId = res.data.data; + }); + }, + // 鑾峰彇棰樼洰鏀惰棌id鍒楄〃 + getCollect() { + this.MG.identity + .getUserKey({ + domain: "collectData", + keys: [this.config.activeBook.bookId], + }) + .then((res) => { + try { + const collect = JSON.parse(res[0].value); + if (collect.length) { + this.collectId = collect.find(item => item.type == 'json').collectList + } + } catch (error) { + console.log("鏆傛棤鏁版嵁"); + } + }).catch(res => { + console.log('index 璇锋眰棰樼洰鏀惰棌id鎶ラ敊'); + }) + }, + // 鑾峰彇绔犺妭棰樼洰 + async getQuestion(num, page) { + let cardList = [ + { + catalogName: "鍗曢�夐", + infoList: [], + }, + { + catalogName: "鍒ゆ柇棰�", + infoList: [], + }, + { + catalogName: "澶氶�夐", + infoList: [], + }, + { + catalogName: "濉┖棰�", + infoList: [], + }, + { + 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.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 (item.type && item.type == "material") { + cardList.push(item); + } else { + if (item.questionType == "judge") { + cardList[1].infoList.push(item); + } else if (item.questionType == "singleChoice") { + cardList[0].infoList.push(item); + } else if (item.questionType == "multipleChoice") { + cardList[2].infoList.push(item); + } else if (item.questionType == "completion") { + cardList[3].infoList.push(item); + } else if (item.questionType == "shortAnswer") { + cardList[4].infoList.push(item); + } + } + } + } + return cardList.filter((item) => item.infoList.length > 0); + } + } else { + return []; + } + }, }, components: { pageHeader, diff --git a/src/components/examinations/index.vue b/src/components/examinations/index.vue index 68fef34..98120c7 100644 --- a/src/components/examinations/index.vue +++ b/src/components/examinations/index.vue @@ -79,7 +79,7 @@ class="input" v-model.trim="value.userAnswer[itemText.num]" :disabled="value.isComplete" - :style="{backgroundColor:inputBc}" + :style="{ backgroundColor: inputBc }" /> <!-- --> </span> @@ -92,7 +92,13 @@ v-cloak ></p> </div> - <img :src="value.isCollect ? isHeart : heart" alt="" class="collect-png" @click="handleCollect(nindex,index)" v-if="!(hideCollect && value.questionType == 'shortAnswer')" > + <img + :src="value.isCollect ? isHeart : heart" + alt="" + class="collect-png" + @click="setCollect(nindex, index)" + v-if="!(hideCollect && value.questionType == 'shortAnswer')" + /> <!-- 鏀惰棌 --> </div> <div class="questionContent"> @@ -293,41 +299,41 @@ <!-- 姝g‘閿欒鍥炬爣 --> <span class="mr-10"> <svg - v-if="value.isRight" - t="1716986419862" - class="icon" - viewBox="0 0 1820 1024" - version="1.1" - xmlns="http://www.w3.org/2000/svg" - p-id="18767" - xmlns:xlink="http://www.w3.org/1999/xlink" - width="40" - height="20" - > - <path - d="M1439.374222 216.007111s-169.472 56.490667-367.179852 282.443852C888.604444 703.222519 846.241185 787.949037 775.632593 900.93037 768.568889 893.866667 662.651259 689.095111 380.207407 540.814222l148.290371-141.226666s134.162963 91.790222 225.953185 261.262222c0 0 233.016889-360.116148 684.923259-536.642371v91.799704z m0 0" - fill="#1AFA29" - p-id="18768" - ></path> - </svg> - <svg - v-if="value.isRight == false" - t="1716987085767" - class="icon" - viewBox="0 0 1024 1024" - version="1.1" - xmlns="http://www.w3.org/2000/svg" - p-id="25745" - xmlns:xlink="http://www.w3.org/1999/xlink" - width="20" - height="20" - > - <path - d="M116.579135 38.64349531L38.703935 103.74399781c138.82075969 102.96027281 268.24660875 221.31426938 381.68489719 339.96758156C246.29374906 618.40145938 109.95003031 790.19602344 38.10817906 859.25288281l148.35573469 123.62658094c52.61360812-108.17625656 167.23381594-272.86683656 320.56281844-445.01635875 153.50744156 173.21056312 268.36844625 338.43166313 321.38977781 447.49243969 0 0 144.5682225-152.96636906 157.47435281-129.29729625-55.80632344-62.49011156-191.37776625-244.16501625-374.17990593-430.27403438 104.68422375-107.1132975 222.15274031-213.10127719 347.60304468-306.24740437L925.17746562 56.03842156C782.85412063 126.51895625 647.69328031 231.09093594 526.07845437 342.39755 403.34886594 226.82662719 264.46095125 116.16373719 116.579135 38.64349531L116.579135 38.64349531zM116.579135 38.64349531" - fill="#d81e06" - p-id="25746" - ></path> - </svg> + v-if="value.isRight" + t="1716986419862" + class="icon" + viewBox="0 0 1820 1024" + version="1.1" + xmlns="http://www.w3.org/2000/svg" + p-id="18767" + xmlns:xlink="http://www.w3.org/1999/xlink" + width="40" + height="20" + > + <path + d="M1439.374222 216.007111s-169.472 56.490667-367.179852 282.443852C888.604444 703.222519 846.241185 787.949037 775.632593 900.93037 768.568889 893.866667 662.651259 689.095111 380.207407 540.814222l148.290371-141.226666s134.162963 91.790222 225.953185 261.262222c0 0 233.016889-360.116148 684.923259-536.642371v91.799704z m0 0" + fill="#1AFA29" + p-id="18768" + ></path> + </svg> + <svg + v-if="value.isRight == false" + t="1716987085767" + class="icon" + viewBox="0 0 1024 1024" + version="1.1" + xmlns="http://www.w3.org/2000/svg" + p-id="25745" + xmlns:xlink="http://www.w3.org/1999/xlink" + width="20" + height="20" + > + <path + d="M116.579135 38.64349531L38.703935 103.74399781c138.82075969 102.96027281 268.24660875 221.31426938 381.68489719 339.96758156C246.29374906 618.40145938 109.95003031 790.19602344 38.10817906 859.25288281l148.35573469 123.62658094c52.61360812-108.17625656 167.23381594-272.86683656 320.56281844-445.01635875 153.50744156 173.21056312 268.36844625 338.43166313 321.38977781 447.49243969 0 0 144.5682225-152.96636906 157.47435281-129.29729625-55.80632344-62.49011156-191.37776625-244.16501625-374.17990593-430.27403438 104.68422375-107.1132975 222.15274031-213.10127719 347.60304468-306.24740437L925.17746562 56.03842156C782.85412063 126.51895625 647.69328031 231.09093594 526.07845437 342.39755 403.34886594 226.82662719 264.46095125 116.16373719 116.579135 38.64349531L116.579135 38.64349531zM116.579135 38.64349531" + fill="#d81e06" + p-id="25746" + ></path> + </svg> </span> <div class="headerConent sitgBox"> @@ -475,7 +481,7 @@ </template> <script> -import { Message } from 'element-ui'; +import { Message } from "element-ui"; export default { name: "examination-option", props: { @@ -500,10 +506,14 @@ type: String, default: "#fff", }, - hideCollect:{ - type:Boolean, - default:false - } + hideCollect: { + type: Boolean, + default: false, + }, + sourceType: { + type: String, + default: "bits", + }, }, data() { return { @@ -511,8 +521,30 @@ loading: false, cardData: [], loading: true, - heart:require("@/assets/images/heart.png"), - isHeart:require("@/assets/images/heart-check.png"), + heart: require("@/assets/images/heart.png"), + isHeart: require("@/assets/images/heart-check.png"), + collectList: [], + allCollect: [ + { + type: "bits", + collectList: [], + }, + { + type: "json", + collectList: [], + }, + ], + errorList: [], + allError: [ + { + type: "bits", + errorList: [], + }, + { + type: "json", + errorList: [], + }, + ], }; }, watch: { @@ -528,9 +560,8 @@ }, }, mounted() { - // this.cardData = this.cardList - // console.log('this.cardList',this.cardList); - // console.log('this.cardData',this.cardData); + this.getCollectIdList(); + this.getErrorList() }, methods: { // 鏁扮粍杞负瀛楃涓叉柟娉� @@ -590,6 +621,7 @@ }, // 鎵规敼棰樼洰 (缁冧範,鎴戠殑鍋氶,鎴戠殑鏀惰棌妯″紡涓�) handleQuestion() { + let errorId = [] const list = this.cardData; for (let index = 0; index < list.length; index++) { const item = list[index]; @@ -633,10 +665,36 @@ } } } + if(citem.isRight == false) { + errorId.push(citem.id) + } } } this.cardData = list; - console.log(this.cardData); + let oldErrodId = this.allError.find(item => item.type == this.sourceType).errorList + for (let index = 0; index < errorId.length; index++) { + const item = errorId[index]; + if(oldErrodId.indexOf(item == -1)) { + oldErrodId.push(item) + } + } + for (let cindex = 0; cindex < this.allError.length; cindex++) { + const citem = this.allError[cindex]; + if(citem.type == this.sourceType) citem.errorList = oldErrodId + } + this.MG.identity + .setUserKey({ + setKeyRequests: [ + { + domain: 'errorData', + key: this.config.activeBook.bookId, + value: JSON.stringify(this.allError) + } + ] + }) + .then((res) => { + console.log('閿欓宸蹭繚瀛�',this.allError) + }) }, getParentWithClass(element, className) { while (element.parentElement) { @@ -681,7 +739,7 @@ this.config.activeBook.name + "oldAnswerData", JSON.stringify(oldData) ); - Message.success('淇濆瓨鎴愬姛') + Message.success("淇濆瓨鎴愬姛"); } // if(oldData[this.chapter]) { @@ -692,10 +750,99 @@ // } // console.log(oldData); }, - handleCollect(infoNum,num) { - console.log(this.cardData[infoNum].infoList[num] ); - this.cardData[infoNum].infoList[num].isCollect = !this.cardData[infoNum].infoList[num].isCollect - } + handleCollect(infoNum, num) { + this.cardData[infoNum].infoList[num].isCollect = + !this.cardData[infoNum].infoList[num].isCollect; + }, + // 棰樼洰鏀惰棌鎸夐挳,鏀惰棌鍜屽彇娑堝悓涓�鎺ュ彛锛屽彇娑堟暟缁勫噺鍘昏椤筰d + setCollect(num, number) { + const item = this.cardData[num].infoList[number]; + item.isCollect = !item.isCollect; + if (this.cardData.length == 0) { + this.collectList.push(item.id); + } else { + const isShow = this.collectList.findIndex((citem) => citem == item.id); + if (isShow == -1) { + this.collectList.push(item.id); + } else { + this.collectList = this.collectList.filter( + (citem) => citem != item.id + ); + } + } + const list = this.collectList; + for (let index = 0; index < this.allCollect.length; index++) { + const item = this.allCollect[index]; + if (item.type == this.sourceType) item.collectList = this.collectList; + } + // console.log(this.allCollect, this.collectList, list); + this.MG.identity + .setUserKey({ + setKeyRequests: [ + { + domain: "collectData", + key: this.config.activeBook.bookId, + value: JSON.stringify(this.allCollect), + }, + ], + }) + .then((res) => { + console.log("鏀惰棌/鍙栨秷鎴愬姛"); + }); + }, + // 鑾峰彇鏀惰棌id鍒楄〃 + getCollectIdList() { + this.MG.identity + .getUserKey({ + domain: "collectData", + keys: [this.config.activeBook.bookId], + }) + .then((res) => { + try { + const collect = JSON.parse(res[0].value); + if (collect.length) { + this.collectList = collect.find( + (citem) => citem.type == this.sourceType + ).collectList; + this.allCollect[0].collectList = collect.find( + (citem) => citem.type == "bits" + ).collectList; + this.allCollect[1].collectList = collect.find( + (citem) => citem.type == "json" + ).collectList; + } + } catch (error) { + console.log("鏆傛棤鏁版嵁"); + } + }) + .catch((res) => { + console.log("绛旈鍣ㄨ姹傞鐩敹钘廼d鎶ラ敊"); + }); + }, + // 鑾峰彇閿欓id鍒楄〃 + getErrorList() { + this.MG.identity + .getUserKey({ + domain: "errorData", + keys: [this.config.activeBook.bookId], + }) + .then((res) => { + try { + const error = JSON.parse(res[0].value); + if (error.length) { + this.errorList = error.find( + (citem) => citem.type == this.sourceType + ).errorList; + this.allError[0].errorList = error.find( + (citem) => citem.type == "bits" + ).errorList; + this.allError[1].errorList = error.find( + (citem) => citem.type == "json" + ).errorList; + } + } catch (error) {} + }); + }, }, }; </script> @@ -837,7 +984,7 @@ width: 140px; height: 24px; border: 0; - outline: none; + outline: none; border-bottom: 1px solid #15c0f2; } /deep/ .el-textarea.is-disabled .el-textarea__inner { diff --git a/src/components/matching/matching.vue b/src/components/matching/matching.vue index f0d49c7..a1f76a1 100644 --- a/src/components/matching/matching.vue +++ b/src/components/matching/matching.vue @@ -341,11 +341,13 @@ const rightIndex = this.question.options.linkValues.findIndex( (citem) => citem.oldId == item.oldId ); + answerArr.push({ left: index, right: rightIndex, }); } + console.log(this.question.userChoise,answerArr); this.isRight = this.areArraysEqual(this.question.userChoise, answerArr); this.isShowAnswer = true; }, -- Gitblit v1.9.1