poc_tree_select_input.vue 2.1 KB

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