123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- <template>
- <div class="app-container">
- <el-card style="margin-top: 20px">
- <div class="qu-content">
- <p>【{{ getQuType(quData.quType) }}】{{ quData.content }}</p>
- <p v-if="quData.image!=null && quData.image!=''">
- <el-image :src="getUrl(quData.image)" style="max-width:100%;" />
- </p>
- <div v-if="quData.quType === 1 || quData.quType===3 ">
- <el-radio-group v-model="answerValues[0]" readonly>
- <el-radio v-for="an in quData.answerList" :key="an.answerId" :label="an.answerId" readonly>
- {{ an.abc }}.{{ an.content }}
- <div v-if="an.image!=null && an.image!=''" style="clear: both">
- <el-image :src="an.image" style="max-width:100%;" />
- </div>
- </el-radio>
- </el-radio-group>
- </div>
- <!-- 多选题 -->
- <div v-if="quData.quType === 2">
- <el-checkbox-group v-model="answerValues" readonly>
- <el-checkbox v-for="an in quData.answerList" :key="an.answerId" :label="an.answerId">
- {{ an.abc }}.{{ an.content }}
- <div v-if="an.image!=null && an.image!=''" style="clear: both">
- <el-image :src="an.image" style="max-width:100%;" />
- </div>
- </el-checkbox>
- </el-checkbox-group>
- </div>
- <div v-if="analysisShow" style="margin-top: 20px; color: #1890ff; font-weight: bold">
- 正确答案:{{ rightTags.join(' ') }}
- </div>
- </div>
- </el-card>
- <el-card v-if="analysisShow" class="qu-analysis" style="margin-top: 20px">
- 整题解析:
- <p>{{ quData.analysis }}</p>
- <p v-if="!quData.analysis">暂无解析内容!</p>
- </el-card>
- <el-card v-if="analysisShow" class="qu-analysis" style="margin-top: 20px;">
- 选项解析:
- <div v-for="an in quData.answerList" v-if="an.analysis" class="qu-analysis-line">
- <p style="color: #555;">{{ an.content }}:</p>
- <p style="color: #1890ff;">{{ an.analysis }}</p>
- </div>
- <p v-if="analysisCount === 0">暂无选项解析</p>
- </el-card>
- <div style="padding-top: 30px">
- <el-button type="primary" @click="handNext">继续下一题</el-button>
- <!-- <el-button type="info" @click="onCancel">返回</el-button>-->
- </div>
- </div>
- </template>
- <script>
- import { getQu , } from '@/api/training/elearn/qu'
- import { nextBookQu, removBookQu} from '@/api/training/elearn/userBook'
- import { addUserQu } from '@/api/training/elearn/userQu'
- export default {
- name: 'BookTrain',
- data() {
- return {
- repoId: null,
- examId: null,
- quId: null,
- tags: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N'],
- analysisShow: false,
- quData: {
- },
- answerValues: [],
- rightValues: [],
- rightTags: []
- }
- },
- created() {
- this.repoId = this.$route.params.repoId
- this.fetchNextQu()
- },
- methods: {
- getQuType(data){
- if (data == 1) {
- return "单选题"
- }else if (data == 2){
- return "多选题"
- }else if (data == 3){
- return "判断题"
- }
- },
- // 清理值
- clearValues() {
- this.answerValues = []
- this.rightValues = []
- this.analysisShow = false
- this.rightTags = []
- },
- // 查找试卷详情
- fetchQuDetail(id) {
- // 当前赋值
- this.quId = id
- this.clearValues()
- getQu(id).then(response => {
- // 题目信息
- this.quData = response.data
- // 保存正确答案
- this.quData.answerList.forEach((an, index) => {
- an.abc = this.tags[index]
- // 用户选定的
- if (an.isRight) {
- this.rightValues.push(an.answerId)
- this.rightTags.push(an.abc)
- }
- })
- })
- },
- fetchNextQu() {
- // 查找下一个
- nextBookQu({quId: this.quId}).then(response => {
- this.fetchQuDetail(response.data)
- })
- },
- onCancel() {
- // this.$router.push({ name: 'ListTran' })
- this.$router.push({ name: 'BookList' })
- },
- getUrl(image){
- return process.env.VUE_APP_BASE_API + image;
- },
- addUserQu(isRight){
- addUserQu({quId: this.quId,isRight:isRight}).then(response => {
- })
- },
- handNext() {
- // 直接显示下一个
- if (this.analysisShow) {
- // 正确显示下一个
- this.fetchNextQu()
- } else {
- // 直接判断正确性
- if (this.rightValues.join(',') === this.answerValues.join(',')) {
- this.$message({
- message: '回答正确,你好棒哦!',
- type: 'success'
- })
- // 添加正确历史记录
- this.addUserQu(1)
- removBookQu({quId: this.quId}).then(response => {
- })
- // 正确显示下一个
- this.fetchNextQu()
- } else {
- // 错误显示解析
- this.analysisShow = true
- // 添加错误历史记录
- this.addUserQu(0)
- this.$message({
- message: '很遗憾,做错了呢,请参考答案解析!',
- type: 'error'
- })
- }
- }
- }
- }
- }
- </script>
- <style scoped>
- .qu-content div{
- line-height: 30px;
- }
- .qu-analysis p{
- color: #555; font-size: 14px
- }
- .qu-analysis-line{
- margin-top: 20px; border-bottom: #eee 1px solid
- }
- .el-checkbox-group label,.el-radio-group label{
- width: 100%;
- }
- </style>
|