bankInfo.vue 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. <template>
  2. <div id="bankInfo">
  3. <el-dialog
  4. :visible.sync="dialogCG"
  5. width="660px"
  6. :show-close="false"
  7. :close-on-click-modal="false"
  8. >
  9. <div slot="title" class="hearders">
  10. <div class="leftTitle">预览题目</div>
  11. <div class="rightBoxs">
  12. <img
  13. src="@/assets/images/Close@2x.png"
  14. alt=""
  15. @click="dialogCG = false"
  16. />
  17. </div>
  18. </div>
  19. <div>
  20. <el-form label-width="80px">
  21. <el-form-item label="题目类型">
  22. <span v-if="listData.type === 1">单选题</span>
  23. <span v-if="listData.type === 2">多选题</span>
  24. <span v-if="listData.type === 3">判断题</span>
  25. <span v-if="listData.type === 4">案例题</span>
  26. <span v-if="listData.type === 5">简答题</span>
  27. </el-form-item>
  28. <el-form-item label="题目标题">
  29. <div v-html="listData.content"></div>
  30. </el-form-item>
  31. <el-form-item v-if="listData.type === 4">
  32. <div v-for="(items, indexs) in listData.jsonStr" :key="indexs">
  33. <div>第{{ indexs + 1 }}题</div>
  34. <el-form-item label="题目类型">
  35. <span v-if="items.type === 1">单选题</span>
  36. <span v-if="items.type === 2">多选题</span>
  37. <span v-if="items.type === 3">判断题</span>
  38. <span v-if="items.type === 5">简答题</span>
  39. </el-form-item>
  40. <el-form-item label="题目标题">
  41. <div v-html="items.content"></div>
  42. </el-form-item>
  43. <el-form-item label="题目选项" v-if="items.type !== 3">
  44. <ul>
  45. <li
  46. v-for="(item, index) in items.optionsList"
  47. :key="index"
  48. class="dis_flex"
  49. >
  50. <span>{{ index + 1 }}:</span>
  51. <span>{{ item.content }}</span>
  52. <img
  53. v-if="item.imgUrl"
  54. style="width: 50px; height: 50px"
  55. :src="$methodsTools.splitImgHost(item.imgUrl)"
  56. alt=""
  57. />
  58. </li>
  59. </ul>
  60. </el-form-item>
  61. <el-form-item label="正确选项">
  62. <span v-if="items.type === 3">{{
  63. items.answerQuestion == 1
  64. ? "正确"
  65. : items.answerQuestion == 0
  66. ? "错误"
  67. : ""
  68. }}</span>
  69. <span v-else>{{ items.answerQuestion }}</span>
  70. </el-form-item>
  71. <el-form-item label="答案解析">
  72. <div v-html="items.analysisContent"></div>
  73. </el-form-item>
  74. </div>
  75. </el-form-item>
  76. <div v-else>
  77. <el-form-item label="题目选项" v-if="listData.type !== 3">
  78. <ul>
  79. <li
  80. v-for="(item, index) in listData.jsonStr"
  81. :key="index"
  82. class="dis_flex"
  83. >
  84. <span>{{ index + 1 }}:</span>
  85. <span>{{ item.content }}</span>
  86. <img
  87. v-if="item.imgUrl"
  88. style="width: 50px; height: 50px"
  89. :src="$methodsTools.splitImgHost(item.imgUrl)"
  90. alt=""
  91. />
  92. </li>
  93. </ul>
  94. </el-form-item>
  95. <el-form-item label="正确选项">
  96. <span v-if="listData.type === 3">{{
  97. listData.answerQuestion == 1
  98. ? "正确"
  99. : listData.answerQuestion == 0
  100. ? "错误"
  101. : ""
  102. }}</span>
  103. <span v-else>{{ listData.answerQuestion }}</span>
  104. </el-form-item>
  105. </div>
  106. <el-form-item label="答案解析">
  107. <div v-html="listData.analysisContent"></div>
  108. </el-form-item>
  109. </el-form>
  110. </div>
  111. <span slot="footer" class="dialog-footer">
  112. <el-button @click="dialogCG = false">返回</el-button>
  113. </span>
  114. </el-dialog>
  115. </div>
  116. </template>
  117. <script>
  118. export default {
  119. data() {
  120. return {
  121. dialogCG: false,
  122. listData: {},
  123. };
  124. },
  125. mounted() {
  126. this.$nextTick(function () {
  127. this.$on("childmethod", function (v) {
  128. this.getInfos(v);
  129. });
  130. });
  131. },
  132. methods: {
  133. getInfos(v) {
  134. this.$api
  135. .inquirebankexamquestionList({ examId: v.examId })
  136. .then((res) => {
  137. if (res.data.length) {
  138. res.data.map((item) => {
  139. item.jsonStr = JSON.parse(item.jsonStr);
  140. });
  141. this.listData = res.data[v.topicNum - 1];
  142. this.dialogCG = true;
  143. }
  144. });
  145. },
  146. },
  147. };
  148. </script>
  149. <style lang="less" scoped>
  150. .dis_flex {
  151. display: flex;
  152. align-items: center;
  153. }
  154. /deep/.el-button {
  155. border-radius: 8px;
  156. }
  157. /deep/.el-dialog {
  158. border-radius: 8px;
  159. .el-dialog__header {
  160. padding: 0;
  161. .hearders {
  162. height: 40px;
  163. display: flex;
  164. align-items: center;
  165. justify-content: space-between;
  166. padding: 0px 18px 0px 20px;
  167. border-bottom: 1px solid #e2e2e2;
  168. .leftTitle {
  169. font-size: 14px;
  170. font-weight: bold;
  171. color: #2f4378;
  172. }
  173. .rightBoxs {
  174. display: flex;
  175. align-items: center;
  176. img {
  177. width: 14px;
  178. height: 14px;
  179. margin-left: 13px;
  180. cursor: pointer;
  181. }
  182. }
  183. }
  184. }
  185. .el-dialog__footer {
  186. padding: 0;
  187. .dialog-footer {
  188. padding: 0px 40px;
  189. height: 70px;
  190. border-top: 1px solid #e2e2e2;
  191. display: flex;
  192. align-items: center;
  193. justify-content: flex-end;
  194. }
  195. }
  196. }
  197. .imgBox {
  198. width: 100%;
  199. // height: 210px;
  200. border: 1px solid #e2e2e2;
  201. border-radius: 8px;
  202. padding: 8px 8px 3px;
  203. display: flex;
  204. flex-direction: column;
  205. align-items: center;
  206. .imgLabel {
  207. flex: 1;
  208. width: 100%;
  209. border: 1px dotted #e2e2e2;
  210. color: #999;
  211. font-size: 14px;
  212. cursor: pointer;
  213. border-radius: 8px;
  214. .msPhoto {
  215. display: flex;
  216. justify-content: center;
  217. align-items: center;
  218. max-width: 100%;
  219. max-height: 270px;
  220. img {
  221. max-width: 100%;
  222. max-height: 270px;
  223. }
  224. }
  225. .imgbbx {
  226. display: flex;
  227. flex-direction: column;
  228. align-items: center;
  229. justify-content: center;
  230. width: 100%;
  231. height: 100%;
  232. i {
  233. font-weight: bold;
  234. margin: 14px 0;
  235. font-size: 24px;
  236. }
  237. }
  238. }
  239. p {
  240. margin: 5px 0px;
  241. }
  242. }
  243. </style>