loulijun2021
2023-01-03 82a759b4c1dc81b0c78e13af19091c5a5012dd84
src/layout/index.vue
@@ -1,20 +1,49 @@
<template>
  <div :class="classObj" class="app-wrapper">
    <div v-if="device==='mobile'&&sidebar.opened" class="drawer-bg" @click="handleClickOutside" />
    <sidebar class="sidebar-container" />
    <div class="main-container">
    <!--    <sidebar-->
    <!--      :class="$store.state.settings.menuIsHorizontal?-->
    <!--        'sidebar-container-sideBarWidthIsMenuHorizontal':-->
    <!--        !$store.state.settings.leftBackgroundColorValue&&sidebar.opened?-->
    <!--          'sidebar-container-leftBackgroundColorValue':-->
    <!--          'sidebar-container'"-->
    <!--    />-->
    <!--1.当为横向菜单时-->
    <sidebar
      v-if="$store.state.settings.menuIsHorizontal"
      class="sidebar-container-sideBarWidthIsMenuHorizontal"
    />
    <!--    2.当为竖向菜单且为深色背景色时-->
    <sidebar
      v-else-if="!$store.state.settings.menuIsHorizontal&&$store.state.settings.leftBackgroundColorValue"
      class="sidebar-container"
    />
    <!--    3.当为竖向菜单且为浅色背景色时-->
    <sidebar
      v-else-if="!$store.state.settings.menuIsHorizontal&&!$store.state.settings.leftBackgroundColorValue"
      :class="sidebar.opened?'sidebar-container-leftBackgroundColorValue':'sidebar-container sidebarContainer'"
    />
    <div
      :class="$store.state.settings.menuIsHorizontal?'main-container-sideBarWidthIsMenuHorizontal': 'main-container'"
    >
      <div :class="{'fixed-header':fixedHeader}">
        <navbar />
        <tags-view v-if="needTagsView" />
      </div>
      <app-main />
      <right-panel v-if="showSettings">
        <settings />
      </right-panel>
    </div>
  </div>
</template>
<script>
import { Navbar, Sidebar, AppMain, TagsView } from './components'
import { Navbar, Sidebar, AppMain, TagsView, Settings } from './components'
import ResizeMixin from './mixin/ResizeHandler'
import RightPanel from '@/components/RightPanel'
export default {
  name: 'Layout',
@@ -22,7 +51,9 @@
    Navbar,
    Sidebar,
    AppMain,
    TagsView
    TagsView,
    RightPanel,
    Settings
  },
  mixins: [ResizeMixin],
  computed: {
@@ -37,6 +68,9 @@
    },
    fixedHeader() {
      return this.$store.state.settings.fixedHeader
    },
    showSettings() {
      return this.$store.state.settings.showSettings
    },
    classObj() {
      return {
@@ -56,43 +90,53 @@
</script>
<style lang="scss" scoped>
  @import "~@/styles/mixin.scss";
  @import "~@/styles/variables.scss";
@import "~@/styles/mixin.scss";
@import "~@/styles/variables.scss";
  .app-wrapper {
    @include clearfix;
    position: relative;
    height: 100%;
    width: 100%;
    &.mobile.openSidebar{
      position: fixed;
      top: 0;
    }
  }
  .drawer-bg {
    background: #000;
    opacity: 0.3;
    width: 100%;
    top: 0;
    height: 100%;
    position: absolute;
    z-index: 999;
  }
//@import "~@/styles/element-variables.scss";
  .fixed-header {
.sidebarContainer {
  background-color: #f8f8fa !important;
}
.app-wrapper {
  @include clearfix;
  position: relative;
  height: 100%;
  width: 100%;
  //color: #{$--color-primary};
  //background: #{$--color-primary};
  &.mobile.openSidebar {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 9;
    width: calc(100% - #{$sideBarWidth});
    transition: width 0.28s;
  }
}
  .hideSidebar .fixed-header {
    width: calc(100% - 54px)
  }
.drawer-bg {
  background: #000;
  opacity: 0.3;
  width: 100%;
  top: 0;
  height: 100%;
  position: absolute;
  z-index: 999;
}
  .mobile .fixed-header {
    width: 100%;
  }
.fixed-header {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 9;
  width: calc(100% - #{$sideBarWidth});
  transition: width 0.28s;
}
.hideSidebar .fixed-header {
  width: calc(100% - 54px)
}
.mobile .fixed-header {
  width: 100%;
}
</style>