From 43e78dd1d8aeb9720ac0b058284820383a7ebe39 Mon Sep 17 00:00:00 2001 From: YM <479443481@qq.com> Date: 星期三, 15 五月 2024 11:51:24 +0800 Subject: [PATCH] Merge branch 'master' of http://182.92.203.7:2001/r/testbookLayout --- src/assets/methods/examination.js | 207 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 207 insertions(+), 0 deletions(-) diff --git a/src/assets/methods/examination.js b/src/assets/methods/examination.js new file mode 100644 index 0000000..7ebe2ad --- /dev/null +++ b/src/assets/methods/examination.js @@ -0,0 +1,207 @@ +import { activeBook } from "@/assets/js/config"; +import MG from "@/assets/js/middleGround/WebMiddleGroundApi"; +import getPublicImage from '@/assets/js/middleGround/tool' +const getQuestionList = (rootCmsItemId, questionList) => { + let questionArr = []; + let cardList = [ + { + catalogName: "鍗曢�夐", + infoList: [], + }, + { + catalogName: "鍒ゆ柇棰�", + infoList: [], + }, + { + catalogName: "澶氶�夐", + infoList: [], + }, + { + catalogName: "濉┖棰�", + infoList: [], + }, + { + catalogName: "绠�绛旈", + infoList: [], + }, + ]; + let singleChoiceArr = []; // 鍗曢�� + let judgeArr = []; // 鍒ゆ柇 + let shortArr = []; // 绠�绛� + let multipleChoiceArr = []; // 澶氶�� + let completionArr = []; // 濉┖ + for (let qindex = 0; qindex < questionList.length; qindex++) { + const qitem = questionList[qindex]; + let query = { + path: "*", + cmsPath: rootCmsItemId, + cmsType: "*", + productId: activeBook.bookId, + queryType: "*", + itemIds: qitem + "", + itemFields: { + Embedded_QuestionBank_Stem: [], + Embedded_QuestionBank_AnalysisCon: [], + Embedded_QuestionBank_Answer: [], + Embedded_QuestionBank_Option: [], + Embedded_QuestionBank_QuestionType: [], + Embedded_QuestionBank_StemStyle: [], + Embedded_QuestionBank_OptionStyle: [], + Embedded_QuestionBank_KnowledgePoint: [], + Embedded_QuestionBank_Difficulty: [], + }, + }; + MG.store.getProductDetail(query).then((res) => { + res.datas.cmsDatas[0].datas.forEach((item, index) => { + const questionObj = { + number: index + 1, // 棰樺彿 + id: item.id, + stem: item.Embedded_QuestionBank_QuestionType == "completion" ? + JSON.parse(item.Embedded_QuestionBank_Stem) + .stemTxt.replaceAll("<vacancy>", ",input,") + .split(",") : JSON.parse(item.Embedded_QuestionBank_Stem), // 棰樺共 + answer: item.Embedded_QuestionBank_Answer, // 绛旀 + option: item.Embedded_QuestionBank_Option ? + JSON.parse(item.Embedded_QuestionBank_Option) : "", // 閫夋嫨棰橀�夐」 + analysisCon: item.Embedded_QuestionBank_AnalysisCon, // 瑙f瀽 + questionType: item.Embedded_QuestionBank_QuestionType, // 棰樺瀷 + optionStyle: item.Embedded_QuestionBank_OptionStyle, // 閫夐」鏄剧ず绫诲瀷 + stemStyle: item.Embedded_QuestionBank_StemStyle, // 棰樺共鏄剧ず绫诲瀷 + difficulty: item.Embedded_QuestionBank_Difficulty ? + 4 - item.Embedded_QuestionBank_Difficulty : 0, // 闅惧害绛夌骇 + userAnswer: item.Embedded_QuestionBank_QuestionType == "completion" || + item.Embedded_QuestionBank_QuestionType == "multipleChoice" ? [] : "", + isSubmit: false, // 鏌ョ湅瑙f瀽 + isRight: null, // 鏄惁姝g‘ + isComplete: false, + isCollect: true, + isUnfold:'' + }; + // 澶氶�夊拰濉┖绛旀鑲负鏁扮粍锛岃杞崲JSON鏍煎紡 + if ( + questionObj.questionType == "completion" || + questionObj.questionType == "multipleChoice" + ) { + try { + questionObj.answer = JSON.parse(questionObj.answer).toString(); + } catch (error) { + questionObj.answer = item.Embedded_QuestionBank_Answer; + } + } + // 濉┖棰樻敼閫� + if (questionObj.questionType == "completion") { + let index = 0; + for (let i = 0; i < questionObj.stem.length; i++) { + const item = questionObj.stem[i]; + if (item == "input") { + questionObj.stem[i] = { + num: index, + data: "input", + }; + questionObj.userAnswer[index] = ""; + index++; + } + } + } + // 鑾峰彇鍥剧墖 + if ( + questionObj.stemStyle == "Image" || + questionObj.stemStyle == "TxtAndImage" + ) { + questionObj.stem.stemImage = getPublicImage( + questionObj.stem.stemImage, + 150 + ); + } + if ( + questionObj.optionStyle == "Image" || + questionObj.optionStyle == "TxtAndImage" + ) { + questionObj.option.forEach((optionItem) => { + if (optionItem.img) + optionItem.img = getPublicImage(optionItem.img, 150); + }); + } + // 棰樺共瀵屾枃鏈鐞� + if (questionObj.stemStyle == "RichText") { + // questionObj.option.txt = '' + questionObj.stem.stemTxt = questionObj.stem.stemTxt + .replace( + /\<img/gi, + '<img style="max-width: 300rpx !important;object-fit: contain;" class="stem-rich-img" ' + ) + .replace(/\<p/gi, '<p class="stem-rich-p"').replace('../file', app.config.requestCtx + '/file'); + } + // 閫夐」瀵屾枃鏈鐞� + if ( + questionObj.optionStyle == "RichText" && + (questionObj.questionType == "singleChoice" || + questionObj.questionType == "judge" || + questionObj.questionType == "multipleChoice") + ) { + questionObj.option.forEach((item) => { + if (item.txt) + item.txt = item.txt + .replace(/\<img/gi, '<img class="option-rich-img"') + .replace(/\<p/gi, '<p class="stem-rich-p"').replace('../file', app.config.requestCtx + '/file'); + }); + } + // 瑙f瀽瀵屾枃鏈鐞� + if ( + questionObj.analysisCon && + typeof questionObj.analysisCon == "string" + ) { + questionObj.analysisCon = questionObj.analysisCon.replace( + /\<img/gi, + '<img style="max-width: 300rpx !important;object-fit: contain;" class="stem-rich-img" ' + ); + } + // 鍚姏棰樹慨鏀� + // if (questionObj.questionType == 'singleChoice') { + // const src = this.extractSourceSrc(questionObj.stem.stemTxt) + // if (src) { + // questionObj.src = src + // questionObj.stem.stemTxt = this.removeVideoAndAudioTags(questionObj.stem.stemTxt) + // } + // } + if (item.Embedded_QuestionBank_QuestionType == "judge") { + questionObj.type = "鍒ゆ柇棰�"; + judgeArr.push(questionObj); + } else if ( + item.Embedded_QuestionBank_QuestionType == "singleChoice" + ) { + questionObj.type = "鍗曢�夐"; + singleChoiceArr.push(questionObj); + } else if ( + item.Embedded_QuestionBank_QuestionType == "multipleChoice" + ) { + questionObj.type = "澶氶�夐"; + multipleChoiceArr.push(questionObj); + } else if (item.Embedded_QuestionBank_QuestionType == "completion") { + questionObj.type = "濉┖棰�"; + completionArr.push(questionObj); + } else if (item.Embedded_QuestionBank_QuestionType == "shortAnswer") { + questionObj.type = "绠�绛旈"; + shortArr.push(questionObj); + } + }); + }); + } + cardList[0].infoList = singleChoiceArr, + cardList[1].infoList = judgeArr + cardList[2].infoList = multipleChoiceArr + cardList[3].infoList = completionArr + cardList[4].infoList = shortArr + for (let index = 0; index < cardList.length; index++) { + const item = cardList[index]; + for (let cindex = 0; cindex < item.infoList.length; cindex++) { + const citem = item.infoList[cindex]; + citem.number = cindex + 1; + questionArr.push(citem); + } + } + console.log(cardList); + return cardList +}; + +export default getQuestionList; -- Gitblit v1.9.1