ElemExplain.vue 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <template>
  2. <div class="elem-explain">
  3. <div v-if="data.showTitle" ref="ElemTitle" class="elem-title">
  4. {{ data.parent.topicName }}
  5. </div>
  6. <div ref="ElemBody" class="elem-body">
  7. <div v-if="data.serialNumber && !data.isExtend" class="elem-explain-no">
  8. {{ data.serialNumber }}、
  9. </div>
  10. <!-- 解答题子元件区域 -->
  11. <div class="elem-explain-elements">
  12. <elem-explain-element
  13. v-for="element in data.elements"
  14. :key="element.id"
  15. :data="element"
  16. ></elem-explain-element>
  17. </div>
  18. </div>
  19. </div>
  20. </template>
  21. <script>
  22. import ElemExplainElement from "./ElemExplainElement";
  23. export default {
  24. name: "ElemExplain",
  25. components: { ElemExplainElement },
  26. props: {
  27. data: {
  28. type: Object,
  29. default() {
  30. return {};
  31. },
  32. },
  33. },
  34. data() {
  35. return {};
  36. },
  37. mounted() {
  38. this.modifyBodyStyle();
  39. },
  40. methods: {
  41. modifyBodyStyle() {
  42. let height = this.data.h;
  43. if (this.data.showTitle) {
  44. height = this.data.h - this.$refs.ElemTitle.clientHeight;
  45. }
  46. this.$refs.ElemBody.style.height = height + "px";
  47. },
  48. },
  49. };
  50. </script>