QuestionInfo.vue 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <template>
  2. <section class="question-info">
  3. <el-form :model="quesModel" label-position="left" label-width="80px">
  4. <el-form-item label="题目">
  5. <div
  6. class="paper-question-body padding-top-6"
  7. v-html="quesModel.quesBody"
  8. ></div>
  9. </el-form-item>
  10. <el-form-item
  11. v-for="(quesOption, optIndex) in quesModel.quesOptions"
  12. :key="optIndex"
  13. >
  14. <div class="paper-question-option">
  15. <span>{{ optIndex | optionOrderWordFilter }}. </span>
  16. <span v-html="quesOption.optionBody"></span>
  17. </div>
  18. </el-form-item>
  19. <el-form-item label="答案">
  20. <div
  21. class="paper-question-body padding-top-6"
  22. v-html="quesModel.quesAnswer"
  23. ></div>
  24. </el-form-item>
  25. <div class="line-seperator"></div>
  26. <el-form-item label="题型">
  27. <span>{{ quesModel.questionType | questionType }}</span>
  28. </el-form-item>
  29. <div class="box-justify">
  30. <el-form-item label="预估难度">
  31. <span>{{ quesModel.difficultyDegree || "-" }}</span>
  32. </el-form-item>
  33. <el-form-item label="计算难度" style="width: 120px">
  34. <span>{{ quesModel.calculateDifficultyDegree || "-" }}</span>
  35. </el-form-item>
  36. </div>
  37. <div class="box-justify">
  38. <el-form-item label="区分度">
  39. <span>{{ quesModel.discrimination || "-" }}</span>
  40. </el-form-item>
  41. <el-form-item label="标准差" style="width: 120px">
  42. <span>{{ quesModel.std || "-" }}</span>
  43. </el-form-item>
  44. </div>
  45. <div class="box-justify">
  46. <el-form-item label="信度">
  47. <span>{{ quesModel.reliability || "-" }}</span>
  48. </el-form-item>
  49. <el-form-item label="差异系数" style="width: 120px">
  50. <span>{{ quesModel.cv || "-" }}</span>
  51. </el-form-item>
  52. </div>
  53. <div class="box-justify">
  54. <el-form-item label="平均分值">
  55. <span>{{ quesModel.calculateAvgScore || "-" }}</span>
  56. </el-form-item>
  57. <el-form-item
  58. v-if="infoType == 'right'"
  59. label="重复率"
  60. style="width: 120px"
  61. >
  62. <span>{{ quesModel.duplicateRate || "-" }}</span>
  63. </el-form-item>
  64. </div>
  65. <div class="line-seperator"></div>
  66. <el-form-item label="试题关联属性" label-width="100px">
  67. <el-tooltip
  68. v-for="(content, propIndex) in quesModel.quesProperties"
  69. :key="propIndex"
  70. placement="top"
  71. >
  72. <div slot="content">
  73. <span v-if="content.firstProperty != null"
  74. >一级属性:{{ content.firstProperty.name }}({{
  75. content.firstProperty.code
  76. }})</span
  77. ><br />
  78. <span v-if="content.secondProperty != null"
  79. >二级属性:{{ content.secondProperty.name }}({{
  80. content.secondProperty.code
  81. }})</span
  82. >
  83. </div>
  84. <span>
  85. <el-tag
  86. :key="content.id"
  87. style="margin-right: 5px"
  88. type="primary"
  89. effect="dark"
  90. >
  91. {{ content.courseProperty.name }}
  92. </el-tag>
  93. </span>
  94. </el-tooltip>
  95. </el-form-item>
  96. </el-form>
  97. </section>
  98. </template>
  99. <script>
  100. import { mapState } from "vuex";
  101. export default {
  102. props: {
  103. question: {
  104. type: Object,
  105. default: () => {},
  106. },
  107. infoType: {
  108. type: String,
  109. default: "",
  110. },
  111. },
  112. data() {
  113. return { quesModel: this.question };
  114. },
  115. computed: {
  116. ...mapState({ user: (state) => state.user }),
  117. },
  118. watch: {
  119. question: {
  120. immediate: false,
  121. handler(val) {
  122. this.quesModel = val;
  123. },
  124. },
  125. },
  126. //初始化查询
  127. created() {},
  128. methods: {
  129. isMatchingQuestion(questionType) {
  130. if (
  131. questionType == "PARAGRAPH_MATCHING" ||
  132. questionType == "BANKED_CLOZE"
  133. ) {
  134. return true;
  135. } else {
  136. return false;
  137. }
  138. },
  139. isNested(questionType) {
  140. if (
  141. questionType == "PARAGRAPH_MATCHING" ||
  142. questionType == "BANKED_CLOZE" ||
  143. questionType == "CLOZE" ||
  144. questionType == "READING_COMPREHENSION" ||
  145. questionType == "LISTENING_QUESTION"
  146. ) {
  147. return true;
  148. } else {
  149. return false;
  150. }
  151. },
  152. },
  153. };
  154. </script>