poc_tree_select_input.vue 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <template>
  2. <div class="pa-4">
  3. <h2>Select Hiérarchique - Exemple de base</h2>
  4. <UiInputTreeSelect
  5. v-model="selectedValues"
  6. :items="hierarchicalItems"
  7. label="Choisissez vos options"
  8. placeholder="Sélectionnez des éléments..."
  9. :max-visible-chips="2"
  10. ref="treeSelect"
  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"></v-divider>
  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. { id: 'subcat1', label: 'Ordinateurs', type: 'subcategory', parentId: 'cat1', level: 1 },
  39. { id: 'subcat2', label: 'Téléphones', type: 'subcategory', parentId: 'cat1', level: 1 },
  40. // Items sous Ordinateurs
  41. { id: 'item1', label: 'Laptop Gaming', value: 'laptop-gaming', type: 'item', parentId: 'subcat1', level: 2 },
  42. { id: 'item2', label: 'Laptop Bureau', value: 'laptop-office', type: 'item', parentId: 'subcat1', level: 2 },
  43. { id: 'item3', label: 'PC Desktop', value: 'pc-desktop', type: 'item', parentId: 'subcat1', level: 2 },
  44. // Items sous Téléphones
  45. { id: 'item4', label: 'iPhone', value: 'iphone', type: 'item', parentId: 'subcat2', level: 2 },
  46. { id: 'item5', label: 'Android', value: 'android', type: 'item', parentId: 'subcat2', level: 2 },
  47. // Sous-catégories de Vêtements
  48. { id: 'subcat3', label: 'Homme', type: 'subcategory', parentId: 'cat2', level: 1 },
  49. { id: 'subcat4', label: 'Femme', type: 'subcategory', parentId: 'cat2', level: 1 },
  50. // Items sous Homme
  51. { id: 'item6', label: 'Chemises', value: 'chemises-homme', type: 'item', parentId: 'subcat3', level: 2 },
  52. { id: 'item7', label: 'Pantalons', value: 'pantalons-homme', type: 'item', parentId: 'subcat3', level: 2 },
  53. // Items sous Femme
  54. { id: 'item8', label: 'Robes', value: 'robes', type: 'item', parentId: 'subcat4', level: 2 },
  55. { id: 'item9', label: 'Blouses', value: 'blouses', type: 'item', parentId: 'subcat4', level: 2 },
  56. ])
  57. </script>