132 lines
3.6 KiB
Vue
132 lines
3.6 KiB
Vue
<docs>
|
||
---
|
||
order: 2
|
||
title:
|
||
zh-CN: 顶部-侧边布局-通栏
|
||
en-US: Header Sider 2
|
||
---
|
||
|
||
## zh-CN
|
||
|
||
同样拥有顶部导航及侧边栏,区别是两边未留边距,多用于应用型的网站。
|
||
|
||
## en-US
|
||
|
||
Both the top navigation and the sidebar, commonly used in application site.
|
||
|
||
</docs>
|
||
<template>
|
||
<a-layout>
|
||
<a-layout-header class="header">
|
||
<div class="logo" />
|
||
<a-menu
|
||
v-model:selectedKeys="selectedKeys1"
|
||
theme="dark"
|
||
mode="horizontal"
|
||
:style="{ lineHeight: '64px' }"
|
||
>
|
||
<a-menu-item key="1">nav 1</a-menu-item>
|
||
<a-menu-item key="2">nav 2</a-menu-item>
|
||
<a-menu-item key="3">nav 3</a-menu-item>
|
||
</a-menu>
|
||
</a-layout-header>
|
||
<a-layout>
|
||
<a-layout-sider width="200" style="background: #fff">
|
||
<a-menu
|
||
v-model:selectedKeys="selectedKeys2"
|
||
v-model:openKeys="openKeys"
|
||
mode="inline"
|
||
:style="{ height: '100%', borderRight: 0 }"
|
||
>
|
||
<a-sub-menu key="sub1">
|
||
<template #title>
|
||
<span>
|
||
<user-outlined />
|
||
subnav 1
|
||
</span>
|
||
</template>
|
||
<a-menu-item key="1">option1</a-menu-item>
|
||
<a-menu-item key="2">option2</a-menu-item>
|
||
<a-menu-item key="3">option3</a-menu-item>
|
||
<a-menu-item key="4">option4</a-menu-item>
|
||
</a-sub-menu>
|
||
<a-sub-menu key="sub2">
|
||
<template #title>
|
||
<span>
|
||
<laptop-outlined />
|
||
subnav 2
|
||
</span>
|
||
</template>
|
||
<a-menu-item key="5">option5</a-menu-item>
|
||
<a-menu-item key="6">option6</a-menu-item>
|
||
<a-menu-item key="7">option7</a-menu-item>
|
||
<a-menu-item key="8">option8</a-menu-item>
|
||
</a-sub-menu>
|
||
<a-sub-menu key="sub3">
|
||
<template #title>
|
||
<span>
|
||
<notification-outlined />
|
||
subnav 3
|
||
</span>
|
||
</template>
|
||
<a-menu-item key="9">option9</a-menu-item>
|
||
<a-menu-item key="10">option10</a-menu-item>
|
||
<a-menu-item key="11">option11</a-menu-item>
|
||
<a-menu-item key="12">option12</a-menu-item>
|
||
</a-sub-menu>
|
||
</a-menu>
|
||
</a-layout-sider>
|
||
<a-layout style="padding: 0 24px 24px">
|
||
<a-breadcrumb style="margin: 16px 0">
|
||
<a-breadcrumb-item>Home</a-breadcrumb-item>
|
||
<a-breadcrumb-item>List</a-breadcrumb-item>
|
||
<a-breadcrumb-item>App</a-breadcrumb-item>
|
||
</a-breadcrumb>
|
||
<a-layout-content
|
||
:style="{ background: '#fff', padding: '24px', margin: 0, minHeight: '280px' }"
|
||
>
|
||
Content
|
||
</a-layout-content>
|
||
</a-layout>
|
||
</a-layout>
|
||
</a-layout>
|
||
</template>
|
||
<script lang="ts">
|
||
import { UserOutlined, LaptopOutlined, NotificationOutlined } from '@ant-design/icons-vue';
|
||
import { defineComponent, ref } from 'vue';
|
||
export default defineComponent({
|
||
components: {
|
||
UserOutlined,
|
||
LaptopOutlined,
|
||
NotificationOutlined,
|
||
},
|
||
setup() {
|
||
return {
|
||
selectedKeys1: ref<string[]>(['2']),
|
||
selectedKeys2: ref<string[]>(['1']),
|
||
collapsed: ref<boolean>(false),
|
||
openKeys: ref<string[]>(['sub1']),
|
||
};
|
||
},
|
||
});
|
||
</script>
|
||
|
||
<style>
|
||
#components-layout-demo-top-side-2 .logo {
|
||
float: left;
|
||
width: 120px;
|
||
height: 31px;
|
||
margin: 16px 24px 16px 0;
|
||
background: rgba(255, 255, 255, 0.3);
|
||
}
|
||
|
||
.ant-row-rtl #components-layout-demo-top-side-2 .logo {
|
||
float: right;
|
||
margin: 16px 0 16px 24px;
|
||
}
|
||
|
||
.site-layout-background {
|
||
background: #fff;
|
||
}
|
||
</style>
|