MainLayout.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <template>
  2. <q-layout view="lHh lpR fFf">
  3. <!-- <q-layout view="hHh Lpr lFr">-->
  4. <q-header elevated>
  5. <q-toolbar>
  6. <q-btn
  7. flat
  8. dense
  9. round
  10. icon="menu"
  11. aria-label="Menu"
  12. @click="toggleLeftDrawer"
  13. />
  14. <q-tabs align="right">
  15. <q-route-tab to="/spectrum" label="Spectrum" name="spectrum"/>
  16. <q-route-tab to="/nearfield" label="Near-field" name="nearfield"/>
  17. <!-- <q-route-tab to="/farfield" label="Far-field" name="farfield"/>-->
  18. </q-tabs>
  19. </q-toolbar>
  20. </q-header>
  21. <q-drawer
  22. v-model="leftDrawerOpen"
  23. bordered
  24. >
  25. <q-list>
  26. <q-item clickable @click="toggleLeftDrawer">
  27. <q-item-section></q-item-section>
  28. <q-item-section avatar side> <q-icon name="close" /> </q-item-section>
  29. </q-item>
  30. <q-item
  31. clickable
  32. to="/materials"
  33. @click="toggleLeftDrawer"
  34. >
  35. <q-item-section
  36. avatar
  37. >
  38. <q-icon name="o_tune" />
  39. </q-item-section>
  40. <q-item-section>
  41. <q-item-label> Materials
  42. </q-item-label>
  43. </q-item-section>
  44. </q-item>
  45. <q-item
  46. clickable
  47. to="/info"
  48. @click="toggleLeftDrawer"
  49. >
  50. <q-item-section
  51. avatar
  52. >
  53. <q-icon name="o_info" />
  54. </q-item-section>
  55. <q-item-section>
  56. <q-item-label> Info
  57. </q-item-label>
  58. </q-item-section>
  59. </q-item>
  60. <q-separator inset spaced/>
  61. <q-item> <q-item-section> <q-item-label> External links</q-item-label> </q-item-section> </q-item>
  62. <q-item clickable tag="a" target="_blank" href="https://github.com/ovidiopr/scattnlay" >
  63. <q-item-section avatar > <q-icon name="code" /> </q-item-section>
  64. <q-item-section> <q-item-label>Project at GitHub</q-item-label>
  65. <q-item-label caption> Open-source software </q-item-label>
  66. </q-item-section>
  67. </q-item>
  68. <q-item clickable tag="a" target="_blank" href="https://github.com/ovidiopr/scattnlay/issues/new?title=[webapp]" >
  69. <q-item-section avatar > <q-icon name="support" /> </q-item-section>
  70. <q-item-section> <q-item-label>Support</q-item-label>
  71. <q-item-label caption> Requires a GitHub account</q-item-label></q-item-section>
  72. </q-item>
  73. <q-separator inset spaced/>
  74. <q-item class="q-mt-auto">
  75. Last spectrum simulation took {{$store.state.simulationSetup.nmies.spectrum.nmieTotalRunTime.toFixed(2)}} s.
  76. </q-item>
  77. </q-list>
  78. </q-drawer>
  79. <q-page-container>
  80. <!-- <router-view />-->
  81. <router-view v-slot="{ Component }">
  82. <!-- <transition name="fade">-->
  83. <keep-alive>
  84. <component :is="Component" />
  85. </keep-alive>
  86. <!-- </transition>-->
  87. </router-view>
  88. </q-page-container>
  89. </q-layout>
  90. </template>
  91. <script lang="ts">
  92. import { defineComponent, ref } from 'vue'
  93. export default defineComponent({
  94. name: 'MainLayout',
  95. // components: {
  96. // EssentialLink
  97. // },
  98. setup () {
  99. const leftDrawerOpen = ref(false)
  100. return {
  101. leftDrawerOpen,
  102. toggleLeftDrawer () {
  103. leftDrawerOpen.value = !leftDrawerOpen.value
  104. }
  105. }
  106. }
  107. })
  108. </script>