CardList.vue 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <template>
  2. <div class="card-list">
  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. @open="$emit('open', $event)"
  11. />
  12. </b-card-group>
  13. </div>
  14. </div>
  15. </template>
  16. <script>
  17. // FIXME let events bubble
  18. import { mapGetters } from 'vuex'
  19. import TextMiniCard from '@/components/text/TextMiniCard'
  20. export default {
  21. name: 'CardList',
  22. components: {
  23. TextMiniCard
  24. },
  25. computed: {
  26. ...mapGetters(['orderedParents'])
  27. },
  28. created () {
  29. this.$store.dispatch('GET_TEXTS_DEPART')
  30. }
  31. }
  32. </script>
  33. <style lang="scss" scoped>
  34. .card-list {
  35. overflow: auto;
  36. height: 100%;
  37. }
  38. .card-deck {
  39. .card {
  40. flex-basis: auto;
  41. @include media-breakpoint-up(md) {
  42. flex-basis: 50%;
  43. max-width: calc(50% - 30px);
  44. }
  45. @include media-breakpoint-up(lg) {
  46. flex-basis: 33%;
  47. max-width: calc(33.3% - 30px);
  48. }
  49. }
  50. }
  51. </style>