App.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <template>
  2. <v-app>
  3. <v-app-bar
  4. app
  5. :color="getAppBarColor()"
  6. dark
  7. clipped-left
  8. >
  9. <v-app-bar-nav-icon @click.stop="drawer = !drawer" />
  10. <div class="d-flex align-center">
  11. <v-toolbar-title>
  12. {{ getTitle() }}
  13. </v-toolbar-title>
  14. </div>
  15. </v-app-bar>
  16. <v-navigation-drawer
  17. app
  18. clipped
  19. v-model="drawer"
  20. >
  21. <v-list
  22. dense
  23. nav
  24. >
  25. <v-list-item
  26. v-for="item in navItems"
  27. :key="item.title"
  28. router
  29. :to="item.to"
  30. >
  31. <v-list-item-icon>
  32. <v-icon>{{ item.icon }}</v-icon>
  33. </v-list-item-icon>
  34. <v-list-item-content>
  35. <v-list-item-title>{{ item.title }}</v-list-item-title>
  36. </v-list-item-content>
  37. </v-list-item>
  38. </v-list>
  39. </v-navigation-drawer>
  40. <v-content>
  41. <router-view />
  42. </v-content>
  43. </v-app>
  44. </template>
  45. <script>
  46. import { mapGetters } from "vuex"
  47. export default {
  48. name: "App",
  49. components: {},
  50. data: () => ({
  51. drawer: null,
  52. navItems: [
  53. { title: "Home", icon: "mdi-home", to: "/"},
  54. { title: "Console", icon: "mdi-console-line", to: "/telws/" },
  55. ]
  56. }),
  57. computed: {
  58. ...mapGetters(["getAppBarColor", "getTitle"])
  59. }
  60. };
  61. </script>