From 2325349f08c2abce5857c40b7c11bb0e30a7e53b Mon Sep 17 00:00:00 2001 From: 闫增涛 <1829501689@qq.com> Date: 星期三, 15 五月 2024 17:52:25 +0800 Subject: [PATCH] 页面优化 --- /dev/null | 1124 -------------------------------------------------------- src/books/childHealth/assets/main.less | 3 src/books/childHealth/view/content/components/chapter012.vue | 14 src/books/childHealth/view/index.vue | 13 src/components/examinations/index.vue | 3 src/assets/methods/examination.js | 2 6 files changed, 14 insertions(+), 1,145 deletions(-) diff --git a/src/assets/methods/examination.js b/src/assets/methods/examination.js index 3827dc9..f2b7e48 100644 --- a/src/assets/methods/examination.js +++ b/src/assets/methods/examination.js @@ -2,7 +2,6 @@ import MG from "@/assets/js/middleGround/WebMiddleGroundApi"; import getPublicImage from '@/assets/js/middleGround/tool' const getQuestionList = (questionList) => { - let questionArr = []; let cardList = [ { catalogName: "鍗曢�夐", @@ -197,7 +196,6 @@ for (let cindex = 0; cindex < item.infoList.length; cindex++) { const citem = item.infoList[cindex]; citem.number = cindex + 1; - questionArr.push(citem); } } return cardList diff --git a/src/books/childHealth/assets/main.less b/src/books/childHealth/assets/main.less index d69ab38..e774401 100644 --- a/src/books/childHealth/assets/main.less +++ b/src/books/childHealth/assets/main.less @@ -592,9 +592,6 @@ font-size: 16px; font-family: "STKaiti"; } - textarea:focus { - border-color: red; - } } body { diff --git a/src/books/childHealth/view/components/examinations/index.vue b/src/books/childHealth/view/components/examinations/index.vue deleted file mode 100644 index bf705e7..0000000 --- a/src/books/childHealth/view/components/examinations/index.vue +++ /dev/null @@ -1,1124 +0,0 @@ -<template> - <div class="examination" v-loading="loading"> - <div v-for="(item, nindex) in cardList" :key="nindex"> - <h1>{{ item.catalogName }}</h1> - <ul> - <li - v-for="(value, index) in item.infoList" - :key="value.id" - :id="'listItem-' + value.id" - > - <!-- 鏍囬 --> - <div class="questionTitle"> - <div class="titleContent"> - <span class="questionNum">{{ index + 1 }}銆�</span> - <!-- 鍚姏杩涘害鏉� --> - <!-- <answerAudioPlayer :audioUrl="value.src" v-show="item.name == '鍚姏棰�'" /> --> - <!-- 棰樺共 --> - <!-- 浠呮枃瀛� --> - <p - class="titleText" - v-if=" - value.stemStyle == 'Txt' && value.questionType != 'completion' - " - :id="value.id" - > - {{ value.stem.stemTxt }} - </p> - <!-- 浠呭浘鐗� --> - <el-image - class="stemImg" - v-else-if="value.stemStyle == 'Image'" - :src="getPublicImage(value.stem.stemImage, 150)" - :preview-src-list="[getPublicImage(value.stem.stemImage)]" - ></el-image> - <!-- 鏂囧瓧鍔犲浘鐗� --> - <p - class="stemTxtAndImage titleText" - v-else-if="value.stemStyle == 'TxtAndImage'" - > - <span> {{ value.stem.stemTxt }}</span> - <el-image - :src="getPublicImage(value.stem.stemImage, 150)" - :preview-src-list="[getPublicImage(value.stem.stemImage)]" - style="margin-left: 10px" - ></el-image> - </p> - <!-- 濉┖棰橀骞� --> - <p class="titleText" v-if="value.questionType == 'completion'"> - <span - v-for="(itemText, indexText) in value.stem" - :key="indexText" - > - <span v-if="typeof itemText == 'string'">{{ itemText }}</span> - <!-- --> - <el-input - v-else - type="text" - class="input" - v-model.trim="value.userAnswer[itemText.num]" - :disabled="value.isComplete" - /> - <!-- --> - </span> - </p> - <!-- 瀵屾枃鏈� --> - <p - class="titleText titleTextArea" - v-else-if="value.stemStyle == 'RichText'" - v-html="value.stem.stemTxt" - v-cloak - ></p> - </div> - <!-- 鏀惰棌 --> - </div> - <div class="questionContent"> - <!-- 鍗曢�� --> - <el-radio-group - :disabled="value.isComplete" - class="option" - v-if=" - value.questionType == 'singleChoice' || - value.questionType == 'judge' - " - v-model="value.userAnswer" - > - <el-radio - v-for="content in value.option" - :key="content.value" - :label="content.value" - :class=" - value.optionStyle == 'Image' || - value.optionStyle == 'TxtAndImage' || - value.optionStyle == 'RichText' - ? 'optionImg' - : 'optionTxt' - " - > - <p class="optionContent" v-if="value.optionStyle == 'Txt'"> - {{ content.value }}銆亄{ content.txt }} - </p> - <p - class="optionContent" - v-else-if="value.optionStyle == 'Image'" - > - {{ content.value }}銆�<el-image - :src="getPublicImage(content.img, 115)" - v-show="content.img" - :preview-src-list="[getPublicImage(content.img)]" - ></el-image> - </p> - <p - class="optionContent" - v-else-if="value.optionStyle == 'TxtAndImage'" - > - <span> {{ content.value }}銆�</span - ><span>{{ content.txt }}</span> - <el-image - :src="getPublicImage(content.img, 115)" - v-show="content.img" - :preview-src-list="[getPublicImage(content.img)]" - ></el-image> - </p> - <p - class="optionContent titleTextArea" - v-else-if="value.optionStyle == 'RichText'" - v-html="`<span>${content.value}</span>` + '銆�' + content.txt" - id="mathjax" - ></p> - </el-radio> - </el-radio-group> - <!-- 澶氶�� --> - <el-checkbox-group - :disabled="value.isComplete" - v-model="value.userAnswer" - class="option" - v-else-if="value.questionType == 'multipleChoice'" - > - <el-checkbox - v-for="content in value.option" - :key="content.value" - :label="content.value" - :name="content.text" - :class=" - value.optionStyle == 'Image' || - value.optionStyle == 'TxtAndImage' || - value.optionStyle == 'RichText' - ? 'optionImg' - : 'optionTxt' - " - > - <p class="optionContent" v-if="value.optionStyle == 'Txt'"> - {{ content.value }}銆亄{ content.txt }} - </p> - <p - class="optionContent" - v-else-if="value.optionStyle == 'Image'" - > - {{ content.value }}銆�<el-image - :src="getPublicImage(content.img, 115)" - :preview-src-list="[getPublicImage(content.img)]" - v-show="content.img" - ></el-image> - </p> - <p - class="optionContent" - v-else-if="value.optionStyle == 'TxtAndImage'" - > - <span> {{ content.value }}銆�</span - ><span>{{ content.txt }}</span> - <el-image - :src="getPublicImage(content.img, 115)" - :preview-src-list="[getPublicImage(content.img)]" - v-show="content.img" - ></el-image> - </p> - <p - class="optionContent titleTextArea" - v-else-if="value.optionStyle == 'RichText'" - v-html="content.value + '銆�' + content.txt" - ></p> - </el-checkbox> - </el-checkbox-group> - <!-- 绠�绛� 缈昏瘧 --> - <!-- <TEditorVue - v-else-if="value.questionType == 'shortAnswer'" - :value="value.userAnswer" - :disabled="value.isComplete" - @getContent=" - (val) => { - value.userAnswer = val.trim(); - inputChange(); - } - " - ></TEditorVue> --> - <el-input - style="width: 90%; margin: 0 auto" - v-else-if="value.questionType == 'shortAnswer'" - type="textarea" - :rows="6" - placeholder="璇疯緭鍏ュ唴瀹�" - v-model="value.userAnswer" - /> - <div - v-if=" - type != 'option' && - type != 'mock' && - (value.questionType == 'shortAnswer' || - value.questionType == 'multipleChoice' || - value.questionType == 'completion') - " - > - <el-button @click="checkPares(value)" style="margin-top: 10px" - >鏌ョ湅瑙f瀽</el-button - > - </div> - <!-- 鎻愪氦鍚庤В鏋� --> - <div class="analysis" v-if="value.isComplete"> - <el-collapse - v-model="value.isUnfold" - @change="handleChange(value)" - accordion - v-if="value.questionType != 'shortAnswer'" - > - <el-collapse-item :name="value.id" class="objective"> - <template #title> - <div class="headerBox"> - <div class="headerConent"> - <p class="correct" :title="arrayToString(value.answer)"> - <span>姝g‘绛旀锛�</span> - <span - v-html="arrayToString(value.answer)" - class="correctBox" - ></span> - </p> - <p - :class=" - value.isRight - ? 'correct textOverFlow' - : 'error textOverFlow' - " - :title="arrayToString(value.userAnswer)" - style="margin-left: 20px" - > - <span>鎮ㄧ殑绛旀锛�</span> - <span - class="errorBox" - v-if="isHaveAnswer(value.userAnswer)" - >{{ arrayToString(value.userAnswer) }}</span - > - </p> - </div> - <p class="difficulty"> - <span style="color: #333">闅惧害绛夌骇锛�</span> - <el-rate - v-model="value.difficulty" - :max="3" - size="large" - disabled - disabled-void-color="#949494" - /> - </p> - <div class="headerConent sitgBox"> - <p v-if="!value.isUnfold"> - <span class="analysisColor">鏌ョ湅瑙f瀽</span - ><el-image :src="chakanIcon" /> - </p> - <p v-else> - <span class="analysisColor">鏀惰捣瑙f瀽</span - ><el-image :src="packIcon" /> - </p> - </div> - </div> - </template> - <!-- 瑙f瀽 --> - <div - v-if="value.analysisCon" - v-html="value.analysisCon" - ></div> - <div v-else>鏆傛棤鏁版嵁</div> - </el-collapse-item> - <!-- 涓昏棰� --> - </el-collapse> - <div - v-if="value.questionType == 'shortAnswer'" - class="subjective subjectiveItem" - > - <div class="questionAnalysis"> - <p class="difficulty"> - <span style="color: #333">闅惧害绛夌骇锛�</span> - <el-rate - v-model="value.difficulty" - :max="3" - size="large" - disabled - disabled-void-color="#949494" - /> - </p> - <p class="difficulty" @click="watchParsing(value)"> - <span class="analysisColor" - >{{ - value.isUnfold ? "鏀惰捣绛旀鍜岃В鏋�" : "鏌ョ湅绛旀涓庤В鏋�" - }} </span - ><el-image :src="!value.isUnfold ? chakanIcon : packIcon" /> - </p> - </div> - <!-- :class="['analysisDetailBox', value.isUnfold ? 'open' : 'close'].join(' ') --> - <!-- :class="['analysisDetailBox', value.isUnfold ? 'cartoon' : 'downCartoon'].join(' ') --> - <div - :class=" - [ - 'analysisDetailBox', - value.isUnfold ? 'cartoon' : 'downCartoon', - ].join(' ') - " - > - <div class="referBox"> - <span>鍙傝�冪瓟妗堬細</span> - <!-- <p v-html="arrayToString(value.answer)" class="subjectiveBox"></p> --> - <p - v-html="arrayToString(value.answer)" - :class="[ - 'subjectiveBox', - value.isUnfold ? 'showText' : 'hideText', - ]" - ></p> - </div> - <div class="referBox"> - <span>瑙f瀽锛�</span> - <p - v-if="value.analysisCon" - v-html="value.analysisCon" - :class=" - ['subjectiveBox', value.isUnfold ? 'yincang' : ''].join( - ' ' - ) - " - ></p> - <p v-else>鏆傛棤鏁版嵁</p> - </div> - </div> - </div> - </div> - </div> - </li> - </ul> - </div> - - <div class="bottom-btn" v-if="!loading"> - <el-button>淇濆瓨</el-button> - <el-button>鎻愪氦</el-button> - <el-button @click="redo">閲嶅仛</el-button> - <el-button @click="openAnswers">鏌ョ湅绛旀</el-button> - </div> - </div> -</template> - -<script> -import { getPublicImage } from "@/assets/js/middleGround/tool"; -export default { - name: "examination-option", - props: ["productLinkPath"], - data() { - return { - type: "option", - cardList: [], - loading: false, - }; - }, - methods: { - // 鏁扮粍杞负瀛楃涓叉柟娉� - arrayToString(data) { - // 妫�鏌ユ槸鍚︿负鏁扮粍 - if (Array.isArray(data)) { - // 浣跨敤 join 鏂规硶灏嗘暟缁勮浆鎹负瀛楃涓诧紝榛樿浣跨敤閫楀彿鍒嗛殧 - return data.join(",").replace(/<[^>]*>/g, ""); - } else { - // 濡傛灉涓嶆槸鏁扮粍锛岀洿鎺ヨ繑鍥炲師濮嬪�� - return data.replace(/<[^>]*>/g, ""); - } - }, - isHaveAnswer(data) { - if (typeof data == "string") { - data = data - .replace(/<[^>]*>/g, "") - .replace(/ /g, "") - .trim(); - if (data.length) { - return true; - } else { - return false; - } - } else { - const answer = data.find((item) => item.length > 0); - if (answer) { - return true; - } else { - return false; - } - } - }, - redo() { - for (let index = 0; index < this.cardList.length; index++) { - const item = this.cardList[index]; - for (let cindex = 0; cindex < item.infoList.length; cindex++) { - const citem = item.infoList[cindex]; - citem.userAnswer = ""; - citem.isComplete = false; - } - } - // for (let index = 0; index < this.questionList.length; index++) { - // const item = this.questionList[index]; - // item.userAnswer = ""; - // item.isComplete = false - // } - }, - openAnswers() { - for (let index = 0; index < this.cardList.length; index++) { - const item = this.cardList[index]; - for (let cindex = 0; cindex < item.infoList.length; cindex++) { - const citem = item.infoList[cindex]; - citem.isComplete = true; - } - } - }, - watchParsing(data) { - data.isUnfold = !data.isUnfold; - }, - // 鑾峰彇璇曞嵎涓嬮鐩被鍨� - getIdPathList() { - this.$data.loading = true; - let query = { - path: "*", - queryType: "*", - productId: this.config.bookId, - cmsPath: this.$props.productLinkPath, - pading: { - start: 0, - size: 999, - }, - }; - this.MG.store.getProductDetail(query).then(async (res) => { - 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) => { - debugger - 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 - }); - }); - } - }, - }, -}; -</script> - -<style lang="less" scoped> -.examination { - min-height: 100px; - ul { - list-style:none ; - } -} -p { - margin-top: 0em; - text-indent: 0em !important; - line-height: 1.5em; - font-size: 16px; -} -.colorBox { - margin: 0 10px 0 23px; - width: 4px; - height: 19px; - background-color: #ff6c00; -} -.textOverFlow { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.question { - overflow: auto; - height: 775px; - padding-bottom: 20px; -} -.question::-webkit-scrollbar { - width: 3px; -} -/*婊氬姩鏉℃粦鍧�*/ -.question::-webkit-scrollbar-thumb { - border-radius: 20px; - -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2); - background-color: #333; -} -/*婊氬姩鏉¤建閬�*/ -.question::-webkit-scrollbar-track { - -webkit-box-shadow: inset 0 0 1px rgba(0, 0, 0, 0); - border-radius: 20px; - background: #d9d9d9; -} -.paperMargin { - margin-top: 30px; - ul li { - padding: 20px 41px 0px 46px; - } - li:last-child { - padding-bottom: 20px; - } -} -.paperQuestion { - padding-left: 12px; - display: flex; - align-items: center; - font-size: 14px; - .questionText { - font-size: 14px; - color: #000; - } - span { - color: #c2c2c2; - } -} -/** 棰樺共 */ -.questionTitle { - display: flex; - justify-content: space-between; - .titleContent { - width: 95%; - display: flex; - align-items: flex-start; - .questionNum { - height: 32px; - line-height: 32px; - text-align: center; - font-size: 16px; - color: #333; - font-weight: bold; - } - .titleText { - text-align: left; - padding: 0 10px 10px 0px; - min-width: 90%; - font-size: 14px; - line-height: 32px; - color: #000; - span { - font-size: 14px; - line-height: 26px; - color: #000; - font-weight: 400; - } - .el-input { - width: 150px; - height: 24px; - border-top: 0; - } - /deep/.el-input__wrapper { - border-top: 0 !important; - } - /deep/ .el-input__inner { - border-top: 0 !important; - border-left: 0 !important ; - border-right: 0 !important ; - border-bottom: 1px solid #000 !important; - border-radius: 0 !important; - } - /dee/ p { - display: flex; - align-items: center; - } - } - ::v-deep { - .el-input__wrapper { - border-top: 0 !important; - } - } - } - .collect { - cursor: pointer; - width: 21px; - height: 21px; - } -} -/** 閫夐」 */ -.option { - .el-radio, - .el-checkbox { - min-height: 32px; - display: flex; - align-items: center; - min-width: 45%; - margin-right: 50px; - white-space: pre-wrap !important; - color: #000; - /deep/ .el-checkbox__label { - line-height: 1.5; - } - } - .optionContent { - display: flex; - align-items: center; - line-height: 26px; - color: #000; - } -} -.analysis { - margin-top: 20px; -} -.el-collapse { - width: 100%; -} -/** 瑙f瀽 */ -.objective { - /deep/ .el-collapse-item__header { - width: 95%; - padding: 0 20px; - font-size: 14px; - background-color: #f4f4f4; - .headerBox { - width: 100%; - height: 100%; - display: flex; - justify-content: space-between; - .headerConent { - height: 100%; - display: flex; - align-items: center; - .el-image { - width: 9px; - height: 9px; - } - .correct { - color: #1fbc1f; - width: 180px; - text-align: left; - display: flex; - span:nth-child(1) { - display: inline-block; - width: 82px; - } - } - .correctBox { - width: 100px; - height: min-content; - word-break: break-all; - text-overflow: ellipsis; - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 1; /* 杩欓噷鏄秴鍑哄嚑琛岀渷鐣� */ - overflow: hidden; - } - .error { - display: flex; - text-align: left; - width: 180px; - color: #ee1818; - span { - height: min-content; - } - .errorBox { - width: 100px; - height: 48px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - ::v-deep { - img { - max-height: 48px; - } - } - } - } - } - } - - .checkAnalysis { - cursor: pointer; - height: 100%; - display: flex; - align-items: center; - } - } -} -/deep/ .el-collapse-item__header:focus:not(:hover) { - color: #333; -} -/deep/ .el-collapse-item__content { - width: 100%; - padding: 0 20px; - background-color: #f4f4f4; - font-size: 14px; - color: #333; -} -/deep/ .el-collapse-item__arrow { - display: none; -} -.subjectiveItem { - background-color: #f4f4f4; - padding: 10px 20px; - p { - text-indent: 0em; - } -} -.subjective { - /deep/ .el-collapse-item__header { - height: 80px; - background-color: #f4f4f4; - width: 100%; - padding: 0 20px; - font-size: 14px; - display: flex; - flex-direction: column; - justify-content: flex-start; - } - .subjectiveTitle { - width: 80px; - height: 20px; - line-height: 20px; - } - .subjectiveRefer { - display: flex; - align-items: flex-start; - text-align: left; - } - .subjectiveAnswer { - width: 540px; - height: 20px; - text-align: left; - word-break: break-all; - text-overflow: ellipsis; - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 1; /* 杩欓噷鏄秴鍑哄嚑琛岀渷鐣� */ - overflow: hidden; - line-height: 20px; - } - .analysisDetailBox { - overflow: hidden; - max-height: 100px; - transition: 1s; - &.open { - max-height: 500px; - } - &.close { - max-height: 20px; - } - .referBox { - display: flex; - margin-bottom: 10px; - span { - width: 80px; - color: #999; - } - p { - flex: 1; - overflow: hidden; - } - span, - p { - text-indent: 0em; - font-size: 14px; - line-height: 20px; - } - } - } -} -// 閫夐」 -.optionImg { - height: min-content; - margin-bottom: 6px; - /deep/ img { - margin-left: 10px; - object-fit: contain; - vertical-align: middle; - } -} -.optionTxt { - height: 32px; -} -// 棰樺共浠呭浘鐗� -.stemImg { - margin: 0 10px 10px 10px; -} -// 鏂囧瓧鍔犲浘鐗� -.stemTxtAndImage { - display: flex; - align-items: flex-start; -} -.titleTextArea { - ::v-deep { - img, - .el-image__inner { - max-width: 150px !important; - max-height: 100px !important; - object-fit: contain; - } - } -} -.questionAnalysis { - width: 100%; - height: 48px; - display: flex; - justify-content: space-between; - .analysisAnswer { - width: 74%; - display: flex; - } - .referAnswer { - display: inline-block; - width: 60px; - } - .answerContent { - height: 48px; - width: 80%; - text-align: left; - word-break: break-all; - text-overflow: ellipsis; - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 1; /* 杩欓噷鏄秴鍑哄嚑琛岀渷鐣� */ - overflow: hidden; - } - .el-image { - width: 9px; - height: 9px; - } -} -.analysisColor { - cursor: pointer; - color: #949494; - margin-right: 4px; -} -.difficulty { - display: flex; - align-items: center; -} -.cartoon { - animation: spread 1s linear forwards; -} -.downCartoon { - animation: downSpred 1s linear forwards; -} -.showText { - animation: showText 1s linear forwards; -} -.hideText { - animation: hideText 2s linear forwards; -} -@keyframes spread { - from { - max-height: 20px; - } - to { - max-height: 500px; - p { - flex: 1; - overflow: hidden; - } - } -} -@keyframes downSpred { - from { - max-height: 500px; - } - to { - max-height: 20px; - } -} -@keyframes showText { - 100% { - height: auto; - } -} -@keyframes hideText { - 0% { - height: auto; - } - 100% { - height: 20px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } -} -.yincang { - animation: yincang 1s linear forwards; -} -@keyframes yincang { - from { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - to { - overflow: auto; - text-overflow: initial; - white-space: pre-wrap; - } -} - -.bottom-btn { - margin-top: 50px; - display: flex; - justify-content: center; -} -</style> diff --git a/src/books/childHealth/view/content/components/chapter012.vue b/src/books/childHealth/view/content/components/chapter012.vue index f839f34..954206f 100644 --- a/src/books/childHealth/view/content/components/chapter012.vue +++ b/src/books/childHealth/view/content/components/chapter012.vue @@ -78,14 +78,22 @@ </template> <script> -import oddHeader from '../../components/pageHeader/oddHeader.vue'; +import oddHeader from "../../components/pageHeader/oddHeader.vue"; export default { name: "chapterTwelve", - components: {oddHeader}, + components: { oddHeader }, data() { return {}; }, }; </script> -<style lang="less" scoped></style> +<style lang="less" scoped> +p { + line-height: 2em !important; + text-align: justify !important; +} +a { + text-decoration: none; +} +</style> diff --git a/src/books/childHealth/view/index.vue b/src/books/childHealth/view/index.vue index 84e2048..ec27130 100644 --- a/src/books/childHealth/view/index.vue +++ b/src/books/childHealth/view/index.vue @@ -5,15 +5,11 @@ </template> <script> -import examinations from "./components/examinations/index.vue"; import pageContent from "./content/index.vue"; -// import testData from '../assets/examinationList' -// import getQuestionData from '@/assets/methods/examination' export default { name: "child-health", components: { pageContent, - examinations }, data() { return { @@ -67,15 +63,6 @@ console.log("鍥句功淇℃伅",res.datas); this.$data.bookData = res.datas this.$store.commit('setRootCmsItemId',res.datas.rootCmsItemId) - // const questiondata = testData - // for(let key in testData) { - // for(let tkey in testData[key]) { - // console.log(testData[key][tkey]); - // questiondata[key][tkey] = getQuestionData(res.datas.rootCmsItemId,testData[key][tkey]) - // } - // } - // this.$store.commit('setQuestionData',questiondata) - // console.log(questiondata); }); }, getParentWithClass(element, className) { diff --git a/src/components/examinations/index.vue b/src/components/examinations/index.vue index 8337923..747117f 100644 --- a/src/components/examinations/index.vue +++ b/src/components/examinations/index.vue @@ -778,6 +778,9 @@ // display: flex; // justify-content: center; margin-left: 20px; + /deep/ .el-textarea__inner:focus { + border-color: #15c0f2; + } } .input { /deep/ .el-input__inner { -- Gitblit v1.9.1