Library.vue 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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 } from './library'
  14. import TextCard from '@/components/text/TextCard'
  15. export default {
  16. name: 'Library',
  17. components: {
  18. CardList,
  19. CardMap,
  20. TreeMap,
  21. TextCard
  22. },
  23. metaInfo () {
  24. return {
  25. title: this.groups.length ? 'Bibliothèque - ' + this.groups[0].id : 'Bibliothèque',
  26. meta: [
  27. { charset: 'utf-8' },
  28. { name: 'viewport', content: 'width=device-width, initial-scale=1' }
  29. ]
  30. }
  31. },
  32. props: {
  33. mode: { type: String, required: true },
  34. texts: { type: Array, required: true }
  35. },
  36. computed: {
  37. groups () {
  38. return this.texts.map(text => {
  39. const [id, ...prod] = text
  40. return { id, prod }
  41. })
  42. }
  43. },
  44. methods: {
  45. openText () {
  46. this.$router.push({
  47. query: {
  48. mode: this.mode,
  49. texts: [...this.texts, [50]]
  50. }
  51. })
  52. }
  53. }
  54. }
  55. </script>
  56. <style lang="scss" scoped>
  57. </style>