Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
pro-layout
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
packages
pro-layout
Commits
12d82f90
Commit
12d82f90
authored
May 07, 2020
by
Sendya
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
docs: README update
parent
9e06d375
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
197 additions
and
6 deletions
+197
-6
README.md
README.md
+100
-2
README.zh-CN.md
README.zh-CN.md
+94
-3
BasicLayout.jsx
src/BasicLayout.jsx
+3
-1
No files found.
README.md
View file @
12d82f90
English |
[
简体中文
](
./README.zh-CN.md
)
English |
[
简体中文
](
./README.zh-CN.md
)
<h1
align=
"center"
>
Ant Design Pro Layout
</h1>
<h1
align=
"center"
>
Ant Design Pro Layout
</h1>
## Usage
## Usage
```
bash
```
bash
...
@@ -13,6 +12,7 @@ yarn add @ant-design-vue/pro-layout
...
@@ -13,6 +12,7 @@ yarn add @ant-design-vue/pro-layout
```
jsx
```
jsx
import
ProLayout
from
'@ant-design-vue/pro-layout'
import
ProLayout
from
'@ant-design-vue/pro-layout'
// by jsx
export
default
{
export
default
{
name
:
'BasicLayout'
,
name
:
'BasicLayout'
,
render
()
{
render
()
{
...
@@ -25,6 +25,87 @@ export default {
...
@@ -25,6 +25,87 @@ export default {
}
}
```
```
```
vue
<
template
>
<pro-layout
title=
"Ant Design Pro"
:menus=
"menus"
:collapsed=
"collapsed"
:theme=
"theme"
:layout=
"layout"
:contentWidth=
"contentWidth"
:auto-hide-header=
"autoHideHeader"
:mediaQuery=
"query"
:isMobile=
"isMobile"
:handleMediaQuery=
"handleMediaQuery"
:handleCollapse=
"handleCollapse"
:logo=
"logoRender"
>
<template
v-slot:rightContentRender
>
<div
:class=
"['ant-pro-global-header-index-right', layout === 'topmenu' && `ant-pro-global-header-index-$
{theme}`]">
rightContentRender
</div>
</
template
>
<
template
v-slot:footerRender
>
<div>
footerRender
</div>
</
template
>
<setting-drawer
navTheme=
"dark"
/>
<router-view
/>
</pro-layout>
</template>
<
script
>
// by template
import
ProLayout
,
{
SettingDrawer
}
from
'@ant-design-vue/pro-layout'
import
{
asyncRouterMap
}
from
'../config/router.config'
// import svg file
import
LogoSvg
from
'../assets/logo.svg?inline'
export
default
{
name
:
'BasicLayout'
,
data
()
{
return
{
menus
:
[],
collapsed
:
false
,
autoHideHeader
:
false
,
query
:
{},
layout
:
'sidemenu'
,
contentWidth
:
true
,
theme
:
'dark'
,
isMobile
:
false
}
},
created
()
{
this
.
menus
=
asyncRouterMap
.
find
(
item
=>
item
.
path
===
'/'
).
children
},
methods
:
{
handleMediaQuery
(
query
)
{
this
.
query
=
query
if
(
this
.
isMobile
&&
!
query
[
'screen-xs'
])
{
this
.
isMobile
=
false
return
}
if
(
!
this
.
isMobile
&&
query
[
'screen-xs'
])
{
this
.
isMobile
=
true
this
.
collapsed
=
false
}
},
handleCollapse
(
collapsed
)
{
this
.
collapsed
=
collapsed
},
logoRender
()
{
return
<
LogoSvg
/>
}
},
components
:
{
SettingDrawer
}
}
</
script
>
```
## API
## API
### ProLayout
### ProLayout
...
@@ -34,13 +115,30 @@ export default {
...
@@ -34,13 +115,30 @@ export default {
| title | layout in the upper left corner title | VNode
\|
String |
`'Ant Design Pro'`
|
| title | layout in the upper left corner title | VNode
\|
String |
`'Ant Design Pro'`
|
| logo | layout top left logo url | VNode
\|
render | - |
| logo | layout top left logo url | VNode
\|
render | - |
| loading
`*`
| layout loading status | boolean | - |
| loading
`*`
| layout loading status | boolean | - |
| menuHeaderRender | render logo and title | VNode
\|
(logo,title)=>VNode | - |
| layout | layout menu mode, sidemenu: right navigation, topmenu: top navigation | 'sidemenu'
\|
'topmenu' |
`'sidemenu'`
|
| layout | layout menu mode, sidemenu: right navigation, topmenu: top navigation | 'sidemenu'
\|
'topmenu' |
`'sidemenu'`
|
| contentWidth | content mode of layout, Fluid: fixed width 1200px, Fixed: adaptive | true
\|
false |
`false`
|
| contentWidth | content mode of layout, Fluid: fixed width 1200px, Fixed: adaptive | true
\|
false |
`false`
|
| theme | Navigation menu theme | 'light'
\|
'dark' |
`'dark'`
|
| theme | Navigation menu theme | 'light'
\|
'dark' |
`'dark'`
|
| menus | Vue-router
`routes`
prop | Object |
`[{}]`
|
| menus | Vue-router
`routes`
prop | Object |
`[{}]`
|
| collapsed | control menu's collapse and expansion | boolean | true |
| collapsed | control menu's collapse and expansion | boolean | true |
| isMobile | is mobile | boolean | false |
| handleCollapse | folding collapse event of menu | (collapsed: boolean) => void | - |
| handleCollapse | folding collapse event of menu | (collapsed: boolean) => void | - |
| menuHeaderRender | render logo and title | VNode
\|
(logo,title)=>VNode | - |
| headerRender | custom header render method | (props: BasicLayoutProps) => VNode | - |
| headerRender | custom header render method | (props: BasicLayoutProps) => VNode | - |
| rightContentRender | header right content render method | (props: HeaderViewProps) => VNode | - |
| rightContentRender | header right content render method | (props: HeaderViewProps) => VNode | - |
| collapsedButtonRender | custom collapsed button method | (collapsed: boolean) => VNode | - |
| collapsedButtonRender | custom collapsed button method | (collapsed: boolean) => VNode | - |
| footerRender | custom footer render method | (props: BasicLayoutProps) => VNode | - |
| i18nRender | i18n | Function (key: string) => string | - |
| handleMediaQuery | media matchs callback | (querys:
[]
) => void | - |
| mediaQuery | media matchs | Array | - |
### SettingDrawer
| Property | Description | Type | Default Value |
| ---- | ---- | ---- | ---- |
| navTheme | Theme |
`dark`
`light`
`realDark`
|
`light`
|
| layout | Sider Layout |
`sidemenu`
`topmenu`
|
`sidemenu`
|
| primaryColor | Primary color (
*
development only) |
`#1890ff`
| |
README.zh-CN.md
View file @
12d82f90
English |
[
简体中文
](
./README.zh-CN.md
)
[
English
](
./README.md
)
| 简体中文
<h1
align=
"center"
>
Ant Design Pro Layout
</h1>
<h1
align=
"center"
>
Ant Design Pro Layout
</h1>
## 使用
## 使用
```
bash
```
bash
...
@@ -25,6 +24,84 @@ export default {
...
@@ -25,6 +24,84 @@ export default {
}
}
```
```
```
vue
<
template
>
<pro-layout
title=
"Ant Design Pro"
:menus=
"menus"
:collapsed=
"collapsed"
:theme=
"theme"
:layout=
"layout"
:contentWidth=
"contentWidth"
:auto-hide-header=
"autoHideHeader"
:mediaQuery=
"query"
:isMobile=
"isMobile"
:handleMediaQuery=
"handleMediaQuery"
:handleCollapse=
"handleCollapse"
:logo=
"logoRender"
>
<template
v-slot:rightContentRender
>
<div
:class=
"['ant-pro-global-header-index-right', layout === 'topmenu' && `ant-pro-global-header-index-$
{theme}`]">
rightContentRender
</div>
</
template
>
<
template
v-slot:footerRender
>
<div>
footerRender
</div>
</
template
>
<setting-drawer
navTheme=
"dark"
/>
<router-view
/>
</pro-layout>
</template>
<
script
>
import
ProLayout
,
{
SettingDrawer
}
from
'@ant-design-vue/pro-layout'
import
{
asyncRouterMap
}
from
'../config/router.config'
import
LogoSvg
from
'../assets/logo.svg?inline'
export
default
{
name
:
'BasicLayout'
,
data
()
{
return
{
menus
:
[],
collapsed
:
false
,
autoHideHeader
:
false
,
query
:
{},
layout
:
'sidemenu'
,
contentWidth
:
true
,
theme
:
'dark'
,
isMobile
:
false
}
},
created
()
{
this
.
menus
=
asyncRouterMap
.
find
(
item
=>
item
.
path
===
'/'
).
children
},
methods
:
{
handleMediaQuery
(
query
)
{
this
.
query
=
query
if
(
this
.
isMobile
&&
!
query
[
'screen-xs'
])
{
this
.
isMobile
=
false
return
}
if
(
!
this
.
isMobile
&&
query
[
'screen-xs'
])
{
this
.
isMobile
=
true
this
.
collapsed
=
false
}
},
handleCollapse
(
collapsed
)
{
this
.
collapsed
=
collapsed
},
logoRender
()
{
return
<
LogoSvg
/>
}
},
components
:
{
SettingDrawer
}
}
</
script
>
```
## API
## API
### ProLayout
### ProLayout
...
@@ -40,7 +117,21 @@ export default {
...
@@ -40,7 +117,21 @@ export default {
| theme | 导航的主题 | 'light'
\|
'dark' |
`'dark'`
|
| theme | 导航的主题 | 'light'
\|
'dark' |
`'dark'`
|
| menus | Vue-router
`routes`
属性 | Object |
`[{}]`
|
| menus | Vue-router
`routes`
属性 | Object |
`[{}]`
|
| collapsed | 控制菜单的收起和展开 | boolean | true |
| collapsed | 控制菜单的收起和展开 | boolean | true |
| isMobile | 是否为手机模式 | boolean | false |
| handleCollapse | 菜单的折叠收起事件 | (collapsed: boolean) => void | - |
| handleCollapse | 菜单的折叠收起事件 | (collapsed: boolean) => void | - |
| headerRender | 自定义头的 render 方法 | (props: BasicLayoutProps) => VNode | - |
| headerRender | 自定义头的 render 方法 | (props: BasicLayoutProps) => VNode | - |
| rightContentRender | 自定义头右部的 render 方法 | (props: HeaderViewProps) => VNode | - |
| rightContentRender | 自定义头右部的 render 方法 | (props: HeaderViewProps) => VNode | - |
| collapsedButtonRender | 自定义 collapsed button 的方法 | (collapsed: boolean) => VNode | - |
| collapsedButtonRender | 自定义 侧栏收缩按钮 的方法 | (collapsed: boolean) => VNode | - |
| footerRender | 自定义 底部区域内容 | (props: BasicLayoutProps) => VNode | - |
| i18nRender | 本地化渲染函数 (this.$t) | Function (key: string) => string | - |
| handleMediaQuery | 媒体查询回调 | (querys:
[]
) => void | - |
| mediaQuery | ProLayout 当前的媒体查询 | Array | - |
### SettingDrawer
| Property | Description | Type | Default Value |
| ---- | ---- | ---- | ---- |
| navTheme | 主题 |
`dark`
`light`
`realDark`
|
`light`
|
| layout | 布局模式 |
`sidemenu`
`topmenu`
|
`sidemenu`
|
| primaryColor | 主色调 (
*
仅开发环境生效) |
`#1890ff`
| |
src/BasicLayout.jsx
View file @
12d82f90
...
@@ -70,6 +70,8 @@ const headerRender = (h, props) => {
...
@@ -70,6 +70,8 @@ const headerRender = (h, props) => {
return
<
HeaderView
{
...
{
props
}
}
/>
return
<
HeaderView
{
...
{
props
}
}
/>
}
}
const
defaultI18nRender
=
(
key
)
=>
key
const
BasicLayout
=
{
const
BasicLayout
=
{
name
:
'BasicLayout'
,
name
:
'BasicLayout'
,
functional
:
true
,
functional
:
true
,
...
@@ -84,7 +86,7 @@ const BasicLayout = {
...
@@ -84,7 +86,7 @@ const BasicLayout = {
mediaQuery
,
mediaQuery
,
handleMediaQuery
,
handleMediaQuery
,
handleCollapse
,
handleCollapse
,
i18nRender
i18nRender
=
defaultI18nRender
}
=
props
}
=
props
const
footerRender
=
getComponentFromProp
(
content
,
'footerRender'
)
const
footerRender
=
getComponentFromProp
(
content
,
'footerRender'
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment