|
@@ -1,142 +1,158 @@
|
|
|
<template>
|
|
|
- <section class="question-info">
|
|
|
- <el-form :model="quesModel" label-position="left" label-width="80px">
|
|
|
- <el-form-item label="题目">
|
|
|
- <rich-text
|
|
|
- class="paper-question-body padding-top-6"
|
|
|
- :text-json="quesModel.quesBody"
|
|
|
- ></rich-text>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item
|
|
|
- v-for="(quesOption, optIndex) in quesModel.quesOptions"
|
|
|
- :key="optIndex"
|
|
|
- >
|
|
|
- <div class="paper-question-option">
|
|
|
- <span>{{ optIndex | optionOrderWordFilter }}. </span>
|
|
|
- <rich-text :text-json="quesOption.optionBody"></rich-text>
|
|
|
+ <div class="question-info2" :class="{ new: infoType == 'new' }">
|
|
|
+ <div class="card-main">
|
|
|
+ <div class="title">{{ infoType === "new" ? "新导入" : "已入库" }}</div>
|
|
|
+ <div class="card-table">
|
|
|
+ <div class="tr">
|
|
|
+ <div class="td">题目</div>
|
|
|
+ <div class="td">
|
|
|
+ <rich-text
|
|
|
+ class="paper-question-body padding-top-6"
|
|
|
+ :text-json="quesModel.quesBody"
|
|
|
+ ></rich-text>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <template v-if="quesModel.subQuestions && quesModel.subQuestions.length">
|
|
|
<div
|
|
|
- v-for="(subQuestionModel, qindex) in quesModel.subQuestions"
|
|
|
- :key="`subq-${qindex}`"
|
|
|
- class="sub-question"
|
|
|
+ class="tr"
|
|
|
+ v-for="(quesOption, optIndex) in quesModel.quesOptions"
|
|
|
+ :key="optIndex"
|
|
|
>
|
|
|
- <div class="sub-question-no">{{ qindex + 1 }}</div>
|
|
|
- <el-form-item label="题目" label-width="50px">
|
|
|
- <rich-text
|
|
|
- class="paper-question-body"
|
|
|
- :text-json="subQuestionModel.quesBody"
|
|
|
- ></rich-text>
|
|
|
- </el-form-item>
|
|
|
- <template
|
|
|
- v-if="
|
|
|
- subQuestionModel.quesOptions &&
|
|
|
- subQuestionModel.quesOptions.length
|
|
|
- "
|
|
|
+ <div class="td">{{ optIndex | optionOrderWordFilter }}.</div>
|
|
|
+ <div class="td">
|
|
|
+ <rich-text :text-json="quesOption.optionBody"></rich-text>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <template
|
|
|
+ v-if="quesModel.subQuestions && quesModel.subQuestions.length"
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ v-for="(subQuestionModel, qindex) in quesModel.subQuestions"
|
|
|
+ :key="`subq-${qindex}`"
|
|
|
>
|
|
|
- <el-form-item
|
|
|
- v-for="(subQuesOption, subIndex) in subQuestionModel.quesOptions"
|
|
|
- :key="subIndex"
|
|
|
- label-width="50px"
|
|
|
+ <div class="tr" style="justify-content: flex-end">
|
|
|
+ <div class="td">{{ qindex + 1 }}.题目</div>
|
|
|
+ <div class="td">
|
|
|
+ <rich-text
|
|
|
+ class="paper-question-body"
|
|
|
+ :text-json="subQuestionModel.quesBody"
|
|
|
+ ></rich-text>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <template
|
|
|
+ v-if="
|
|
|
+ subQuestionModel.quesOptions &&
|
|
|
+ subQuestionModel.quesOptions.length
|
|
|
+ "
|
|
|
>
|
|
|
- <div class="paper-question-option">
|
|
|
- <span>{{ subIndex | optionOrderWordFilter }}. </span>
|
|
|
- <rich-text :text-json="subQuesOption.optionBody"></rich-text>
|
|
|
+ <div
|
|
|
+ class="tr"
|
|
|
+ v-for="(
|
|
|
+ subQuesOption, subIndex
|
|
|
+ ) in subQuestionModel.quesOptions"
|
|
|
+ :key="subIndex"
|
|
|
+ >
|
|
|
+ <div class="td"></div>
|
|
|
+ <div class="td">
|
|
|
+ <span>{{ subIndex | optionOrderWordFilter }}. </span>
|
|
|
+ <rich-text :text-json="subQuesOption.optionBody"></rich-text>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </el-form-item>
|
|
|
- </template>
|
|
|
- <el-form-item label="答案" label-width="50px">
|
|
|
+ </template>
|
|
|
+ <div class="tr" style="justify-content: flex-end">
|
|
|
+ <div class="td">答案</div>
|
|
|
+ <div class="td">
|
|
|
+ <question-answer
|
|
|
+ class="paper-question-body"
|
|
|
+ :data="subQuestionModel"
|
|
|
+ ></question-answer>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <div class="tr">
|
|
|
+ <div class="td">答案</div>
|
|
|
+ <div class="td">
|
|
|
<question-answer
|
|
|
class="paper-question-body"
|
|
|
:data="subQuestionModel"
|
|
|
></question-answer>
|
|
|
- <!-- <rich-text
|
|
|
- class="paper-question-body"
|
|
|
- :text-json="subQuestionModel.quesAnswer"
|
|
|
- ></rich-text> -->
|
|
|
- </el-form-item>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="tr">
|
|
|
+ <div class="td">录入时间</div>
|
|
|
+ <div class="td">{{ quesModel.creationTime }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="tr">
|
|
|
+ <div class="td">题型</div>
|
|
|
+ <div class="td">{{ quesModel.questionType | questionType }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="tr">
|
|
|
+ <div class="td">预估难度</div>
|
|
|
+ <div class="td">{{ quesModel.difficulty || "-" }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="tr">
|
|
|
+ <div class="td">计算难度</div>
|
|
|
+ <div class="td">{{ quesModel.calculateDifficultyDegree || "-" }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="tr">
|
|
|
+ <div class="td">区分度</div>
|
|
|
+ <div class="td">{{ quesModel.discrimination || "-" }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="tr">
|
|
|
+ <div class="td">标准差</div>
|
|
|
+ <div class="td">{{ quesModel.std || "-" }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="tr">
|
|
|
+ <div class="td">信度</div>
|
|
|
+ <div class="td">{{ quesModel.reliability || "-" }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="tr">
|
|
|
+ <div class="td">差异系数</div>
|
|
|
+ <div class="td">{{ quesModel.cv || "-" }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="tr">
|
|
|
+ <div class="td">平均分值</div>
|
|
|
+ <div class="td">{{ quesModel.calculateAvgScore || "-" }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="tr" v-if="infoType === 'existed'">
|
|
|
+ <div class="td">重复率</div>
|
|
|
+ <div class="td">{{ quesModel.duplicateRate || "-" }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="tr">
|
|
|
+ <div class="td">试题关联知识点</div>
|
|
|
+ <div class="td">
|
|
|
+ <el-tag
|
|
|
+ v-for="(content, propIndex) in quesModel.quesProperties"
|
|
|
+ :key="propIndex"
|
|
|
+ type="primary"
|
|
|
+ effect="dark"
|
|
|
+ style="margin-right: 5px; margin-bottom: 5px"
|
|
|
+ >
|
|
|
+ {{ content.firstProperty && content.firstProperty.name }}
|
|
|
+ <span v-if="content.secondProperty" style="margin: 0 3px">/</span>
|
|
|
+ {{ content.secondProperty && content.secondProperty.name }}
|
|
|
+ </el-tag>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </template>
|
|
|
-
|
|
|
- <el-form-item
|
|
|
- v-if="!quesModel.subQuestions || !quesModel.subQuestions.length"
|
|
|
- label="答案"
|
|
|
- >
|
|
|
- <question-answer
|
|
|
- class="paper-question-body padding-top-6"
|
|
|
- :data="quesModel"
|
|
|
- ></question-answer>
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <div class="line-seperator"></div>
|
|
|
-
|
|
|
- <el-form-item label="录入时间">
|
|
|
- <span>{{ quesModel.creationTime }}</span>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="题型">
|
|
|
- <span>{{ quesModel.questionType | questionType }}</span>
|
|
|
- </el-form-item>
|
|
|
- <div class="box-justify">
|
|
|
- <el-form-item label="预估难度">
|
|
|
- <span>{{ quesModel.difficulty || "-" }}</span>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="计算难度" style="width: 120px">
|
|
|
- <span>{{ quesModel.calculateDifficultyDegree || "-" }}</span>
|
|
|
- </el-form-item>
|
|
|
- </div>
|
|
|
- <div class="box-justify">
|
|
|
- <el-form-item label="区分度">
|
|
|
- <span>{{ quesModel.discrimination || "-" }}</span>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="标准差" style="width: 120px">
|
|
|
- <span>{{ quesModel.std || "-" }}</span>
|
|
|
- </el-form-item>
|
|
|
</div>
|
|
|
- <div class="box-justify">
|
|
|
- <el-form-item label="信度">
|
|
|
- <span>{{ quesModel.reliability || "-" }}</span>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="差异系数" style="width: 120px">
|
|
|
- <span>{{ quesModel.cv || "-" }}</span>
|
|
|
- </el-form-item>
|
|
|
+ <div
|
|
|
+ v-if="infoType === 'new'"
|
|
|
+ style="
|
|
|
+ padding: 10px 0;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-end;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <el-button type="danger" icon="el-icon-delete"></el-button>
|
|
|
+ <el-button type="primary" plain class="maintain">跳过</el-button>
|
|
|
+ <el-button type="primary">保留</el-button>
|
|
|
</div>
|
|
|
- <div class="box-justify">
|
|
|
- <el-form-item label="平均分值">
|
|
|
- <span>{{ quesModel.calculateAvgScore || "-" }}</span>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item
|
|
|
- v-if="infoType === 'existed'"
|
|
|
- label="重复率"
|
|
|
- style="width: 120px"
|
|
|
- >
|
|
|
- <span>{{ quesModel.duplicateRate || "-" }}</span>
|
|
|
- </el-form-item>
|
|
|
+ <div v-else style="padding-top: 10px; text-align: right">
|
|
|
+ <slot />
|
|
|
</div>
|
|
|
-
|
|
|
- <div class="line-seperator"></div>
|
|
|
-
|
|
|
- <el-form-item label="试题关联知识点" label-width="120px">
|
|
|
- <el-tag
|
|
|
- v-for="(content, propIndex) in quesModel.quesProperties"
|
|
|
- :key="propIndex"
|
|
|
- type="primary"
|
|
|
- effect="dark"
|
|
|
- style="margin-right: 5px; margin-bottom: 5px"
|
|
|
- >
|
|
|
- <!-- {{ content.courseProperty && content.courseProperty.name }}
|
|
|
- <span style="margin: 0 3px">/</span> -->
|
|
|
- {{ content.firstProperty && content.firstProperty.name }}
|
|
|
- <span v-if="content.secondProperty" style="margin: 0 3px">/</span>
|
|
|
- {{ content.secondProperty && content.secondProperty.name }}
|
|
|
- </el-tag>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- <div :class="['info-type', `info-type-${infoType}`]">
|
|
|
- {{ infoType === "new" ? "新导入" : "已入库" }}
|
|
|
</div>
|
|
|
- </section>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
<script>
|
|
|
import { mapState } from "vuex";
|
|
@@ -197,3 +213,52 @@ export default {
|
|
|
},
|
|
|
};
|
|
|
</script>
|
|
|
+<style lang="scss" scoped>
|
|
|
+.question-info2 {
|
|
|
+ background: #fff;
|
|
|
+ border-radius: 8px;
|
|
|
+ padding-top: 4px;
|
|
|
+ overflow: hidden;
|
|
|
+ &.new {
|
|
|
+ background: #6d5ff6;
|
|
|
+ .card-main {
|
|
|
+ .title {
|
|
|
+ color: #6d5ff6;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .card-main {
|
|
|
+ padding: 0 15px;
|
|
|
+ background: #fff;
|
|
|
+ padding-bottom: 15px;
|
|
|
+ .card-table {
|
|
|
+ border-top: 1px solid #e5e5e5;
|
|
|
+ border-left: 1px solid #e5e5e5;
|
|
|
+ .tr {
|
|
|
+ display: flex;
|
|
|
+
|
|
|
+ .td {
|
|
|
+ width: 122px;
|
|
|
+ padding: 10px;
|
|
|
+ border-bottom: 1px solid #e5e5e5;
|
|
|
+ border-right: 1px solid #e5e5e5;
|
|
|
+ &:first-child {
|
|
|
+ background: #f7f7f7;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
+ &:last-child {
|
|
|
+ flex: 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .title {
|
|
|
+ height: 52px;
|
|
|
+ line-height: 52px;
|
|
|
+ font-size: 16px;
|
|
|
+ color: #262626;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|