Header.vue 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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--text" small>fa-home</v-icon></a>
  26. </v-btn>
  27. <LayoutHeaderMenu :menu="properties.webSiteMenu"></LayoutHeaderMenu>
  28. <LayoutHeaderMenu :menu="properties.myAccessesMenu" v-if="properties.hasAccessesMenu"></LayoutHeaderMenu>
  29. <LayoutHeaderMenu :menu="properties.myFamilyMenu" v-if="properties.hasFamilyMenu"></LayoutHeaderMenu>
  30. <LayoutNotification></LayoutNotification>
  31. <LayoutHeaderMenu :menu="properties.configurationMenu" v-if="properties.hasConfigurationMenu"></LayoutHeaderMenu>
  32. <LayoutHeaderMenu :menu="properties.accountMenu" :avatar="true"></LayoutHeaderMenu>
  33. <a class="help ot_dark_grey ot_menu_color--text" href="https://support.opentalent.fr/" target="_blank">{{$t('help_access')}}</a>
  34. </v-app-bar>
  35. </template>
  36. <script lang="ts">
  37. import {defineComponent, reactive, useContext} from '@nuxtjs/composition-api'
  38. import {$useMenu} from "~/use/layout/menu";
  39. export default defineComponent({
  40. setup(props, {emit}) {
  41. const {store, $config} = useContext();
  42. const properties = reactive({
  43. miniVariant: false,
  44. displayedMiniVariant: store.state.profile.access.hasLateralMenu,
  45. hasConfigurationMenu: store.state.profile.access.hasConfigurationMenu,
  46. hasAccessesMenu: store.state.profile.access.hasAccessesMenu,
  47. hasFamilyMenu: store.state.profile.access.hasFamilyMenu,
  48. title: store.state.profile.organization.name,
  49. homeUrl : $config.baseURL_adminLegacy,
  50. webSiteMenu: $useMenu.setUpContext().useWebSiteMenuConstruct(),
  51. myAccessesMenu : $useMenu.setUpContext().useMyAccessesMenuConstruct(),
  52. myFamilyMenu : $useMenu.setUpContext().useMyFamilyMenuConstruct(),
  53. configurationMenu: $useMenu.setUpContext().useConfigurationMenuConstruct(),
  54. accountMenu : $useMenu.setUpContext().useAccountMenuConstruct()
  55. })
  56. const displayedMenu = () => {
  57. properties.miniVariant = !properties.miniVariant
  58. emit('handle-open-menu-click', properties.miniVariant)
  59. }
  60. return {
  61. properties,
  62. displayedMenu
  63. }
  64. }
  65. })
  66. </script>
  67. <style scoped>
  68. .help {
  69. padding: 14px;
  70. padding-bottom: 13px;
  71. font-size: 14px;
  72. text-decoration: none;
  73. }
  74. </style>