162 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Vue
		
	
	
	
			
		
		
	
	
			162 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Vue
		
	
	
	
<template>
 | 
						|
  <a-layout id="components-layout-demo-fixed-sider">
 | 
						|
    <a-layout-sider :trigger="null" v-model="collapsed" collapsible>
 | 
						|
      <div class="logo">
 | 
						|
        管理系统
 | 
						|
      </div>
 | 
						|
      <a-menu theme="dark" mode="inline" :default-selected-keys="['4']">
 | 
						|
        <a-menu-item key="1">
 | 
						|
          <a-icon type="user" />
 | 
						|
          <span class="nav-text">nav 1</span>
 | 
						|
        </a-menu-item>
 | 
						|
        <a-menu-item key="2">
 | 
						|
          <a-icon type="video-camera" />
 | 
						|
          <span class="nav-text">nav 2</span>
 | 
						|
        </a-menu-item>
 | 
						|
        <a-menu-item key="3">
 | 
						|
          <a-icon type="upload" />
 | 
						|
          <span class="nav-text">nav 3</span>
 | 
						|
        </a-menu-item>
 | 
						|
        <a-menu-item key="4">
 | 
						|
          <a-icon type="bar-chart" />
 | 
						|
          <span class="nav-text">nav 4</span>
 | 
						|
        </a-menu-item>
 | 
						|
        <a-menu-item key="5">
 | 
						|
          <a-icon type="cloud-o" />
 | 
						|
          <span class="nav-text">nav 5</span>
 | 
						|
        </a-menu-item>
 | 
						|
        <a-menu-item key="6">
 | 
						|
          <a-icon type="appstore-o" />
 | 
						|
          <span class="nav-text">nav 6</span>
 | 
						|
        </a-menu-item>
 | 
						|
        <a-menu-item key="7">
 | 
						|
          <a-icon type="team" />
 | 
						|
          <span class="nav-text">nav 7</span>
 | 
						|
        </a-menu-item>
 | 
						|
        <a-menu-item key="8">
 | 
						|
          <a-icon type="shop" />
 | 
						|
          <span class="nav-text">nav 8</span>
 | 
						|
        </a-menu-item>
 | 
						|
      </a-menu>
 | 
						|
    </a-layout-sider>
 | 
						|
    <a-layout >
 | 
						|
      <a-layout-header
 | 
						|
        style="background: #fff; padding: 0"
 | 
						|
        ref="header"
 | 
						|
        :title="pageTitle"
 | 
						|
        :breadcrumb="{ props: { routes } }"
 | 
						|
      >
 | 
						|
        <div class="header-con">
 | 
						|
 | 
						|
          <a-icon
 | 
						|
            class="trigger"
 | 
						|
            :type="collapsed ? 'menu-unfold' : 'menu-fold'"
 | 
						|
            @click="() => (collapsed = !collapsed)"
 | 
						|
          />
 | 
						|
          <a-icon type="arrow-left" style="font-size: 18px; padding-right: 24px;" />
 | 
						|
          <a-breadcrumb :routes="routes">
 | 
						|
            <template slot="itemRender" slot-scope="{ route, params, routes, paths }">
 | 
						|
        <span v-if="routes.indexOf(route) === routes.length - 1">
 | 
						|
          {{ route.breadcrumbName }}
 | 
						|
        </span>
 | 
						|
              <router-link v-else :to="`/${paths.join('/')}`">
 | 
						|
                {{ route.breadcrumbName }}
 | 
						|
              </router-link>
 | 
						|
            </template>
 | 
						|
          </a-breadcrumb>
 | 
						|
        </div>
 | 
						|
 | 
						|
 | 
						|
      </a-layout-header>
 | 
						|
      <a-layout-content :style="contentStyle">
 | 
						|
        <div :style="containerStyle">
 | 
						|
          <nuxt/>
 | 
						|
        </div>
 | 
						|
      </a-layout-content>
 | 
						|
<!--      <a-layout-footer :style="{ textAlign: 'center' }" ref="footer">
 | 
						|
        Ant Design ©2018 Created by Ant UED
 | 
						|
      </a-layout-footer>-->
 | 
						|
    </a-layout>
 | 
						|
  </a-layout>
 | 
						|
</template>
 | 
						|
 | 
						|
<script>
 | 
						|
export default {
 | 
						|
  name: "manager",
 | 
						|
  data () {
 | 
						|
    return {
 | 
						|
      collapsed: false,
 | 
						|
      headerHeight: 0,
 | 
						|
      footerHeight: 0,
 | 
						|
      routes: [
 | 
						|
        {
 | 
						|
          path: 'index',
 | 
						|
          breadcrumbName: 'First-level Menu',
 | 
						|
        },
 | 
						|
      ],
 | 
						|
      pageTitle: '123'
 | 
						|
    }
 | 
						|
  },
 | 
						|
  computed: {
 | 
						|
    contentStyle () {
 | 
						|
      return {
 | 
						|
        margin: '24px 16px 24px',
 | 
						|
        overflow: 'inherit',
 | 
						|
        height: `calc(100vh - ${this.headerHeight + this.footerHeight + 48}px)`,
 | 
						|
      }
 | 
						|
    },
 | 
						|
    containerStyle () {
 | 
						|
      return {
 | 
						|
        padding: '24px',
 | 
						|
        background: '#fff',
 | 
						|
        textAlign: 'center',
 | 
						|
        height: `100%`,
 | 
						|
        overflow: 'auto',
 | 
						|
      }
 | 
						|
    }
 | 
						|
  },
 | 
						|
  mounted () {
 | 
						|
    this.$nextTick( () => {
 | 
						|
      if (this.$refs.header) {
 | 
						|
        this.headerHeight = this.$refs.header.$el.offsetHeight
 | 
						|
        // this.footerHeight = this.$refs.footer.$el.offsetHeight
 | 
						|
      }
 | 
						|
    })
 | 
						|
  }
 | 
						|
}
 | 
						|
</script>
 | 
						|
 | 
						|
<style scoped lang="less">
 | 
						|
#components-layout-demo-fixed-sider {
 | 
						|
  .header-con {
 | 
						|
    display: flex;
 | 
						|
    justify-content: flex-start;
 | 
						|
    align-items: center;
 | 
						|
  }
 | 
						|
  .trigger:hover {
 | 
						|
    color: #1890ff;
 | 
						|
  }
 | 
						|
  .trigger {
 | 
						|
    font-size: 18px;
 | 
						|
    line-height: 64px;
 | 
						|
    padding: 0 24px;
 | 
						|
    cursor: pointer;
 | 
						|
    transition: color 0.3s;
 | 
						|
  }
 | 
						|
  .logo {
 | 
						|
    width: 80%;
 | 
						|
    padding: 0 10px;
 | 
						|
    height: 31px;
 | 
						|
    background: rgba(255, 255, 255, 0.2);
 | 
						|
    margin: 16px auto 16px;
 | 
						|
    line-height: 31px;
 | 
						|
    text-align: center;
 | 
						|
    color: #fff;
 | 
						|
    font-size: 18px;
 | 
						|
    overflow: inherit;
 | 
						|
 | 
						|
    //
 | 
						|
  }
 | 
						|
}
 | 
						|
</style>
 |