test.vue 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <template>
  2. <v-app>
  3. <v-app-bar-nav-icon @click="drawer = true">
  4. </v-app-bar-nav-icon>
  5. <v-navigation-drawer v-model="drawer" app>
  6. <v-list nav dense>
  7. <v-list-item v-for="(item, index) in items" :key="item">
  8. <v-list-item-title @click="selectMenu(item)">
  9. {{ item }}
  10. </v-list-item-title>
  11. </v-list-item>
  12. </v-list>
  13. </v-navigation-drawer>
  14. <!-- Tiroir de navigation pour les sous-menus -->
  15. <v-navigation-drawer v-model="subMenuDrawer" app right temporary>
  16. <v-list nav dense>
  17. <!-- Bouton de retour -->
  18. <v-list-item @click="closeSubMenu">
  19. <v-list-item-title>Retour</v-list-item-title>
  20. </v-list-item>
  21. <!-- Éléments du sous-menu -->
  22. <v-list-item
  23. v-for="(subItem, subIndex) in subMenus[currentMenu]"
  24. :key="subIndex"
  25. >
  26. <v-list-item-title>{{ subItem }}</v-list-item-title>
  27. </v-list-item>
  28. </v-list>
  29. </v-navigation-drawer>
  30. <!-- Contenu principal -->
  31. </v-app>
  32. </template>
  33. <script>
  34. export default {
  35. data() {
  36. return {
  37. drawer: false,
  38. subMenuDrawer: false, // État du tiroir de navigation des sous-menus
  39. currentMenu: "",
  40. items: ["web", "shopping", "videos", "images", "news"],
  41. subMenus: {
  42. web: ["Sous-menu Web 1", "Sous-menu Web 2"],
  43. shopping: ["Sous-menu Shopping 1", "Sous-menu Shopping 2"],
  44. // Ajoutez d'autres sous-menus ici
  45. },
  46. };
  47. },
  48. methods: {
  49. selectMenu(item) {
  50. this.currentMenu = item;
  51. this.subMenuDrawer = true; // Ouvre le tiroir de navigation des sous-menus
  52. },
  53. closeSubMenu() {
  54. this.subMenuDrawer = false;
  55. this.drawer = true; // Réouvre le menu principal
  56. },
  57. },
  58. };
  59. </script>
  60. <style scoped>
  61. .nav-menu {
  62. position: absolute;
  63. top: 0;
  64. right: 0;
  65. z-index: 999;
  66. }
  67. </style>