index.vue 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <template>
  2. <div class="header-box">
  3. <naf-logo :width="logoWidth" :shortName="shortName" :nav-mode="navMode" @switch-mode="switchMode"/>
  4. <naf-nav-bar v-if="navMode == 'nested'" :menu-items="menuItems" />
  5. <naf-lite-bar v-else :menu-collapse="menuCollapse" @toggle-menu="toggleMenu" />
  6. </div>
  7. </template>
  8. <script>
  9. import NafLogo from './logo';
  10. import NafLiteBar from './litebar';
  11. import NafNavBar from './navbar';
  12. export default {
  13. components: {
  14. NafLogo,
  15. NafLiteBar,
  16. NafNavBar,
  17. },
  18. props: {
  19. shortName: String,
  20. logoWidth: {
  21. type: String,
  22. default: '256px',
  23. },
  24. menuCollapse: Boolean,
  25. menuItems: Array,
  26. navMode: String,
  27. },
  28. methods: {
  29. switchMode(payload) {
  30. this.$emit('switch-mode', payload);
  31. },
  32. toggleMenu(payload) {
  33. this.$emit('toggle-menu', payload);
  34. },
  35. },
  36. };
  37. </script>
  38. <style lang="less" scoped>
  39. .header-box {
  40. background: #20a0ff;
  41. color: #fff;
  42. display: flex;
  43. flex-direction: row;
  44. padding: 0;
  45. height: 100%;
  46. }
  47. </style>