poc_tree_select_input.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <template>
  2. <div class="pa-4">
  3. <h2>Select Hiérarchique - Exemple de base</h2>
  4. <UiInputTreeSelect
  5. ref="treeSelect"
  6. v-model="selectedValues"
  7. :items="hierarchicalItems"
  8. label="Choisissez vos options"
  9. placeholder="Sélectionnez des éléments..."
  10. :max-visible-chips="2"
  11. />
  12. <div class="mt-4">
  13. <h3>Valeurs sélectionnées :</h3>
  14. <pre>{{ selectedValues }}</pre>
  15. </div>
  16. <v-divider class="my-6" />
  17. <h2>Select Hiérarchique - Catégories d'événements</h2>
  18. <UiInputTreeSelectEventCategories
  19. v-model="selectedCategories"
  20. label="Choisissez des catégories"
  21. placeholder="Sélectionnez des catégories..."
  22. :max-visible-chips="3"
  23. />
  24. <div class="mt-4">
  25. <h3>Catégories sélectionnées :</h3>
  26. <pre>{{ selectedCategories }}</pre>
  27. </div>
  28. </div>
  29. </template>
  30. <script setup lang="ts">
  31. const selectedValues = ref<string[]>([])
  32. const selectedCategories = ref<string[]>([])
  33. const hierarchicalItems = ref([
  34. // Catégories principales
  35. { id: 'cat1', label: 'Électronique', type: 'category', level: 0 },
  36. { id: 'cat2', label: 'Vêtements', type: 'category', level: 0 },
  37. // Sous-catégories d'Électronique
  38. {
  39. id: 'subcat1',
  40. label: 'Ordinateurs',
  41. type: 'subcategory',
  42. parentId: 'cat1',
  43. level: 1,
  44. },
  45. {
  46. id: 'subcat2',
  47. label: 'Téléphones',
  48. type: 'subcategory',
  49. parentId: 'cat1',
  50. level: 1,
  51. },
  52. // Items sous Ordinateurs
  53. {
  54. id: 'item1',
  55. label: 'Laptop Gaming',
  56. value: 'laptop-gaming',
  57. type: 'item',
  58. parentId: 'subcat1',
  59. level: 2,
  60. },
  61. {
  62. id: 'item2',
  63. label: 'Laptop Bureau',
  64. value: 'laptop-office',
  65. type: 'item',
  66. parentId: 'subcat1',
  67. level: 2,
  68. },
  69. {
  70. id: 'item3',
  71. label: 'PC Desktop',
  72. value: 'pc-desktop',
  73. type: 'item',
  74. parentId: 'subcat1',
  75. level: 2,
  76. },
  77. // Items sous Téléphones
  78. {
  79. id: 'item4',
  80. label: 'iPhone',
  81. value: 'iphone',
  82. type: 'item',
  83. parentId: 'subcat2',
  84. level: 2,
  85. },
  86. {
  87. id: 'item5',
  88. label: 'Android',
  89. value: 'android',
  90. type: 'item',
  91. parentId: 'subcat2',
  92. level: 2,
  93. },
  94. // Sous-catégories de Vêtements
  95. {
  96. id: 'subcat3',
  97. label: 'Homme',
  98. type: 'subcategory',
  99. parentId: 'cat2',
  100. level: 1,
  101. },
  102. {
  103. id: 'subcat4',
  104. label: 'Femme',
  105. type: 'subcategory',
  106. parentId: 'cat2',
  107. level: 1,
  108. },
  109. // Items sous Homme
  110. {
  111. id: 'item6',
  112. label: 'Chemises',
  113. value: 'chemises-homme',
  114. type: 'item',
  115. parentId: 'subcat3',
  116. level: 2,
  117. },
  118. {
  119. id: 'item7',
  120. label: 'Pantalons',
  121. value: 'pantalons-homme',
  122. type: 'item',
  123. parentId: 'subcat3',
  124. level: 2,
  125. },
  126. // Items sous Femme
  127. {
  128. id: 'item8',
  129. label: 'Robes',
  130. value: 'robes',
  131. type: 'item',
  132. parentId: 'subcat4',
  133. level: 2,
  134. },
  135. {
  136. id: 'item9',
  137. label: 'Blouses',
  138. value: 'blouses',
  139. type: 'item',
  140. parentId: 'subcat4',
  141. level: 2,
  142. },
  143. ])
  144. </script>