index.vue 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <template>
  2. <!--浮动布局 -->
  3. <div
  4. class="vab-layout-float"
  5. :class="{
  6. fixed: fixedHeader,
  7. 'no-tabs-bar': !showTabs,
  8. }">
  9. <vab-side-bar layout="float" />
  10. <div class="vab-main">
  11. <div
  12. class="vab-layout-header"
  13. :class="{
  14. 'fixed-header': fixedHeader,
  15. }">
  16. <vab-nav layout="float" />
  17. <vab-tabs v-show="showTabs" />
  18. </div>
  19. <vab-app-main />
  20. </div>
  21. </div>
  22. </template>
  23. <script>
  24. import { mapActions } from 'vuex'
  25. export default {
  26. name: 'VabLayoutFloat',
  27. props: {
  28. fixedHeader: {
  29. type: Boolean,
  30. default() {
  31. return true
  32. },
  33. },
  34. showTabs: {
  35. type: Boolean,
  36. default() {
  37. return true
  38. },
  39. },
  40. },
  41. created() {
  42. //浮动布局不允许合并展开
  43. this.foldSideBar()
  44. },
  45. destroyed() {
  46. this.openSideBar()
  47. },
  48. methods: {
  49. ...mapActions({
  50. foldSideBar: 'settings/foldSideBar',
  51. openSideBar: 'settings/openSideBar',
  52. }),
  53. },
  54. }
  55. </script>
  56. <style lang="scss" scoped>
  57. .vab-layout-float {
  58. .vab-main {
  59. margin-left: $base-left-menu-width-min;
  60. .fixed-header {
  61. left: $base-left-menu-width-min;
  62. width: calc(100% - #{$base-left-menu-width-min});
  63. }
  64. }
  65. ::v-deep {
  66. .el-menu--collapse.el-menu li.el-submenu.is-active {
  67. .el-submenu__title {
  68. background-color: transparent !important;
  69. }
  70. > .el-submenu__title {
  71. background-color: $base-color-blue !important;
  72. }
  73. }
  74. .vab-menu-children-height {
  75. height: auto !important;
  76. }
  77. .el-menu {
  78. &--vertical {
  79. .el-menu--popup-right-start {
  80. width: 335px !important;
  81. .el-submenu__title,
  82. .el-menu-item {
  83. float: left;
  84. width: 160px;
  85. min-width: 160px;
  86. margin: 0 0 5px 5px;
  87. border-radius: $base-border-radius;
  88. }
  89. /* .el-submenu__title:nth-child(even),
  90. .el-menu-item:nth-child(even) {
  91. margin: 5px;
  92. } */
  93. }
  94. }
  95. }
  96. }
  97. }
  98. </style>