Header.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <template>
  2. <v-app-bar
  3. clipped-left
  4. elevate-on-scroll
  5. dense
  6. fixed
  7. app
  8. class="ot_green ot_white--text"
  9. >
  10. <v-btn
  11. v-if="properties.displayedMiniVariant"
  12. class="menu-btn"
  13. icon
  14. @click.stop="displayedMenu()"
  15. >
  16. <v-icon class="ot_white--text">mdi-menu{{ `${properties.miniVariant ? '' : '-open'}` }}</v-icon>
  17. </v-btn>
  18. <v-toolbar-title v-text="properties.title"/>
  19. <v-spacer/>
  20. <v-btn
  21. elevation="2"
  22. color="ot_warning ot_white--text"
  23. >{{$t('create')}}</v-btn>
  24. <!-- <v-btn icon>-->
  25. <!-- <a class="no-decoration" :href="properties.homeUrl + '/'"><v-icon class="ot_white&#45;&#45;text" small>fa-home</v-icon></a>-->
  26. <!-- </v-btn>-->
  27. <v-btn icon>
  28. <NuxtLink to="/" class="no-decoration"><v-icon class="ot_white--text" small>fa-home</v-icon></NuxtLink>
  29. </v-btn>
  30. <LayoutHeaderMenu :menu="properties.webSiteMenu"></LayoutHeaderMenu>
  31. <LayoutHeaderMenu :menu="properties.myAccessesMenu" v-if="properties.hasAccessesMenu"></LayoutHeaderMenu>
  32. <LayoutHeaderMenu :menu="properties.myFamilyMenu" v-if="properties.hasFamilyMenu"></LayoutHeaderMenu>
  33. <LayoutNotification></LayoutNotification>
  34. <LayoutHeaderMenu :menu="properties.configurationMenu" v-if="properties.hasConfigurationMenu"></LayoutHeaderMenu>
  35. <LayoutHeaderMenu :menu="properties.accountMenu" :avatar="true"></LayoutHeaderMenu>
  36. <a class="help ot_dark_grey ot_menu_color--text" href="https://support.opentalent.fr/" target="_blank">{{$t('help_access')}}</a>
  37. </v-app-bar>
  38. </template>
  39. <script lang="ts">
  40. import {defineComponent, reactive, useContext} from '@nuxtjs/composition-api'
  41. import {$useMenu} from "~/use/layout/menu";
  42. export default defineComponent({
  43. setup(props, {emit}) {
  44. const {store, $config} = useContext();
  45. const properties = reactive({
  46. miniVariant: false,
  47. displayedMiniVariant: store.state.profile.access.hasLateralMenu,
  48. hasConfigurationMenu: store.state.profile.access.hasConfigurationMenu,
  49. hasAccessesMenu: store.state.profile.access.hasAccessesMenu,
  50. hasFamilyMenu: store.state.profile.access.hasFamilyMenu,
  51. title: store.state.profile.organization.name,
  52. homeUrl : $config.baseURL_adminLegacy,
  53. webSiteMenu: $useMenu.setUpContext().useWebSiteMenuConstruct(),
  54. myAccessesMenu : $useMenu.setUpContext().useMyAccessesMenuConstruct(),
  55. myFamilyMenu : $useMenu.setUpContext().useMyFamilyMenuConstruct(),
  56. configurationMenu: $useMenu.setUpContext().useConfigurationMenuConstruct(),
  57. accountMenu : $useMenu.setUpContext().useAccountMenuConstruct()
  58. })
  59. const displayedMenu = () => {
  60. properties.miniVariant = !properties.miniVariant
  61. emit('handle-open-menu-click', properties.miniVariant)
  62. }
  63. return {
  64. properties,
  65. displayedMenu
  66. }
  67. }
  68. })
  69. </script>
  70. <style scoped>
  71. .help {
  72. padding: 14px;
  73. padding-bottom: 13px;
  74. font-size: 14px;
  75. text-decoration: none;
  76. }
  77. </style>