ElemFillLine.vue 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <template>
  2. <div class="elem-fill-line">
  3. <div
  4. class="elem-title"
  5. v-if="data.parent && data.startNumber === data.parent.startNumber"
  6. >
  7. {{ data.parent.topicName }}
  8. </div>
  9. <div class="elem-body" v-if="data.questionDirection === 'vertical'">
  10. <ul
  11. class="elem-fill-quesiton"
  12. v-for="question in data.questionLineNums"
  13. :key="question.no"
  14. :style="groupStyles"
  15. >
  16. <li class="elem-fill-no">
  17. <span :style="lineNoStyles"
  18. >{{ data.numberPre }}{{ question.no }}.</span
  19. >
  20. </li>
  21. <li
  22. class="elem-fill-line"
  23. v-for="line in question.count"
  24. :key="line"
  25. :style="lineStyles"
  26. ></li>
  27. </ul>
  28. </div>
  29. <div v-else class="elem-body">
  30. <ul
  31. class="elem-fill-quesiton"
  32. v-for="line in data.questionLineNums[0].count"
  33. :key="line"
  34. :style="groupStyles"
  35. >
  36. <li v-if="line === 1" class="elem-fill-no">
  37. <span :style="lineNoStyles">
  38. {{ data.numberPre }}{{ data.questionLineNums[0].no }}.
  39. </span>
  40. </li>
  41. <li
  42. v-if="line !== data.questionLineNums[0].count"
  43. class="elem-fill-comma"
  44. :style="lineNoStyles"
  45. >
  46. ,
  47. </li>
  48. <li class="elem-fill-line" :style="lineStyles"></li>
  49. </ul>
  50. </div>
  51. </div>
  52. </template>
  53. <script>
  54. export default {
  55. name: "elem-fill-line",
  56. props: {
  57. data: {
  58. type: Object
  59. }
  60. },
  61. data() {
  62. return {
  63. questions: []
  64. };
  65. },
  66. computed: {
  67. lineStyles() {
  68. return {
  69. height: this.data.lineSpacing + "px"
  70. };
  71. },
  72. lineNoStyles() {
  73. return {
  74. top: this.data.lineSpacing - 4 + "px"
  75. };
  76. },
  77. groupStyles() {
  78. return {
  79. width: 100 / this.data.questionNumberPerLine + "%"
  80. };
  81. }
  82. },
  83. mounted() {},
  84. methods: {}
  85. };
  86. </script>