ElemFillLine.vue 1.8 KB

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