|
@@ -1,153 +1,158 @@
|
|
<template>
|
|
<template>
|
|
<div class="components-el-container">
|
|
<div class="components-el-container">
|
|
|
|
+
|
|
<!-- 题目列表部分 -->
|
|
<!-- 题目列表部分 -->
|
|
<!--<div v-if="exerciseList.length === 0" class="no-data-text">
|
|
<!--<div v-if="exerciseList.length === 0" class="no-data-text">
|
|
- <img src="../../assets/icon/no_data.svg" width="120" />
|
|
|
|
- <span style="margin-top:15px;color:#808080">请先选择学生信息</span>
|
|
|
|
- </div>-->
|
|
|
|
|
|
+ <img src="../../assets/icon/no_data.svg" width="120" />
|
|
|
|
+ <span style="margin-top:15px;color:#808080">请先选择学生信息</span>
|
|
|
|
+ </div>-->
|
|
<Loading :top="200" type="1" style="text-align:center" v-if="dataLoading"></Loading>
|
|
<Loading :top="200" type="1" style="text-align:center" v-if="dataLoading"></Loading>
|
|
- <div class="content-wrap" ref="mathJaxContainer" v-if="!dataLoading">
|
|
|
|
- <Loading :top="200" v-show="dataLoading" type="1"></Loading>
|
|
|
|
- <div class="list-view" :key="typeIndex" v-for="(typeItem,typeIndex) in listData">
|
|
|
|
- <p v-show="viewModel === 'type' && typeItem.list.length" class="type-name">
|
|
|
|
- {{ numberConvertToUppercase(getLatestTypeIndex(typeItem.type) + 1) }}
|
|
|
|
- {{ exersicesType[typeItem.type] }}
|
|
|
|
- ({{ typeItem.score || 0 }} 分)
|
|
|
|
- </p>
|
|
|
|
-
|
|
|
|
- <div v-for="(item,index) of typeItem.list" :key="index" :class='["exercise-item",isError(item.id) ? "exercise-item-error":""]'
|
|
|
|
- @mouseenter="exerciseMouseover($event)" @mouseleave="exerciseMouseleave($event)">
|
|
|
|
-
|
|
|
|
- <!--工具栏部分-->
|
|
|
|
- <div class="item-tools-wrap"></div>
|
|
|
|
- <!--<div class="item-error-wrap" v-if="errorList.indexOf(item) > -1">
|
|
|
|
|
|
+ <vuescroll ref="que">
|
|
|
|
+
|
|
|
|
+ <div class="content-wrap" ref="mathJaxContainer" v-if="!dataLoading">
|
|
|
|
+ <Loading :top="200" v-show="dataLoading" type="1"></Loading>
|
|
|
|
+ <div class="list-view" :key="typeIndex" v-for="(typeItem,typeIndex) in listData">
|
|
|
|
+ <p v-show="viewModel === 'type' && typeItem.list.length" class="type-name">
|
|
|
|
+ {{ numberConvertToUppercase(getLatestTypeIndex(typeItem.type) + 1) }}
|
|
|
|
+ {{ exersicesType[typeItem.type] }}
|
|
|
|
+ ({{ typeItem.score || 0 }} 分)
|
|
|
|
+ </p>
|
|
|
|
+
|
|
|
|
+ <div ref="ques" v-for="(item,index) of typeItem.list" :key="index" :class='["exercise-item",isError(item.id) ? "exercise-item-error":""]'
|
|
|
|
+ @mouseenter="exerciseMouseover($event)" @mouseleave="exerciseMouseleave($event)">
|
|
|
|
+ <!--工具栏部分-->
|
|
|
|
+ <div class="item-tools-wrap"></div>
|
|
|
|
+ <!--<div class="item-error-wrap" v-if="errorList.indexOf(item) > -1">
|
|
<span v-if="isNoAnswer(item)">请为当前客观题设置正确答案!</span>
|
|
<span v-if="isNoAnswer(item)">请为当前客观题设置正确答案!</span>
|
|
<span v-else>试题题干或选项信息有误,请删除或者重新导入正确文档!</span>
|
|
<span v-else>试题题干或选项信息有误,请删除或者重新导入正确文档!</span>
|
|
</div>-->
|
|
</div>-->
|
|
|
|
|
|
- <div @click="onQuestionToggle(exerciseList.indexOf(item),item.id,$event,typeItem.list)">
|
|
|
|
- <!-- 题干部分 -->
|
|
|
|
- <div class="item-question">
|
|
|
|
- <div v-if="viewModel === 'list'">
|
|
|
|
- <div class="item-question-order">{{ index + 1 }} </div>
|
|
|
|
- <div class="item-question-text" v-html="item.question"></div>
|
|
|
|
|
|
+ <div @click="onQuestionToggle(exerciseList.indexOf(item),item.id,$event,typeItem.list)">
|
|
|
|
+ <!-- 题干部分 -->
|
|
|
|
+ <div class="item-question">
|
|
|
|
+ <div v-if="viewModel === 'list'">
|
|
|
|
+ <div class="item-question-order">{{ index + 1 }} </div>
|
|
|
|
+ <div class="item-question-text" v-html="item.question"></div>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else>
|
|
|
|
+ <div class="item-question-order">{{ pageSize * (pageNum - 1) + index + 1 }}. </div>
|
|
|
|
+ <div class="item-question-text" v-html="item.question" @click="onRichTextClick($event)"></div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
- <div v-else>
|
|
|
|
- <div class="item-question-order">{{ pageSize * (pageNum - 1) + index + 1 }} . </div>
|
|
|
|
- <div class="item-question-text" v-html="item.question" @click="onRichTextClick($event)"></div>
|
|
|
|
|
|
+ <!-- 选项部分 -->
|
|
|
|
+ <div v-for="(option,optionIndex) in item.option" :key="optionIndex" class="item-options">
|
|
|
|
+ <div class="item-option-content">
|
|
|
|
+ <div class="item-option-order">{{String.fromCharCode(64 + parseInt(optionIndex+1))}} :</div>
|
|
|
|
+ <div class="item-option-text" v-html="option.value" @click="onRichTextClick($event)"></div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <!-- 选项部分 -->
|
|
|
|
- <div v-for="(option,optionIndex) in item.option" :key="optionIndex" class="item-options">
|
|
|
|
- <div class="item-option-content">
|
|
|
|
- <div class="item-option-order">{{String.fromCharCode(64 + parseInt(optionIndex+1))}} :</div>
|
|
|
|
- <div class="item-option-text" v-html="option.value" @click="onRichTextClick($event)"></div>
|
|
|
|
- </div>
|
|
|
|
|
|
+ <div class="item-btn-toggle" @click.stop>
|
|
|
|
+ <template>
|
|
|
|
+ <!--<InputNumber :max="item.score + surPlusScore" :min="0" v-model="item.score" style="display: inline-block ;width: 60px;margin-right: 10px;height: 30px;"
|
|
|
|
+ @click.stop></InputNumber>-->
|
|
|
|
+ <span style="margin-right: 20px;">({{ item.score }} 分)</span>
|
|
|
|
+ <!-- <span class="item-score" title="设置题目分数" @click.stop="onSetSingleItem(item,index)" v-else>{{ item.score }} 分</span> -->
|
|
|
|
+ </template>
|
|
|
|
+ <Icon :type="collapseList.indexOf(index) > -1 ? 'ios-arrow-dropup' : 'ios-arrow-dropdown'" />
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
- <div class="item-btn-toggle" @click.stop>
|
|
|
|
- <template>
|
|
|
|
- <!--<InputNumber :max="item.score + surPlusScore" :min="0" v-model="item.score" style="display: inline-block ;width: 60px;margin-right: 10px;height: 30px;"
|
|
|
|
- @click.stop></InputNumber>-->
|
|
|
|
- <span style="margin-right: 20px;">({{ item.score }} 分)</span>
|
|
|
|
- <!-- <span class="item-score" title="设置题目分数" @click.stop="onSetSingleItem(item,index)" v-else>{{ item.score }} 分</span> -->
|
|
|
|
- </template>
|
|
|
|
- <Icon :type="collapseList.indexOf(index) > -1 ? 'ios-arrow-dropup' : 'ios-arrow-dropdown'" />
|
|
|
|
- </div>
|
|
|
|
|
|
|
|
- <div class="item-explain">
|
|
|
|
- <span class="answer-title">【作 答 答 案】</span>
|
|
|
|
- <div class="item-explain-details">
|
|
|
|
- <!--问答题答案-->
|
|
|
|
- <div v-if="item.type === 'subjective'">
|
|
|
|
- <div v-for="(answer,index) in item.answerData" :key="index">
|
|
|
|
- <span v-html="item.answerData.length > 0 ? answer : '暂未作答'"></span><br />
|
|
|
|
- </div>
|
|
|
|
- <div class="answer-box">
|
|
|
|
- <span class="answer-scores">【题 目 分 数】</span>
|
|
|
|
- <!--<InputNumber v-model="answer.score" placeholder="请输入题目分数..." @on-change="inputScore(answer)" style=" width: 150px; margin-top: -5px;" />-->
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <!--填空题答案-->
|
|
|
|
- <div v-else-if="item.type === 'complete'">
|
|
|
|
- <div v-for="(answer,index) in item.answerData" :key="index">
|
|
|
|
- <div :class="[ item.type === 'complete' ? 'item-answer-items':'']">
|
|
|
|
- <p>{{index+1}}:</p><span v-html="answer"></span><br />
|
|
|
|
|
|
+ <div class="item-explain">
|
|
|
|
+ <span class="answer-title">【作 答 答 案】</span>
|
|
|
|
+ <div class="item-explain-details">
|
|
|
|
+ <!--问答题答案-->
|
|
|
|
+ <div v-if="item.type === 'subjective'">
|
|
|
|
+ <div v-for="(answer,index) in item.answerData" :key="index">
|
|
|
|
+ <span v-html="item.answerData.length > 0 ? answer : '暂未作答'"></span><br />
|
|
</div>
|
|
</div>
|
|
<div class="answer-box">
|
|
<div class="answer-box">
|
|
- <span class="answer-scores">【题 目 分 数 】</span>
|
|
|
|
- <InputNumber v-model="item.stuScore" placeholder="请输入题目分数..." @on-blur="inputScore(item)" style=" width: 150px; margin-top: 5px;" />
|
|
|
|
|
|
+ <span class="answer-scores">【题 目 分 数】</span>
|
|
|
|
+ <!--<InputNumber v-model="answer.score" placeholder="请输入题目分数..." @on-change="inputScore(answer)" style=" width: 150px; margin-top: -5px;" />-->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
- <!--其余题型答案-->
|
|
|
|
- <div v-else>
|
|
|
|
- <div style="display:flex;margin-left:5px">
|
|
|
|
- <span style="margin-left:5px" v-for="(answer,index) in item.answerData" :key="index">{{item.answerData.length > 0 ? answer : "暂未作答"}}</span>
|
|
|
|
|
|
+ <!--填空题答案-->
|
|
|
|
+ <div v-else-if="item.type === 'complete'">
|
|
|
|
+ <div v-for="(answer,index) in item.answerData" :key="index">
|
|
|
|
+ <div :class="[ item.type === 'complete' ? 'item-answer-items':'']">
|
|
|
|
+ <p>{{index+1}}:</p><span v-html="answer"></span><br />
|
|
|
|
+ </div>
|
|
|
|
+ <div class="answer-box">
|
|
|
|
+ <span class="answer-scores">【题 目 分 数 】</span>
|
|
|
|
+ <InputNumber v-model="item.stuScore" placeholder="请输入题目分数..." @on-blur="inputScore(item)" style=" width: 150px; margin-top: 5px;" />
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
- <div class="answer-box">
|
|
|
|
- <span class="answer-score">【题 目 分 数】</span>
|
|
|
|
- <InputNumber v-model="item.stuScore" placeholder="请输入题目分数..." @on-blur="inputScore(item)" style=" width: 150px; margin-top: -5px;margin-right:10px;" />
|
|
|
|
- <Button size="small" v-if="item.stuScore != -1" type="success">修改</Button>
|
|
|
|
|
|
+ <!--其余题型答案-->
|
|
|
|
+ <div v-else>
|
|
|
|
+ <div style="display:flex;margin-left:5px">
|
|
|
|
+ <span style="margin-left:5px" v-for="(answer,index) in item.answerData" :key="index">{{item.answerData.length > 0 ? answer : "暂未作答"}}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="answer-box">
|
|
|
|
+ <span class="answer-score">【题 目 分 数】</span>
|
|
|
|
+ <InputNumber v-model="item.stuScore" placeholder="请输入题目分数..." @on-blur="inputScore(item)" style=" width: 150px; margin-top: -5px;margin-right:10px;" />
|
|
|
|
+ <Button size="small" v-if="item.stuScore != -1" type="success">修改</Button>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
- <!-- 答案以及解析 -->
|
|
|
|
- <transition name="slide">
|
|
|
|
- <!-- <div v-show="collapseList.indexOf(exerciseList.indexOf(item)) > -1" class="toggle-area"> -->
|
|
|
|
- <div v-show="collapseList.indexOf(exerciseList.indexOf(item)) > -1" class="toggle-area">
|
|
|
|
- <div v-if="item.type !== 'compose'">
|
|
|
|
- <!-- 答案展示部分 -->
|
|
|
|
- <div class="item-explain" v-show="isShowAnswer">
|
|
|
|
- <span class="explain-title">【答ㅤ案】</span>
|
|
|
|
- <div class="item-explain-details" @click="onRichTextClick($event)">
|
|
|
|
- <!-- 问答题答案 -->
|
|
|
|
- <div v-if="item.type === 'subjective'">
|
|
|
|
- <span v-for="(answer,index) in item.answer" :key="index" v-html="item.answer.length ? answer : '未设置答案'"></span>
|
|
|
|
- </div>
|
|
|
|
- <!-- 填空题答案 -->
|
|
|
|
- <div v-else-if="item.type === 'complete'">
|
|
|
|
- <span :class="[ item.type === 'complete' ? 'item-answer-item':'']" v-for="(answer,index) in item.answer"
|
|
|
|
- :key="index" v-html="answer"></span>
|
|
|
|
- </div>
|
|
|
|
- <!-- 其余题型答案 -->
|
|
|
|
- <div v-else>
|
|
|
|
- <span :class="[ item.type === 'complete' ? 'item-answer-item':'']" v-for="(answer,index) in item.answer"
|
|
|
|
- :key="index">{{answer}}</span>
|
|
|
|
|
|
+ <!-- 答案以及解析 -->
|
|
|
|
+ <transition name="slide">
|
|
|
|
+ <!-- <div v-show="collapseList.indexOf(exerciseList.indexOf(item)) > -1" class="toggle-area"> -->
|
|
|
|
+ <div v-show="collapseList.indexOf(exerciseList.indexOf(item)) > -1" class="toggle-area">
|
|
|
|
+ <div v-if="item.type !== 'compose'">
|
|
|
|
+ <!-- 答案展示部分 -->
|
|
|
|
+ <div class="item-explain" v-show="isShowAnswer">
|
|
|
|
+ <span class="explain-title">【答ㅤ案】</span>
|
|
|
|
+ <div class="item-explain-details" @click="onRichTextClick($event)">
|
|
|
|
+ <!-- 问答题答案 -->
|
|
|
|
+ <div v-if="item.type === 'subjective'">
|
|
|
|
+ <span v-for="(answer,index) in item.answer" :key="index" v-html="item.answer.length ? answer : '未设置答案'"></span>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 填空题答案 -->
|
|
|
|
+ <div v-else-if="item.type === 'complete'">
|
|
|
|
+ <span :class="[ item.type === 'complete' ? 'item-answer-item':'']" v-for="(answer,index) in item.answer"
|
|
|
|
+ :key="index" v-html="answer"></span>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 其余题型答案 -->
|
|
|
|
+ <div v-else>
|
|
|
|
+ <span :class="[ item.type === 'complete' ? 'item-answer-item':'']" v-for="(answer,index) in item.answer"
|
|
|
|
+ :key="index">{{answer}}</span>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
- <!-- 解析部分 -->
|
|
|
|
- <div class="item-explain" v-show="isShowAnswer">
|
|
|
|
- <span class="explain-title">【解ㅤ析】</span>
|
|
|
|
- <div class="item-explain-details">
|
|
|
|
- <span v-html="item.explain || '暂无解析'" @click="onRichTextClick($event)"></span>
|
|
|
|
|
|
+ <!-- 解析部分 -->
|
|
|
|
+ <div class="item-explain" v-show="isShowAnswer">
|
|
|
|
+ <span class="explain-title">【解ㅤ析】</span>
|
|
|
|
+ <div class="item-explain-details">
|
|
|
|
+ <span v-html="item.explain || '暂无解析'" @click="onRichTextClick($event)"></span>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
- <!-- 知识点部分 -->
|
|
|
|
- <div class="item-explain" v-show="isShowAnswer">
|
|
|
|
- <span class="explain-title">【知识点】</span>
|
|
|
|
- <div class="item-explain-details">
|
|
|
|
- <span v-if="! (_.compact(item.points).length)">暂未绑定知识点</span>
|
|
|
|
- <div v-else>
|
|
|
|
- <span v-for="(point,index) in item.points" :key="index" class="item-point-tag">
|
|
|
|
- {{ point }}
|
|
|
|
- </span>
|
|
|
|
|
|
+ <!-- 知识点部分 -->
|
|
|
|
+ <div class="item-explain" v-show="isShowAnswer">
|
|
|
|
+ <span class="explain-title">【知识点】</span>
|
|
|
|
+ <div class="item-explain-details">
|
|
|
|
+ <span v-if="! (_.compact(item.points).length)">暂未绑定知识点</span>
|
|
|
|
+ <div v-else>
|
|
|
|
+ <span v-for="(point,index) in item.points" :key="index" class="item-point-tag">
|
|
|
|
+ {{ point }}
|
|
|
|
+ </span>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+ <!-- 如果是综合题 则加载子题渲染组件 -->
|
|
|
|
+ <div v-else>
|
|
|
|
+ <BaseChild :children="item.children"></BaseChild>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
</div>
|
|
</div>
|
|
- <!-- 如果是综合题 则加载子题渲染组件 -->
|
|
|
|
- <div v-else>
|
|
|
|
- <BaseChild :children="item.children"></BaseChild>
|
|
|
|
- </div>
|
|
|
|
|
|
+ </transition>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
|
|
- </div>
|
|
|
|
- </transition>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
|
|
+ </vuescroll>
|
|
<!-- 音频播放弹窗 -->
|
|
<!-- 音频播放弹窗 -->
|
|
<Modal v-model="playAudioModal" width="400" footer-hide @on-visible-change="onAudioModalChange">
|
|
<Modal v-model="playAudioModal" width="400" footer-hide @on-visible-change="onAudioModalChange">
|
|
<div class="modal-header" slot="header">音频播放</div>
|
|
<div class="modal-header" slot="header">音频播放</div>
|
|
@@ -160,7 +165,6 @@
|
|
<BaseVideoPlayer :videoSrc="curVideoSrc" :audioName="curVideoName" ref="videoPlayer"></BaseVideoPlayer>
|
|
<BaseVideoPlayer :videoSrc="curVideoSrc" :audioName="curVideoName" ref="videoPlayer"></BaseVideoPlayer>
|
|
</Modal>
|
|
</Modal>
|
|
|
|
|
|
-
|
|
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -277,7 +281,19 @@
|
|
this.$Message.warning('请完成题目评分!')
|
|
this.$Message.warning('请完成题目评分!')
|
|
}
|
|
}
|
|
},
|
|
},
|
|
-
|
|
|
|
|
|
+ // 点击右边题序 获取到题目DOM 进行滚动操作
|
|
|
|
+ handleItemClick(item) {
|
|
|
|
+ let questionList = this.$refs["ques"]
|
|
|
|
+ let questionDom = questionList[item]
|
|
|
|
+ let scrollDistance = 0
|
|
|
|
+ scrollDistance = questionDom.offsetTop - 20 // 相对父级容器高度加上头部高度即为滚动距离
|
|
|
|
+ this.$refs["que"].scrollTo(
|
|
|
|
+ {
|
|
|
|
+ y: scrollDistance
|
|
|
|
+ },
|
|
|
|
+ 500, 'easeInQuad'
|
|
|
|
+ )
|
|
|
|
+ },
|
|
/* 音频弹窗切换事件 */
|
|
/* 音频弹窗切换事件 */
|
|
onAudioModalChange(val) {
|
|
onAudioModalChange(val) {
|
|
if (!val) {
|
|
if (!val) {
|
|
@@ -375,66 +391,6 @@
|
|
e.target.children[0].style.display = 'none'
|
|
e.target.children[0].style.display = 'none'
|
|
},
|
|
},
|
|
|
|
|
|
- /**
|
|
|
|
- * 给单个试题配分
|
|
|
|
- * @param item
|
|
|
|
- * @param index
|
|
|
|
- */
|
|
|
|
- handleSetScore(item, index, arr, groupIndex) {
|
|
|
|
- this.currentExerciseIndex = index
|
|
|
|
- this.curIndex = groupIndex
|
|
|
|
- this.curTypeItems = arr
|
|
|
|
- this.curItemScore = item.score
|
|
|
|
- this.lastScore = item.score
|
|
|
|
- this.scoreModal = true
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 配分变化时的剩余分数处理
|
|
|
|
- * @param val
|
|
|
|
- */
|
|
|
|
- onScoreChange(val) {
|
|
|
|
- this.surPlusScore = this.surPlusScore + this.lastScore - val
|
|
|
|
- this.lastScore = val
|
|
|
|
- this.$emit('scoreUpdate', this.surPlusScore)
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- /** 确认单个试题配分 */
|
|
|
|
- onConfirmScore() {
|
|
|
|
- this.$set(this.exerciseList[this.currentExerciseIndex], 'score', this.curItemScore);
|
|
|
|
- this.$set(this.curTypeItems[this.curIndex], 'score', this.curItemScore);
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- /** 编辑成功 */
|
|
|
|
- onEditSuccess(item) {
|
|
|
|
- if (item.id) {
|
|
|
|
- this.$refs.paperEdit.isLoading = false
|
|
|
|
- this.editExerciseModal = false
|
|
|
|
- this.$Message.success("修改成功!")
|
|
|
|
- this.exerciseList.splice(this.currentExerciseIndex, 1, item)
|
|
|
|
- this.curTypeItems.splice(this.curIndex, 1, item)
|
|
|
|
- this.$emit('dataUpdate', this.exerciseList)
|
|
|
|
-
|
|
|
|
- let existIndex = this.modifyItems.map(i => i.id).indexOf(item.id)
|
|
|
|
- if (existIndex < 0) {
|
|
|
|
- this.modifyItems.push(item)
|
|
|
|
- } else {
|
|
|
|
- this.modifyItems[existIndex] = item
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
- this.editExerciseModal = false
|
|
|
|
- this.exerciseList.splice(this.currentExerciseIndex, 1, item)
|
|
|
|
- this.curTypeItems.splice(this.curIndex, 1, item)
|
|
|
|
- let listIndex = this.collapseList.indexOf(this.currentExerciseIndex);
|
|
|
|
- if (listIndex > -1) {
|
|
|
|
- this.collapseList.splice(listIndex, 1)
|
|
|
|
- }
|
|
|
|
- this.$Message.success("修改成功!")
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* 全部展开与全部折叠
|
|
* 全部展开与全部折叠
|
|
* @param isAllOpen
|
|
* @param isAllOpen
|
|
@@ -455,8 +411,6 @@
|
|
})
|
|
})
|
|
return arr.indexOf(type)
|
|
return arr.indexOf(type)
|
|
}
|
|
}
|
|
-
|
|
|
|
-
|
|
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
this.dataLoading = false
|
|
this.dataLoading = false
|
|
@@ -550,6 +504,18 @@
|
|
@import "../../view/evaluation/index/PickExercise.css";
|
|
@import "../../view/evaluation/index/PickExercise.css";
|
|
</style>
|
|
</style>
|
|
<style scoped>
|
|
<style scoped>
|
|
|
|
+ .components-el-container{
|
|
|
|
+ width:100%;
|
|
|
|
+ height:50%;
|
|
|
|
+ }
|
|
|
|
+ .content-wrap{
|
|
|
|
+ width:100%;
|
|
|
|
+ height:100%;
|
|
|
|
+ }
|
|
|
|
+ .list-view{
|
|
|
|
+ width:100%;
|
|
|
|
+ height:100%;
|
|
|
|
+ }
|
|
.components-el-container .ivu-page {
|
|
.components-el-container .ivu-page {
|
|
display: flex;
|
|
display: flex;
|
|
flex-direction: row;
|
|
flex-direction: row;
|