|
@@ -120,204 +120,221 @@
|
|
|
</div>
|
|
|
<Row :gutter="30">
|
|
|
<!-- 题干 -->
|
|
|
- <i-col class="questionArea"
|
|
|
+ <i-col :class="['questionArea', {'qamode-area': paperData.qamode}]"
|
|
|
:xs="24"
|
|
|
:sm="24"
|
|
|
:md="18"
|
|
|
:lg="20"
|
|
|
>
|
|
|
- <!--切換頁-->
|
|
|
- <div class="small-view">
|
|
|
- <div class="countDown" v-if="needCountDown">
|
|
|
- <div>{{$t("studentWeb.exam.examTime")}}:{{ surplus }}</div>
|
|
|
- </div>
|
|
|
- <div class="pageCtl2">
|
|
|
- <button @click="preQ()" :disabled="!queNo" :class="{disable: !queNo}">
|
|
|
- <Icon type="ios-arrow-back" />{{$t("studentWeb.exam.testpop.previous")}}
|
|
|
- </button>
|
|
|
- <button @click="showPage(true)">
|
|
|
- {{$t("studentWeb.exam.testpop.showPage")}}
|
|
|
- </button>
|
|
|
- <button @click="nextQ()"
|
|
|
- :disabled="queNo == (showExam.length-1)"
|
|
|
- :class="{ hintClick:queNo != (showExam.length-1) && checkers[queNo] != '',disable: queNo == (showExam.length-1)}">
|
|
|
- {{$t("studentWeb.exam.testpop.next")}}
|
|
|
- <Icon type="ios-arrow-forward" />
|
|
|
- </button>
|
|
|
- </div>
|
|
|
+ <div class="img-wrap" v-if="paperData.qamode">
|
|
|
+ <Carousel v-model="CarouselIndex">
|
|
|
+ <CarouselItem v-for="(img, indexs) in imgList" :key="indexs">
|
|
|
+ <!-- 不是综合题 -->
|
|
|
+ <div class="left-img" @click="$hevueImgPreview(img)">
|
|
|
+ <img :src="img" alt="">
|
|
|
+ </div>
|
|
|
+ </CarouselItem>
|
|
|
+ </Carousel>
|
|
|
+ <p class="page-footer">
|
|
|
+ {{ $t('answerSheet.tip2') }} {{ CarouselIndex + 1 }} {{ $t('answerSheet.tip21') }}
|
|
|
+ /
|
|
|
+ {{ $t('answerSheet.tip9') }} {{ imgList.length }} {{ $t('answerSheet.tip21') }}
|
|
|
+ </p>
|
|
|
</div>
|
|
|
- <div class="questionContent" ref="questionBox" v-if="showExam.length">
|
|
|
- <!-- <span class="hintwrap">
|
|
|
- <Tooltip :content="$t('studentWeb.exam.report.noSource')" theme="light" placement="left">
|
|
|
- <span class="hintIcon">
|
|
|
- <svg-icon icon-class="hint" />
|
|
|
- </span>
|
|
|
- </Tooltip>
|
|
|
- </span> -->
|
|
|
- <div class="questioDes">
|
|
|
- <div class="questionType" v-if="getQue(queNo).parent === undefined">
|
|
|
- <span>{{getTestType(getQue(queNo).type)}}</span>
|
|
|
- </div>
|
|
|
- <div class="que-item" v-if="getQue(queNo).type != 'compose' && getQue(queNo).parent === undefined">
|
|
|
- <span v-if="isWrong" @click="changeStar(!getQue(queNo).star, queNo)" style="margin-right: 10px; cursor: pointer;">
|
|
|
- <Icon custom="iconfont icon-shoucang1" size="25" v-show="!getQue(queNo).star" />
|
|
|
- <Icon custom="iconfont icon-shoucang2" size="25" color="#FF7A4E" v-show="getQue(queNo).star" />
|
|
|
- </span>
|
|
|
- <span>{{ queNo + 1 }}.</span>
|
|
|
- <!--题目渲染-->
|
|
|
- <div id="answer-box" v-html="getQue(queNo).question"></div>
|
|
|
+ <template>
|
|
|
+ <!--切換頁-->
|
|
|
+ <div class="small-view">
|
|
|
+ <div class="countDown" v-if="needCountDown">
|
|
|
+ <div>{{$t("studentWeb.exam.examTime")}}:{{ surplus }}</div>
|
|
|
</div>
|
|
|
- <!--综合题-->
|
|
|
- <div v-if="getQue(queNo).type === 'compose' || getQue(queNo).parent !== undefined">
|
|
|
- <div class="compose-content" v-if="getQue(queNo).parent !== undefined">
|
|
|
- <div class="questionType">
|
|
|
- <span>{{getTestType(getQue(queNo).parentInfo.type)}}</span>
|
|
|
- </div>
|
|
|
- <div class="compose-box">
|
|
|
- <span v-if="isWrong" @click="changeStar(!getQue(queNo).star, queNo, true)" style="cursor: pointer;">
|
|
|
- <Icon custom="iconfont icon-shoucang1" size="25" v-show="!getQue(queNo).star" />
|
|
|
- <Icon custom="iconfont icon-shoucang2" size="25" color="#FF7A4E" v-show="getQue(queNo).star" />
|
|
|
- </span>
|
|
|
- <span style="margin-left:10px;font-weight:800;font-size:15px">{{$t("studentWeb.exam.testpop.queNo")}}</span>
|
|
|
- <br />
|
|
|
- <div class="compose-item">
|
|
|
- <!--<span w>{{ getQue(queNo).parent + 1}}.</span>-->
|
|
|
- <!--题干渲染-->
|
|
|
- <div v-html="getQue(queNo).parentInfo.question"></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="que-content">
|
|
|
- <span style="width:51px">{{ getQue(queNo).paperIndex}}:</span>
|
|
|
- <!--题目渲染-->
|
|
|
- <div class="que-items" id="answer-box" v-html="getQue(queNo).question"></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <div class="pageCtl2">
|
|
|
+ <button @click="preQ()" :disabled="!queNo" :class="{disable: !queNo}">
|
|
|
+ <Icon type="ios-arrow-back" />{{$t("studentWeb.exam.testpop.previous")}}
|
|
|
+ </button>
|
|
|
+ <button @click="showPage(true)">
|
|
|
+ {{$t("studentWeb.exam.testpop.showPage")}}
|
|
|
+ </button>
|
|
|
+ <button @click="nextQ()"
|
|
|
+ :disabled="queNo == (showExam.length-1)"
|
|
|
+ :class="{ hintClick:queNo != (showExam.length-1) && checkers[queNo] != '',disable: queNo == (showExam.length-1)}">
|
|
|
+ {{$t("studentWeb.exam.testpop.next")}}
|
|
|
+ <Icon type="ios-arrow-forward" />
|
|
|
+ </button>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="answers">
|
|
|
- <div class="questionNo">{{$t("studentWeb.exam.testpop.myAns")}}</div>
|
|
|
- <div class="answers-box">
|
|
|
- <!--问答题-->
|
|
|
- <div class="compose-content" v-if="getQue(queNo).type != 'judge' && getQue(queNo).type != 'single' && getQue(queNo).type != 'multiple'">
|
|
|
- <Compose ref="compose" :itemInfo="getQue(queNo)" :close="!closeTest" :textData="checkers[queNo]" :index="queNo" @dataGet="getComposeAns"></Compose>
|
|
|
+ <div :class="['questionContent', {'qamode-box': paperData.qamode}]" ref="questionBox" v-if="showExam.length">
|
|
|
+ <!-- <span class="hintwrap">
|
|
|
+ <Tooltip :content="$t('studentWeb.exam.report.noSource')" theme="light" placement="left">
|
|
|
+ <span class="hintIcon">
|
|
|
+ <svg-icon icon-class="hint" />
|
|
|
+ </span>
|
|
|
+ </Tooltip>
|
|
|
+ </span> -->
|
|
|
+ <div class="questioDes">
|
|
|
+ <div class="questionType" v-if="getQue(queNo).parent === undefined">
|
|
|
+ <span>{{getTestType(getQue(queNo).type)}}</span>
|
|
|
</div>
|
|
|
- <!--判断题选项-->
|
|
|
- <div v-if="getQue(queNo).type == 'judge'" align="center">
|
|
|
- <!-- <div class="testButn">
|
|
|
- <Radio-group v-model="checkers[queNo][0]">
|
|
|
- <Radio label="A"><Icon type="md-checkmark" /></Radio>
|
|
|
- <Radio label="B"><Icon type="md-close" /></Radio>
|
|
|
- </Radio-group>
|
|
|
- </div> -->
|
|
|
- <label class="testBtn yesNoBtn">
|
|
|
- <input type="radio" value="A" v-model="checkers[queNo][0]" :disabled="!closeTest" />
|
|
|
- <div class="testbg" :style="{'background-color': isWrong && showEnd && checkers[queNo][0] === 'A' ? (getQue(queNo).answer[0] === 'A' ? '' : 'red !important') : ''}">
|
|
|
- <Icon type="ios-radio-button-off" />
|
|
|
- </div>
|
|
|
- </label>
|
|
|
- <label class="testBtn yesNoBtn">
|
|
|
- <input type="radio" value="B" v-model="checkers[queNo][0]" :disabled="!closeTest" />
|
|
|
- <div class="testbg" :style="{'background-color': isWrong && showEnd && checkers[queNo][0] === 'B' ? (getQue(queNo).answer[0] === 'B' ? '' : 'red !important') : ''}">
|
|
|
- <Icon type="md-close" />
|
|
|
- </div>
|
|
|
- </label>
|
|
|
+ <div class="que-item" v-if="getQue(queNo).type != 'compose' && getQue(queNo).parent === undefined">
|
|
|
+ <span v-if="isWrong" @click="changeStar(!getQue(queNo).star, queNo)" style="margin-right: 10px; cursor: pointer;">
|
|
|
+ <Icon custom="iconfont icon-shoucang1" size="25" v-show="!getQue(queNo).star" />
|
|
|
+ <Icon custom="iconfont icon-shoucang2" size="25" color="#FF7A4E" v-show="getQue(queNo).star" />
|
|
|
+ </span>
|
|
|
+ <span>{{ queNo + 1 }}.</span>
|
|
|
+ <!--题目渲染-->
|
|
|
+ <div id="answer-box" v-html="getQue(queNo).question"></div>
|
|
|
</div>
|
|
|
- <!--选择题选项-->
|
|
|
- <div class="select-box" v-if="getQue(queNo).type != 'judge'">
|
|
|
- <label class="testBtn"
|
|
|
- v-for="(item, index) in getQue(queNo).option"
|
|
|
- :key="index">
|
|
|
- <span v-show="showEnd">
|
|
|
- <Icon type="md-checkmark-circle" color="#24B880" size="20"
|
|
|
- v-if="getQue(queNo).answer.includes(item.code)"
|
|
|
- />
|
|
|
- <Icon type="md-close-circle" color="red" size="20"
|
|
|
- v-if="checkers[queNo].includes(item.code) && !getQue(queNo).answer.includes(item.code)"
|
|
|
- />
|
|
|
- </span>
|
|
|
- <input type="checkbox"
|
|
|
- :value="getQue(queNo).option[index].code"
|
|
|
- v-model="checkers[queNo]"
|
|
|
- @click="getAns(queNo,index)"
|
|
|
- :disabled="!closeTest" />
|
|
|
- <div class="testbg">
|
|
|
- <div style="display:flex">
|
|
|
- <span>{{ getQue(queNo).option[index].code }}.</span>
|
|
|
- <div v-html="item.value" @click="showImg($event)"></div>
|
|
|
+ <!--综合题-->
|
|
|
+ <div v-if="getQue(queNo).type === 'compose' || getQue(queNo).parent !== undefined">
|
|
|
+ <div class="compose-content" v-if="getQue(queNo).parent !== undefined">
|
|
|
+ <div class="questionType">
|
|
|
+ <span>{{getTestType(getQue(queNo).parentInfo.type)}}</span>
|
|
|
+ </div>
|
|
|
+ <div class="compose-box">
|
|
|
+ <span v-if="isWrong" @click="changeStar(!getQue(queNo).star, queNo, true)" style="cursor: pointer;">
|
|
|
+ <Icon custom="iconfont icon-shoucang1" size="25" v-show="!getQue(queNo).star" />
|
|
|
+ <Icon custom="iconfont icon-shoucang2" size="25" color="#FF7A4E" v-show="getQue(queNo).star" />
|
|
|
+ </span>
|
|
|
+ <span style="margin-left:10px;font-weight:800;font-size:15px">{{$t("studentWeb.exam.testpop.queNo")}}</span>
|
|
|
+ <br />
|
|
|
+ <div class="compose-item">
|
|
|
+ <!--<span w>{{ getQue(queNo).parent + 1}}.</span>-->
|
|
|
+ <!--题干渲染-->
|
|
|
+ <div v-html="getQue(queNo).parentInfo.question"></div>
|
|
|
</div>
|
|
|
- <div style="clear:both"></div>
|
|
|
</div>
|
|
|
- </label>
|
|
|
+ <div class="que-content">
|
|
|
+ <span style="width:51px">{{ getQue(queNo).paperIndex}}:</span>
|
|
|
+ <!--题目渲染-->
|
|
|
+ <div class="que-items" id="answer-box" v-html="getQue(queNo).question"></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <!-- <div :style="isCheckAns ? 'height: 250px' : ''"></div> -->
|
|
|
- <!-- 答案解析 -->
|
|
|
- <div v-if="isWrong" :class="['analysis', this.showEnd ? 'active' : '']" @click="changeAnalysisType(true)">
|
|
|
- <div class="item-explain">
|
|
|
- <span class="explain-title">【{{ $t("studentWeb.exam.report.ansRes") }}】</span>
|
|
|
- <div class="item-explain-details">
|
|
|
- <span v-if="!checkers[queNo].length">{{ $t('studentWeb.exam.report.noAns') }}</span>
|
|
|
- <span v-else v-for="(item, index) in checkers[queNo]" :key="index" v-html="item"></span>
|
|
|
+ <div class="answers">
|
|
|
+ <div class="questionNo">{{$t("studentWeb.exam.testpop.myAns")}}</div>
|
|
|
+ <div class="answers-box">
|
|
|
+ <!--问答题-->
|
|
|
+ <div class="compose-content" v-if="getQue(queNo).type != 'judge' && getQue(queNo).type != 'single' && getQue(queNo).type != 'multiple'">
|
|
|
+ <Compose ref="compose" :itemInfo="getQue(queNo)" :close="!closeTest" :textData="checkers[queNo]" :index="queNo" @dataGet="getComposeAns"></Compose>
|
|
|
+ </div>
|
|
|
+ <!--判断题选项-->
|
|
|
+ <div v-if="getQue(queNo).type == 'judge'" align="center">
|
|
|
+ <!-- <div class="testButn">
|
|
|
+ <Radio-group v-model="checkers[queNo][0]">
|
|
|
+ <Radio label="A"><Icon type="md-checkmark" /></Radio>
|
|
|
+ <Radio label="B"><Icon type="md-close" /></Radio>
|
|
|
+ </Radio-group>
|
|
|
+ </div> -->
|
|
|
+ <label class="testBtn yesNoBtn">
|
|
|
+ <input type="radio" value="A" v-model="checkers[queNo][0]" :disabled="!closeTest" />
|
|
|
+ <div class="testbg" :style="{'background-color': isWrong && showEnd && checkers[queNo][0] === 'A' ? (getQue(queNo).answer[0] === 'A' ? '' : 'red !important') : ''}">
|
|
|
+ <Icon type="ios-radio-button-off" />
|
|
|
+ </div>
|
|
|
+ </label>
|
|
|
+ <label class="testBtn yesNoBtn">
|
|
|
+ <input type="radio" value="B" v-model="checkers[queNo][0]" :disabled="!closeTest" />
|
|
|
+ <div class="testbg" :style="{'background-color': isWrong && showEnd && checkers[queNo][0] === 'B' ? (getQue(queNo).answer[0] === 'B' ? '' : 'red !important') : ''}">
|
|
|
+ <Icon type="md-close" />
|
|
|
+ </div>
|
|
|
+ </label>
|
|
|
+ </div>
|
|
|
+ <!--选择题选项-->
|
|
|
+ <div class="select-box" v-if="getQue(queNo).type != 'judge'">
|
|
|
+ <label class="testBtn"
|
|
|
+ v-for="(item, index) in getQue(queNo).option"
|
|
|
+ :key="index">
|
|
|
+ <span v-show="showEnd">
|
|
|
+ <Icon type="md-checkmark-circle" color="#24B880" size="20"
|
|
|
+ v-if="getQue(queNo).answer.includes(item.code)"
|
|
|
+ />
|
|
|
+ <Icon type="md-close-circle" color="red" size="20"
|
|
|
+ v-if="checkers[queNo].includes(item.code) && !getQue(queNo).answer.includes(item.code)"
|
|
|
+ />
|
|
|
+ </span>
|
|
|
+ <input type="checkbox"
|
|
|
+ :value="getQue(queNo).option[index].code"
|
|
|
+ v-model="checkers[queNo]"
|
|
|
+ @click="getAns(queNo,index)"
|
|
|
+ :disabled="!closeTest" />
|
|
|
+ <div class="testbg">
|
|
|
+ <div style="display:flex">
|
|
|
+ <span>{{ getQue(queNo).option[index].code }}.</span>
|
|
|
+ <div v-html="item.value" @click="showImg($event)"></div>
|
|
|
+ </div>
|
|
|
+ <div style="clear:both"></div>
|
|
|
+ </div>
|
|
|
+ </label>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="item-explain">
|
|
|
- <span class="explain-title">【{{ $t("studentWeb.exam.report.testAns") }}】</span>
|
|
|
- <div class="item-explain-details">
|
|
|
- <span v-if="!showExam[queNo].answer.length">{{ $t('studentWeb.exam.report.noAns') }}</span>
|
|
|
- <span v-else v-for="(item, index) in showExam[queNo].answer" :key="index" v-html="item"></span>
|
|
|
+ <!-- <div :style="isCheckAns ? 'height: 250px' : ''"></div> -->
|
|
|
+ <!-- 答案解析 -->
|
|
|
+ <div v-if="isWrong" :class="['analysis', this.showEnd ? 'active' : '']" @click="changeAnalysisType(true)">
|
|
|
+ <div class="item-explain">
|
|
|
+ <span class="explain-title">【{{ $t("studentWeb.exam.report.ansRes") }}】</span>
|
|
|
+ <div class="item-explain-details">
|
|
|
+ <span v-if="!checkers[queNo].length">{{ $t('studentWeb.exam.report.noAns') }}</span>
|
|
|
+ <span v-else v-for="(item, index) in checkers[queNo]" :key="index" v-html="item"></span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class="item-explain">
|
|
|
- <span class="explain-title">【{{ $t("studentWeb.exam.report.testAnalyse") }}】</span>
|
|
|
- <div class="item-explain-details">
|
|
|
- <div v-html="showExam[queNo].explain ? showExam[queNo].explain : $t('studentWeb.exam.report.noAnalyse')"></div>
|
|
|
+ <div class="item-explain">
|
|
|
+ <span class="explain-title">【{{ $t("studentWeb.exam.report.testAns") }}】</span>
|
|
|
+ <div class="item-explain-details">
|
|
|
+ <span v-if="!showExam[queNo].answer.length">{{ $t('studentWeb.exam.report.noAns') }}</span>
|
|
|
+ <span v-else v-for="(item, index) in showExam[queNo].answer" :key="index" v-html="item"></span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <!-- 知识点 -->
|
|
|
- <div class="item-explain">
|
|
|
- <span class="explain-title">【{{ $t("studentWeb.exam.report.knowledge") }}】</span>
|
|
|
- <div v-if="showExam[queNo].knowledge && showExam[queNo].knowledge.length" class="item-explain-details">
|
|
|
- <span v-for="(knowledge, index) in showExam[queNo].knowledge" :key="index" class="knowledge-style">
|
|
|
- {{ knowledge }}
|
|
|
- </span>
|
|
|
+ <div class="item-explain">
|
|
|
+ <span class="explain-title">【{{ $t("studentWeb.exam.report.testAnalyse") }}】</span>
|
|
|
+ <div class="item-explain-details">
|
|
|
+ <div v-html="showExam[queNo].explain ? showExam[queNo].explain : $t('studentWeb.exam.report.noAnalyse')"></div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div v-else class="item-explain-details">
|
|
|
- {{ $t("studentWeb.exam.report.noKnowledge") }}
|
|
|
+ <!-- 知识点 -->
|
|
|
+ <div class="item-explain">
|
|
|
+ <span class="explain-title">【{{ $t("studentWeb.exam.report.knowledge") }}】</span>
|
|
|
+ <div v-if="showExam[queNo].knowledge && showExam[queNo].knowledge.length" class="item-explain-details">
|
|
|
+ <span v-for="(knowledge, index) in showExam[queNo].knowledge" :key="index" class="knowledge-style">
|
|
|
+ {{ knowledge }}
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <div v-else class="item-explain-details">
|
|
|
+ {{ $t("studentWeb.exam.report.noKnowledge") }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <!-- 认知层次 -->
|
|
|
- <div class="item-explain">
|
|
|
- <span class="explain-title">【{{ $t("studentWeb.exam.report.filed") }}】</span>
|
|
|
- <div class="item-explain-details">
|
|
|
- <div>{{ levelList[showExam[queNo].field - 1] }}</div>
|
|
|
+ <!-- 认知层次 -->
|
|
|
+ <div class="item-explain">
|
|
|
+ <span class="explain-title">【{{ $t("studentWeb.exam.report.filed") }}】</span>
|
|
|
+ <div class="item-explain-details">
|
|
|
+ <div>{{ levelList[showExam[queNo].field - 1] }}</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class="item-explain">
|
|
|
- <span class="explain-title">【{{ $t("studentWeb.exam.report.repairSource") }}】</span>
|
|
|
- <div class="item-explain-details-repair">
|
|
|
- <div v-if="showExam[queNo].repair.length != 0">
|
|
|
- <div v-for="(repairSource, normalIndex) in showExam[queNo].repair" :key="normalIndex" class="repair-link-wrap-item-box">
|
|
|
- <div class="file-icon">
|
|
|
- <img :src="$tools.getFileThum(repairSource.type, repairSource.name)"/>
|
|
|
- </div>
|
|
|
- <div class="file-info">
|
|
|
- <p class="file-name">{{ repairSource.name }}</p>
|
|
|
- <div>
|
|
|
- <span @click.stop="onPreview(repairSource)" v-if="repairSource.type !== 'other'">{{ $t('ability.review.preview')}}</span>
|
|
|
- <span @click.stop="onDownload(repairSource)" v-if="repairSource.type !== 'link'">{{ $t('ability.review.download')}}</span>
|
|
|
+ <div class="item-explain">
|
|
|
+ <span class="explain-title">【{{ $t("studentWeb.exam.report.repairSource") }}】</span>
|
|
|
+ <div class="item-explain-details-repair">
|
|
|
+ <div v-if="showExam[queNo].repair.length != 0">
|
|
|
+ <div v-for="(repairSource, normalIndex) in showExam[queNo].repair" :key="normalIndex" class="repair-link-wrap-item-box">
|
|
|
+ <div class="file-icon">
|
|
|
+ <img :src="$tools.getFileThum(repairSource.type, repairSource.name)"/>
|
|
|
+ </div>
|
|
|
+ <div class="file-info">
|
|
|
+ <p class="file-name">{{ repairSource.name }}</p>
|
|
|
+ <div>
|
|
|
+ <span @click.stop="onPreview(repairSource)" v-if="repairSource.type !== 'other'">{{ $t('ability.review.preview')}}</span>
|
|
|
+ <span @click.stop="onDownload(repairSource)" v-if="repairSource.type !== 'link'">{{ $t('ability.review.download')}}</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div v-else-if="!showExam[queNo].repair.length">
|
|
|
- {{ $t('studentWeb.exam.report.noSource') }}
|
|
|
+ <div v-else-if="!showExam[queNo].repair.length">
|
|
|
+ {{ $t('studentWeb.exam.report.noSource') }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div v-else style="text-align: center; margin-top: 25%; font-size: 20px;">{{ $t("studentWeb.exam.testpop.noExam") }}</div>
|
|
|
+ <div v-else style="text-align: center; margin-top: 25%; font-size: 20px;">{{ $t("studentWeb.exam.testpop.noExam") }}</div>
|
|
|
+ </template>
|
|
|
</i-col>
|
|
|
<!--答题卡-->
|
|
|
<i-col class="ansArea" v-show="widthLimit || (!widthLimit && isShow)"
|
|
@@ -527,7 +544,7 @@
|
|
|
interval: undefined, //计时器
|
|
|
showExam: [],
|
|
|
totalScore: 0, //练习总分
|
|
|
- showEnd: false,
|
|
|
+ showEnd: false, //结束练习
|
|
|
repeatPractice: false, //再次练习
|
|
|
levelList: [ //层次
|
|
|
this.$t("evaluation.level1"),
|
|
@@ -539,6 +556,8 @@
|
|
|
],
|
|
|
isShow: false,
|
|
|
widthLimit: false,
|
|
|
+ imgList: [],
|
|
|
+ CarouselIndex: 0,
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
@@ -688,6 +707,18 @@
|
|
|
}
|
|
|
this.showExam = this.examInfo
|
|
|
},
|
|
|
+ async getImgList() {
|
|
|
+ if(!this.getPaperInfo.attachments) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let codes = this.getItemTitle.scope === 'school' ? this.getItemTitle.school : this.getItemTitle.creatorId
|
|
|
+ let sas = await this.$tools.getBlobSas(codes)
|
|
|
+ let blob = this.paperData.blob
|
|
|
+ this.imgList = this.getPaperInfo.attachments.map(item => {
|
|
|
+ let url = sas.url + "/" + codes + blob + '/' + item + '?' + sas.sas
|
|
|
+ return url
|
|
|
+ })
|
|
|
+ },
|
|
|
//獲取富文本返回數據
|
|
|
getComposeAns(data, index) {
|
|
|
// index可能为0
|
|
@@ -704,6 +735,9 @@
|
|
|
this.paperData = this._.cloneDeep(this.getCurrentSubject)
|
|
|
this.isWrong = this.paperData.stuAns[0] ? true : false
|
|
|
this.setTime = this.paperData.time > 0 ? true : false
|
|
|
+ if(this.paperData.qamode) {
|
|
|
+ this.getImgList()
|
|
|
+ }
|
|
|
if(this.setTime && !this.isWrong) {
|
|
|
this.diffSeconds = JSON.parse(localStorage.getItem("time")) || this.paperData.time * 60
|
|
|
this.interval = setInterval(() => {
|