zoukankan      html  css  js  c++  java
  • Element-admin布局页页面说明


    <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="{hasTagsView:needTagsView}" class="main-container"> <div :class="{'fixed-header':fixedHeader}">
    <!--页面面包屑的组件navbar -->
    <navbar />
            <!-- 已经打开的页面标签-->
            <!-- <tags-view v-if="needTagsView" /> -->
          </div>
          <!--页面主要内容-->
          <app-main />
    
          <!--右侧页面全局设定内容 Page style setting-->
          <!-- <right-panel v-if="showSettings">
            <settings /> //设定页的详细内容
          </right-panel> -->
        </div>
      </div>
    </template>
    
    <script>
    import RightPanel from '@/components/RightPanel'
    import { AppMain, Navbar, Settings, Sidebar, TagsView } from './components'
    import ResizeMixin from './mixin/ResizeHandler'
    import { mapState } from 'vuex'
    
    export default {
      name: 'Layout',
      components: {
        AppMain,
        Navbar,
        RightPanel,
        Settings,
        Sidebar,
        TagsView
      },
      mixins: [ResizeMixin],
      computed: {
        ...mapState({
          sidebar: state => state.app.sidebar,
          device: state => state.app.device,
          showSettings: state => state.settings.showSettings,
          needTagsView: state => state.settings.tagsView,
          fixedHeader: state => state.settings.fixedHeader
        }),
        classObj() {
          return {
            hideSidebar: !this.sidebar.opened,
            openSidebar: this.sidebar.opened,
            withoutAnimation: this.sidebar.withoutAnimation,
            mobile: this.device === 'mobile'
          }
        }
      },
      methods: {
        handleClickOutside() {
          this.$store.dispatch('app/closeSideBar', { withoutAnimation: false })
        }
      }
    }
    </script>
    
    <style lang="scss" scoped>
      @import "~@/styles/mixin.scss";
      @import "~@/styles/variables.scss";
    
      .app-wrapper {
        @include clearfix;
        position: relative;
        height: 100%;
         100%;
    
        &.mobile.openSidebar {
          position: fixed;
          top: 0;
        }
      }
    
      .drawer-bg {
        background: #000;
        opacity: 0.3;
         100%;
        top: 0;
        height: 100%;
        position: absolute;
        z-index: 999;
      }
    
      .fixed-header {
        position: fixed;
        top: 0;
        right: 0;
        z-index: 9;
         calc(100% - #{$sideBarWidth});
        transition: width 0.28s;
      }
    
      .hideSidebar .fixed-header {
         calc(100% - 54px)
      }
    
      .mobile .fixed-header {
         100%;
      }
    </style>
    

      

    文件位置:layout/index.vue 
    在熟悉element-admin的框架的时候,注释说明一下 页面布局页的说明
  • 相关阅读:
    两路归并算法
    个性化搜索引擎调研(三)
    编程珠玑开篇磁盘文件排序问题
    Lucene里经常被聊到的几个话题
    成就霸业的座右铭(绝对经典)
    别人对你的态度,决定了你的命运
    iBATIS缓存实现分析[转]
    Taste/Thoth:Taste Architecture 概览【转Beyond Search】
    中文分词算法笔记
    ConcurrentModificationException主要原因及处理方法
  • 原文地址:https://www.cnblogs.com/yanwuming/p/12679610.html
Copyright © 2011-2022 走看看