Library.vue 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <template>
  2. <component-debug :component="this">
  3. <div class="py-3">
  4. <b-button @click="openText">
  5. add text 50
  6. </b-button>
  7. </div>
  8. <component :is="mode" />
  9. <text-card v-for="group in groups" :key="group.id" :id="group.id" />
  10. </component-debug>
  11. </template>
  12. <script>
  13. import { CardList, CardMap, TreeMap, TextCard } from './library'
  14. export default {
  15. name: 'Library',
  16. components: {
  17. CardList,
  18. CardMap,
  19. TreeMap,
  20. TextCard
  21. },
  22. metaInfo () {
  23. return {
  24. title: this.groups.length ? 'Bibliothèque - ' + this.groups[0].id : 'Bibliothèque',
  25. meta: [
  26. { charset: 'utf-8' },
  27. { name: 'viewport', content: 'width=device-width, initial-scale=1' }
  28. ]
  29. }
  30. },
  31. props: {
  32. mode: { type: String, required: true },
  33. texts: { type: Array, required: true }
  34. },
  35. computed: {
  36. groups () {
  37. return this.texts.map(text => {
  38. const [id, ...prod] = text
  39. return { id, prod }
  40. })
  41. }
  42. },
  43. methods: {
  44. openText () {
  45. this.$router.push({
  46. query: {
  47. mode: this.mode,
  48. texts: [...this.texts, [50]]
  49. }
  50. })
  51. }
  52. }
  53. }
  54. </script>
  55. <style lang="scss" scoped>
  56. </style>