CardList.vue 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <template>
  2. <div class="h-100 position-absolute overflow-auto">
  3. <div v-for="(parents, char) in orderedParents" :key="char">
  4. <h3>{{ char }}</h3>
  5. <b-card-group deck>
  6. <text-mini-card
  7. v-for="parent in parents" :key="parent.id"
  8. :id="parent.id"
  9. :text-data="parent"
  10. @click.native="$emit('open', parent.id)"
  11. />
  12. </b-card-group>
  13. </div>
  14. </div>
  15. </template>
  16. <script>
  17. import { mapGetters } from 'vuex'
  18. import TextMiniCard from '@/components/text/TextMiniCard'
  19. export default {
  20. name: 'CardList',
  21. components: {
  22. TextMiniCard
  23. },
  24. computed: {
  25. ...mapGetters(['orderedParents'])
  26. },
  27. created () {
  28. this.$store.dispatch('GET_TEXTS_DEPART')
  29. }
  30. }
  31. </script>
  32. <style lang="scss" scoped>
  33. .card-deck {
  34. .card {
  35. flex-basis: auto;
  36. @include media-breakpoint-up(md) {
  37. flex-basis: 50%;
  38. max-width: calc(50% - 30px);
  39. }
  40. @include media-breakpoint-up(lg) {
  41. flex-basis: 33%;
  42. max-width: calc(33.3% - 30px);
  43. }
  44. }
  45. }
  46. </style>