poc_tree_select_input.vue 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <template>
  2. <div class="pa-4">
  3. <h2>Select Hiérarchique</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. </div>
  17. </template>
  18. <script setup lang="ts">
  19. const selectedValues = ref<string[]>([])
  20. const hierarchicalItems = ref([
  21. // Catégories principales
  22. { id: 'cat1', label: 'Électronique', type: 'category', level: 0 },
  23. { id: 'cat2', label: 'Vêtements', type: 'category', level: 0 },
  24. // Sous-catégories d'Électronique
  25. { id: 'subcat1', label: 'Ordinateurs', type: 'subcategory', parentId: 'cat1', level: 1 },
  26. { id: 'subcat2', label: 'Téléphones', type: 'subcategory', parentId: 'cat1', level: 1 },
  27. // Items sous Ordinateurs
  28. { id: 'item1', label: 'Laptop Gaming', value: 'laptop-gaming', type: 'item', parentId: 'subcat1', level: 2 },
  29. { id: 'item2', label: 'Laptop Bureau', value: 'laptop-office', type: 'item', parentId: 'subcat1', level: 2 },
  30. { id: 'item3', label: 'PC Desktop', value: 'pc-desktop', type: 'item', parentId: 'subcat1', level: 2 },
  31. // Items sous Téléphones
  32. { id: 'item4', label: 'iPhone', value: 'iphone', type: 'item', parentId: 'subcat2', level: 2 },
  33. { id: 'item5', label: 'Android', value: 'android', type: 'item', parentId: 'subcat2', level: 2 },
  34. // Sous-catégories de Vêtements
  35. { id: 'subcat3', label: 'Homme', type: 'subcategory', parentId: 'cat2', level: 1 },
  36. { id: 'subcat4', label: 'Femme', type: 'subcategory', parentId: 'cat2', level: 1 },
  37. // Items sous Homme
  38. { id: 'item6', label: 'Chemises', value: 'chemises-homme', type: 'item', parentId: 'subcat3', level: 2 },
  39. { id: 'item7', label: 'Pantalons', value: 'pantalons-homme', type: 'item', parentId: 'subcat3', level: 2 },
  40. // Items sous Femme
  41. { id: 'item8', label: 'Robes', value: 'robes', type: 'item', parentId: 'subcat4', level: 2 },
  42. { id: 'item9', label: 'Blouses', value: 'blouses', type: 'item', parentId: 'subcat4', level: 2 },
  43. ])
  44. </script>