| | |
| | | import { activeBook } from "@/assets/js/config"; |
| | | import { activeBook, goodsStore } from "@/assets/js/config"; |
| | | import MG from "@/assets/js/middleGround/WebMiddleGroundApi"; |
| | | import getPublicImage from "@/assets/js/middleGround/tool"; |
| | | const getQuestionList = async (oldList,questionList) => { |
| | | const getQuestionList = async (oldList, questionList) => { |
| | | let cardList = [ |
| | | { |
| | | catalogName: "单选题", |
| | | infoList: [], |
| | | infoList: [] |
| | | }, |
| | | { |
| | | catalogName: "判断题", |
| | | infoList: [], |
| | | infoList: [] |
| | | }, |
| | | { |
| | | catalogName: "多选题", |
| | | infoList: [], |
| | | infoList: [] |
| | | }, |
| | | { |
| | | catalogName: "填空题", |
| | | infoList: [], |
| | | infoList: [] |
| | | }, |
| | | { |
| | | catalogName: "简答题", |
| | | infoList: [], |
| | | }, |
| | | infoList: [] |
| | | } |
| | | ]; |
| | | let singleChoiceArr = []; // 单选 |
| | | let judgeArr = []; // 判断 |
| | | let shortArr = []; // 简答 |
| | | let multipleChoiceArr = []; // 多选 |
| | | let completionArr = []; // 填空 |
| | | console.log('active',activeBook); |
| | | console.log("active", activeBook); |
| | | for (let qindex = 0; qindex < questionList.length; qindex++) { |
| | | const qitem = questionList[qindex]; |
| | | let query = { |
| | | storeInfo: goodsStore, |
| | | path: "*", |
| | | cmsPath: activeBook.rootCmsItemId, |
| | | cmsType: "*", |
| | |
| | | Embedded_QuestionBank_StemStyle: [], |
| | | Embedded_QuestionBank_OptionStyle: [], |
| | | Embedded_QuestionBank_KnowledgePoint: [], |
| | | Embedded_QuestionBank_Difficulty: [], |
| | | }, |
| | | Embedded_QuestionBank_Difficulty: [] |
| | | } |
| | | }; |
| | | const res = await MG.store.getProductDetail(query); |
| | | res.datas.cmsDatas[0].datas.forEach((item, index) => { |
| | | let oldObj = {} |
| | | if(oldList) { |
| | | oldObj = oldList.find(item => item.id == qitem) |
| | | let oldObj = {}; |
| | | if (oldList) { |
| | | oldObj = oldList.find((item) => item.id == qitem); |
| | | } |
| | | const questionObj = { |
| | | number: index + 1, // 题号 |
| | |
| | | difficulty: item.Embedded_QuestionBank_Difficulty |
| | | ? 4 - item.Embedded_QuestionBank_Difficulty |
| | | : 0, // 难度等级 |
| | | userAnswer:oldObj ? oldObj.userAnswer : |
| | | item.Embedded_QuestionBank_QuestionType == "completion" || |
| | | item.Embedded_QuestionBank_QuestionType == "multipleChoice" |
| | | ? [] |
| | | : "", |
| | | userAnswer: oldObj |
| | | ? oldObj.userAnswer |
| | | : item.Embedded_QuestionBank_QuestionType == "completion" || |
| | | item.Embedded_QuestionBank_QuestionType == "multipleChoice" |
| | | ? [] |
| | | : "", |
| | | isSubmit: false, // 查看解析 |
| | | isRight: null, // 是否正确 |
| | | isComplete: false, |
| | | isCollect: true, |
| | | isUnfold: "", |
| | | isUnfold: "" |
| | | }; |
| | | // 多选和填空答案肯为数组,要转换JSON格式 |
| | | if ( |
| | |
| | | if (item == "input") { |
| | | questionObj.stem[i] = { |
| | | num: index, |
| | | data: "input", |
| | | data: "input" |
| | | }; |
| | | questionObj.userAnswer[index] = ""; |
| | | index++; |
| | |
| | | '<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"); |
| | | .replace("../file", process.env.VUE_APP_API_URL + "/file"); |
| | | } |
| | | // 选项富文本处理 |
| | | if ( |
| | |
| | | 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"); |
| | | .replace("../file", process.env.VUE_APP_API_URL + "/file"); |
| | | }); |
| | | } |
| | | // 解析富文本处理 |
| | |
| | | } else if (item.Embedded_QuestionBank_QuestionType == "singleChoice") { |
| | | questionObj.type = "单选题"; |
| | | singleChoiceArr.push(questionObj); |
| | | } else if ( |
| | | item.Embedded_QuestionBank_QuestionType == "multipleChoice" |
| | | ) { |
| | | } else if (item.Embedded_QuestionBank_QuestionType == "multipleChoice") { |
| | | questionObj.type = "多选题"; |
| | | multipleChoiceArr.push(questionObj); |
| | | } else if (item.Embedded_QuestionBank_QuestionType == "completion") { |
| | |
| | | } |
| | | }); |
| | | } |
| | | cardList[0].infoList = singleChoiceArr |
| | | cardList[1].infoList = judgeArr |
| | | cardList[2].infoList = multipleChoiceArr |
| | | cardList[3].infoList = completionArr |
| | | cardList[4].infoList = shortArr |
| | | 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++) { |
| | |
| | | citem.number = cindex + 1; |
| | | } |
| | | } |
| | | return cardList.filter(item=>item.infoList.length > 0); |
| | | return cardList.filter((item) => item.infoList.length > 0); |
| | | }; |
| | | |
| | | const getQuestionData = async (chapter,chapterData) => { |
| | | const getQuestionData = async (chapter, chapterData) => { |
| | | const data = { ...chapterData }; |
| | | const oldAnswerData = localStorage.getItem('oldAnswerData') |
| | | const oldData = oldAnswerData ? JSON.parse(oldAnswerData) :{} |
| | | let oldChapterData |
| | | if(oldData) { |
| | | oldChapterData = oldData[chapter] |
| | | const oldAnswerData = localStorage.getItem("oldAnswerData"); |
| | | const oldData = oldAnswerData ? JSON.parse(oldAnswerData) : {}; |
| | | let oldChapterData; |
| | | if (oldData) { |
| | | oldChapterData = oldData[chapter]; |
| | | } |
| | | for (let key in chapterData) { |
| | | let oldList = [] |
| | | if(oldChapterData) { |
| | | oldList = oldChapterData[key] |
| | | let oldList = []; |
| | | if (oldChapterData) { |
| | | oldList = oldChapterData[key]; |
| | | } |
| | | data[key] = await getQuestionList(oldList,chapterData[key]); |
| | | data[key] = await getQuestionList(oldList, chapterData[key]); |
| | | } |
| | | return data; |
| | | }; |