From 8cdcb6b7950710cbcf701cb5149e1b2f949e1b0f Mon Sep 17 00:00:00 2001 From: 闫增涛 <1829501689@qq.com> Date: 星期三, 15 五月 2024 11:50:57 +0800 Subject: [PATCH] 题目资源 --- src/components/examinations/index.vue | 517 +++++++++++++++++++++++++++++---------------------------- 1 files changed, 262 insertions(+), 255 deletions(-) diff --git a/src/components/examinations/index.vue b/src/components/examinations/index.vue index 0329a7c..8337923 100644 --- a/src/components/examinations/index.vue +++ b/src/components/examinations/index.vue @@ -1,6 +1,6 @@ <template> <div class="examination" v-loading="loading"> - <div v-for="(item, nindex) in cardList" :key="nindex" class="border-box"> + <div v-for="(item, nindex) in cardList" :key="nindex" class="border-box" v-show="item.infoList.length"> <p class="catalogName"> <span v-if="nindex == 0">涓�銆�</span> <span v-if="nindex == 1">浜屻��</span> @@ -206,6 +206,7 @@ " ></TEditorVue> --> <el-input + :disabled="value.isComplete" style="width: 90%; margin: 0 auto" v-else-if="value.questionType == 'shortAnswer'" type="textarea" @@ -298,7 +299,7 @@ class="subjective subjectiveItem" > <div class="questionAnalysis"> - <p class="difficulty"> + <p class="difficulty" v-if="value.difficulty"> <span style="color: #333">闅惧害绛夌骇锛�</span> <el-rate v-model="value.difficulty" @@ -313,7 +314,7 @@ >{{ value.isUnfold ? "鏀惰捣绛旀鍜岃В鏋�" : "鏌ョ湅绛旀涓庤В鏋�" }} </span - ><el-image :src="!value.isUnfold ? chakanIcon : packIcon" /> + > </p> </div> <!-- :class="['analysisDetailBox', value.isUnfold ? 'open' : 'close'].join(' ') --> @@ -381,7 +382,7 @@ import { getPublicImage } from "@/assets/js/middleGround/tool"; export default { name: "examination-option", - props: ["productLinkPath"], + props: ["cardList"], data() { return { type: "option", @@ -390,7 +391,6 @@ }; }, mounted() { - this.getIdPathList(); }, methods: { // 鏁扮粍杞负瀛楃涓叉柟娉� @@ -451,254 +451,256 @@ this.$data.loading = false; }, watchParsing(data) { + debugger + data.isUnfold = !data.isUnfold; }, - // 鑾峰彇璇曞嵎涓嬮鐩被鍨� - getIdPathList() { - this.$data.loading = true; - let query = { - path: "*", - queryType: "*", - productId: this.config.bookId, - cmsPath: "24080\\63791\\63792\\63807", - pading: { - start: 0, - size: 999, - }, - }; - this.MG.store.getProductDetail(query).then(async (res) => { - console.log(this.$props.productLinkPath, res.datas.cmsDatas[0].datas); - const idPathList = res.datas.cmsDatas[0].datas; - await this.getQuestionList(idPathList); - }); - }, - // 鑾峰彇棰樺簱棰樼洰 - async getQuestionList(idPathList, oldData) { - let cardList = []; - // 娓呯┖姝g‘棰樻暟璁板綍 - for (let index = 0; index < idPathList.length; index++) { - const pathitem = idPathList[index]; - const pathList = cardList; - pathList.push({ - path: pathitem.productLinkPath, - catalogName: pathitem.name, - infoList: [], - }); - cardList = pathList; - // 鑾峰彇棰樼洰 - let query = { - path: "*", - queryType: "*", - productId: this.config.bookId, - cmsPath: pathitem.productLinkPath, - 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: [], - }, - pading: { - start: 0, - size: 999, - }, - }; - await this.MG.store.getProductDetail(query).then((res) => { - let oldList; - if (oldData) { - // 鎻愪氦杩囷紝瀛樺湪绛旈璁板綍 - oldList = oldData.find( - (item) => item.path == pathitem.productLinkPath - ).infoList; - this.setData({ - submitStatus: true, - }); - } - res.datas.cmsDatas[0].datas.forEach((item, index) => { - let oldObj = ""; - if (oldList) - oldObj = oldList.find((oldItem) => oldItem.id == item.id); - let questionObj = { - // num: index, // 棰樺彿 - id: item.id, - type: pathitem.name, - 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: oldObj - ? oldObj.userAnswer - : item.Embedded_QuestionBank_QuestionType == "completion" || - item.Embedded_QuestionBank_QuestionType == "multipleChoice" - ? [] - : "", - isUserAnswer: oldObj - ? this.isHaveAnswer(oldObj.userAnswer) - : false, - isRight: oldObj ? oldObj.isRight : null, - isComplete: oldObj ? oldObj.isComplete : false, - isCollect: false, - isUnfold: "", // 鎺у埗瑙f瀽鐨勬姌鍙犻潰鏉挎槸鍚﹀睍寮� - }; - // 澶氶�夊拰濉┖绛旀鑲负鏁扮粍锛岃杞崲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", - }; - if (!oldObj) questionObj.userAnswer[index] = ""; - index++; - } - } - } - // 棰樺共瀵屾枃鏈鐞� - 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 ( - 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.questionType !== "shortAnswer") { - // this.setData({ - // subjectiveGrade: this.data.subjectiveGrade + 2, - // }); - } - // 鏃ф暟鎹噷 棰樼洰姝g‘ 璁板綍姝g‘鏁伴噺 - if (questionObj.isRight) { - // this.setData({ - // correctNum: this.data.correctNum + 1, - // }); - } - if ( - pathitem.name == "鍒ゆ柇棰�" || - pathitem.name == "濉┖棰�" || - pathitem.name == "澶氶�夐" || - pathitem.name == "鍗曢�夐" || - pathitem.name == "鍚姏棰�" - ) { - if (oldObj) { - // this.setData({ - // subjectiveTotal: this.data.subjectiveTotal + 1, - // }); - } - } - // cardList璧嬪�� - let cardIndex = cardList.findIndex( - (item) => item.path == pathitem.productLinkPath - ); - let infoList = cardList[cardIndex].infoList; - infoList.push(questionObj); - cardList[cardIndex].infoList = infoList; - let questionList = []; - const cardUpdatedList = cardList; - cardUpdatedList.forEach((aitem) => { - aitem.infoList.forEach((bitem, bindex) => { - questionList.push(bitem); - bitem.number = bindex + 1; - bitem.score = 2; - }); - }); - cardList = cardUpdatedList; - this.$data.cardList = cardList; - this.$data.loading = false; - // console.log("棰樼洰鍛�", cardList); - // return cardList - }); - }); - } - }, + // // 鑾峰彇璇曞嵎涓嬮鐩被鍨� + // getIdPathList() { + // this.$data.loading = true; + // let query = { + // path: "*", + // queryType: "*", + // productId: this.config.bookId, + // cmsPath: "24080\\63791\\63792\\63807", + // pading: { + // start: 0, + // size: 999, + // }, + // }; + // this.MG.store.getProductDetail(query).then(async (res) => { + // console.log(this.$props.productLinkPath, res.datas.cmsDatas[0].datas); + // const idPathList = res.datas.cmsDatas[0].datas; + // await this.getQuestionList(idPathList); + // }); + // }, + // // 鑾峰彇棰樺簱棰樼洰 + // async getQuestionList(idPathList, oldData) { + // let cardList = []; + // // 娓呯┖姝g‘棰樻暟璁板綍 + // for (let index = 0; index < idPathList.length; index++) { + // const pathitem = idPathList[index]; + // const pathList = cardList; + // pathList.push({ + // path: pathitem.productLinkPath, + // catalogName: pathitem.name, + // infoList: [], + // }); + // cardList = pathList; + // // 鑾峰彇棰樼洰 + // let query = { + // path: "*", + // queryType: "*", + // productId: this.config.bookId, + // cmsPath: pathitem.productLinkPath, + // 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: [], + // }, + // pading: { + // start: 0, + // size: 999, + // }, + // }; + // await this.MG.store.getProductDetail(query).then((res) => { + // let oldList; + // if (oldData) { + // // 鎻愪氦杩囷紝瀛樺湪绛旈璁板綍 + // oldList = oldData.find( + // (item) => item.path == pathitem.productLinkPath + // ).infoList; + // this.setData({ + // submitStatus: true, + // }); + // } + // res.datas.cmsDatas[0].datas.forEach((item, index) => { + // let oldObj = ""; + // if (oldList) + // oldObj = oldList.find((oldItem) => oldItem.id == item.id); + // let questionObj = { + // // num: index, // 棰樺彿 + // id: item.id, + // type: pathitem.name, + // 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: oldObj + // ? oldObj.userAnswer + // : item.Embedded_QuestionBank_QuestionType == "completion" || + // item.Embedded_QuestionBank_QuestionType == "multipleChoice" + // ? [] + // : "", + // isUserAnswer: oldObj + // ? this.isHaveAnswer(oldObj.userAnswer) + // : false, + // isRight: oldObj ? oldObj.isRight : null, + // isComplete: oldObj ? oldObj.isComplete : false, + // isCollect: false, + // isUnfold: "", // 鎺у埗瑙f瀽鐨勬姌鍙犻潰鏉挎槸鍚﹀睍寮� + // }; + // // 澶氶�夊拰濉┖绛旀鑲负鏁扮粍锛岃杞崲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", + // }; + // if (!oldObj) questionObj.userAnswer[index] = ""; + // index++; + // } + // } + // } + // // 棰樺共瀵屾枃鏈鐞� + // 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 ( + // 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.questionType !== "shortAnswer") { + // // this.setData({ + // // subjectiveGrade: this.data.subjectiveGrade + 2, + // // }); + // } + // // 鏃ф暟鎹噷 棰樼洰姝g‘ 璁板綍姝g‘鏁伴噺 + // if (questionObj.isRight) { + // // this.setData({ + // // correctNum: this.data.correctNum + 1, + // // }); + // } + // if ( + // pathitem.name == "鍒ゆ柇棰�" || + // pathitem.name == "濉┖棰�" || + // pathitem.name == "澶氶�夐" || + // pathitem.name == "鍗曢�夐" || + // pathitem.name == "鍚姏棰�" + // ) { + // if (oldObj) { + // // this.setData({ + // // subjectiveTotal: this.data.subjectiveTotal + 1, + // // }); + // } + // } + // // cardList璧嬪�� + // let cardIndex = cardList.findIndex( + // (item) => item.path == pathitem.productLinkPath + // ); + // let infoList = cardList[cardIndex].infoList; + // infoList.push(questionObj); + // cardList[cardIndex].infoList = infoList; + // let questionList = []; + // const cardUpdatedList = cardList; + // cardUpdatedList.forEach((aitem) => { + // aitem.infoList.forEach((bitem, bindex) => { + // questionList.push(bitem); + // bitem.number = bindex + 1; + // bitem.score = 2; + // }); + // }); + // cardList = cardUpdatedList; + // this.$data.cardList = cardList; + // this.$data.loading = false; + // // console.log("棰樼洰鍛�", cardList); + // // return cardList + // }); + // }); + // } + // }, // 鎵规敼棰樼洰 (缁冧範,鎴戠殑鍋氶,鎴戠殑鏀惰棌妯″紡涓�) handleQuestion() { - const list = this.$data.cardList + const list = this.$props.cardList for (let index = 0; index < list.length; index++) { const item = list[index]; for (let cindex = 0; cindex < item.infoList.length; cindex++) { @@ -745,7 +747,8 @@ } } - this.$data.cardList = list + this.$props.cardList = list + console.log(this.$props.cardList); }, }, }; @@ -758,22 +761,23 @@ font-size: 16px; } .examination { + margin-top: 20px; min-height: 100px; ul { list-style: none; } } .border-box { + padding-top: 20px; border: 2px solid #e9e9e9; - border-top: 0; } .border-box:first-child { border-top:2px solid #e9e9e9 ; } .questionContent { // display: flex; - // justify-content: flex-start; - margin-left: -36px; + // justify-content: center; + margin-left: 20px; } .input { /deep/ .el-input__inner { @@ -843,7 +847,7 @@ /** 棰樺共 */ .questionTitle { display: flex; - justify-content: space-between; + justify-content: center; .titleContent { width: 95%; display: flex; @@ -875,6 +879,9 @@ width: 140px; height: 24px; border-top: 0; + } + /deep/ .el-textarea.is-disabled .el-textarea__inner { + background-color: #fff ; } /deep/.el-input__wrapper { border-top: 0 !important; @@ -937,7 +944,7 @@ .analysis { margin: 20px 0; width:550px; - margin-left: 48px; + // margin-left: 12px; } .el-collapse { width: 100%; -- Gitblit v1.9.1