test.vue 1.8 KB

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