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
d8db40df
Commit
d8db40df
authored
Aug 24, 2021
by
Sendya
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: menu extra slots
parent
630b659e
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
75 additions
and
17 deletions
+75
-17
App.vue
examples/App.vue
+1
-1
BasicLayout.vue
examples/layouts/BasicLayout.vue
+41
-3
main.ts
examples/main.ts
+2
-2
page2.vue
examples/views/page2.vue
+17
-4
package.json
package.json
+1
-1
BasicLayout.tsx
src/BasicLayout.tsx
+5
-1
SiderMenu.tsx
src/SiderMenu/SiderMenu.tsx
+7
-2
index.less
src/SiderMenu/index.less
+1
-3
No files found.
examples/App.vue
View file @
d8db40df
<
template
>
<
template
>
<a-config-provider
:get-popup-container=
"getPopupContainer"
>
<a-config-provider>
<router-view
/>
<router-view
/>
</a-config-provider>
</a-config-provider>
</
template
>
</
template
>
...
...
examples/layouts/BasicLayout.vue
View file @
d8db40df
...
@@ -15,7 +15,13 @@
...
@@ -15,7 +15,13 @@
</
template
>
</
template
>
<!-- custom right-content -->
<!-- custom right-content -->
<
template
#
rightContentRender
>
<
template
#
rightContentRender
>
<span
style=
"color: #0f0; margin-right: 12px"
><a-avatar
/></span>
<div
style=
"margin-right: 12px"
>
<a-avatar
shape=
"square"
size=
"small"
>
<template
#
icon
>
<UserOutlined
/>
</
template
>
</a-avatar>
</div>
</template>
</template>
<!-- custom breadcrumb itemRender -->
<!-- custom breadcrumb itemRender -->
<
template
#
breadcrumbRender=
"{ route, params, routes }"
>
<
template
#
breadcrumbRender=
"{ route, params, routes }"
>
...
@@ -26,6 +32,35 @@
...
@@ -26,6 +32,35 @@
{{
route
.
breadcrumbName
}}
{{
route
.
breadcrumbName
}}
</router-link>
</router-link>
</
template
>
</
template
>
<
template
#
menuExtraRender=
"{ collapsed }"
>
<a-input-search
v-if=
"!collapsed"
/>
</
template
>
<
template
#
menuFooterRender
>
<a
:style=
"
{
lineHeight: '48rpx',
display: 'flex',
height: '48px',
alignItems: 'center',
}"
href="https://preview.pro.antdv.com/dashboard/analysis"
target="_blank"
rel="noreferrer"
>
<img
alt=
"pro-logo"
src=
"https://procomponents.ant.design/favicon.ico"
:style=
"
{
width: '16px',
height: '16px',
margin: '0 16px',
marginRight: '10px',
}"
/>
<span
v-if=
"!baseState.collapsed"
>
Preview Pro
</span>
</a>
</
template
>
<!-- content begin -->
<!-- content begin -->
<router-view
/>
<router-view
/>
<!-- content end -->
<!-- content end -->
...
@@ -58,7 +93,7 @@
...
@@ -58,7 +93,7 @@
<
script
lang=
"ts"
>
<
script
lang=
"ts"
>
import
{
computed
,
defineComponent
,
reactive
,
ref
,
watchEffect
}
from
'vue'
;
import
{
computed
,
defineComponent
,
reactive
,
ref
,
watchEffect
}
from
'vue'
;
import
{
useRouter
}
from
'vue-router'
;
import
{
useRouter
}
from
'vue-router'
;
import
{
Button
,
Switch
,
Select
,
Avatar
,
Space
,
Badge
,
Menu
}
from
'ant-design-vue'
;
import
{
Button
,
Input
,
Switch
,
Select
,
Avatar
,
Space
,
Badge
}
from
'ant-design-vue'
;
import
{
getMenuData
,
clearMenuItem
,
FooterToolbar
}
from
'@ant-design-vue/pro-layout'
;
import
{
getMenuData
,
clearMenuItem
,
FooterToolbar
}
from
'@ant-design-vue/pro-layout'
;
import
type
{
RouteContextProps
}
from
'@ant-design-vue/pro-layout'
;
import
type
{
RouteContextProps
}
from
'@ant-design-vue/pro-layout'
;
...
@@ -69,6 +104,8 @@ export default defineComponent({
...
@@ -69,6 +104,8 @@ export default defineComponent({
components
:
{
components
:
{
FooterToolbar
,
FooterToolbar
,
[
Button
.
name
]:
Button
,
[
Button
.
name
]:
Button
,
[
Input
.
name
]:
Input
,
[
Input
.
Search
.
name
]:
Input
.
Search
,
[
Switch
.
name
]:
Switch
,
[
Switch
.
name
]:
Switch
,
[
Select
.
name
]:
Select
,
[
Select
.
name
]:
Select
,
[
Select
.
Option
.
displayName
!
]:
Select
.
Option
,
[
Select
.
Option
.
displayName
!
]:
Select
.
Option
,
...
@@ -96,7 +133,8 @@ export default defineComponent({
...
@@ -96,7 +133,8 @@ export default defineComponent({
// title: 'ProLayout',
// title: 'ProLayout',
// logo: 'https://alicdn.antdv.com/v2/assets/logo.1ef800a8.svg',
// logo: 'https://alicdn.antdv.com/v2/assets/logo.1ef800a8.svg',
navTheme
:
'dark'
,
navTheme
:
'dark'
,
layout
:
'mix'
,
layout
:
'side'
,
fixSiderbar
:
true
,
});
});
const
breadcrumb
=
computed
(()
=>
const
breadcrumb
=
computed
(()
=>
router
.
currentRoute
.
value
.
matched
.
concat
().
map
(
item
=>
{
router
.
currentRoute
.
value
.
matched
.
concat
().
map
(
item
=>
{
...
...
examples/main.ts
View file @
d8db40df
import
'ant-design-vue/es/style'
;
import
'ant-design-vue/es/style'
;
import
{
ConfigProvider
}
from
'ant-design-vue'
;
import
{
ConfigProvider
,
Button
}
from
'ant-design-vue'
;
import
{
createApp
}
from
'vue'
;
import
{
createApp
}
from
'vue'
;
import
router
from
'./router'
;
import
router
from
'./router'
;
import
icons
from
'./icons'
;
import
icons
from
'./icons'
;
import
App
from
'./App.vue'
;
import
App
from
'./App.vue'
;
// import '../dist/style.less';
import
ProLayout
,
{
PageContainer
}
from
'../src'
;
// '../dist/pro-layout.es';
import
ProLayout
,
{
PageContainer
}
from
'../src'
;
// '../dist/pro-layout.es';
const
app
=
createApp
(
App
);
const
app
=
createApp
(
App
);
app
.
use
(
router
);
app
.
use
(
router
);
app
.
use
(
icons
);
app
.
use
(
icons
);
app
.
use
(
ConfigProvider
);
app
.
use
(
ConfigProvider
);
app
.
use
(
Button
);
app
.
use
(
ProLayout
);
app
.
use
(
ProLayout
);
app
.
use
(
PageContainer
);
app
.
use
(
PageContainer
);
app
.
mount
(
'#app'
);
app
.
mount
(
'#app'
);
examples/views/page2.vue
View file @
d8db40df
...
@@ -4,20 +4,33 @@
...
@@ -4,20 +4,33 @@
<a-tag>
tag1
</a-tag>
<a-tag>
tag1
</a-tag>
<a-tag
color=
"pink"
>
tag2
</a-tag>
<a-tag
color=
"pink"
>
tag2
</a-tag>
</
template
>
</
template
>
<span>
page2
</span>
<a-result
status=
"404"
:style=
"{
height: '100%',
background: '#fff',
}"
title=
"Hello World"
sub-title=
"Sorry, you are not authorized to access this page."
>
<
template
#
extra
>
<a-button
type=
"primary"
>
Back Home
</a-button>
</
template
>
</a-result>
</PageContainer>
</PageContainer>
</template>
</template>
<
script
lang=
"ts"
>
<
script
lang=
"ts"
>
import
{
defineComponent
}
from
'vue'
;
import
{
defineComponent
}
from
'vue'
;
import
{
Tag
}
from
'ant-design-vue'
;
import
{
Tag
,
Result
}
from
'ant-design-vue'
;
export
default
defineComponent
({
export
default
defineComponent
({
components
:
{
components
:
{
[
Tag
.
name
]:
Tag
,
[
Tag
.
name
]:
Tag
,
[
Result
.
name
]:
Result
,
},
},
setup
()
{
setup
()
{
return
{}
return
{}
;
},
},
})
})
;
</
script
>
</
script
>
package.json
View file @
d8db40df
{
{
"name"
:
"@ant-design-vue/pro-layout"
,
"name"
:
"@ant-design-vue/pro-layout"
,
"version"
:
"3.1.0-
alpha.10
"
,
"version"
:
"3.1.0-
beta.1
"
,
"license"
:
"
MIT
"
,
"license"
:
"
MIT
"
,
"files"
:
[
"files"
:
[
"dist"
,
"dist"
,
...
...
src/BasicLayout.tsx
View file @
d8db40df
...
@@ -188,7 +188,9 @@ const ProLayout = defineComponent({
...
@@ -188,7 +188,9 @@ const ProLayout = defineComponent({
const
headerContentRender
=
getPropsSlot
(
slots
,
props
,
'headerContentRender'
);
const
headerContentRender
=
getPropsSlot
(
slots
,
props
,
'headerContentRender'
);
const
rightContentRender
=
getPropsSlot
(
slots
,
props
,
'rightContentRender'
);
const
rightContentRender
=
getPropsSlot
(
slots
,
props
,
'rightContentRender'
);
const
customHeaderRender
=
getPropsSlot
(
slots
,
props
,
'headerRender'
);
const
customHeaderRender
=
getPropsSlot
(
slots
,
props
,
'headerRender'
);
const
menuHeaderRender
=
getPropsSlot
(
slots
,
props
,
'menuHeaderRender'
);
const
menuHeaderRender
=
getPropsSlotfn
(
slots
,
props
,
'menuHeaderRender'
);
const
menuExtraRender
=
getPropsSlotfn
(
slots
,
props
,
'menuExtraRender'
);
const
menuFooterRender
=
getPropsSlotfn
(
slots
,
props
,
'menuFooterRender'
);
const
footerRender
=
getPropsSlot
(
slots
,
props
,
'footerRender'
);
const
footerRender
=
getPropsSlot
(
slots
,
props
,
'footerRender'
);
// menu render
// menu render
const
menuItemRender
=
getPropsSlotfn
(
slots
,
props
,
'menuItemRender'
);
const
menuItemRender
=
getPropsSlotfn
(
slots
,
props
,
'menuItemRender'
);
...
@@ -235,6 +237,8 @@ const ProLayout = defineComponent({
...
@@ -235,6 +237,8 @@ const ProLayout = defineComponent({
{
...
menuRenders
}
{
...
menuRenders
}
isMobile=
{
isMobile
.
value
}
isMobile=
{
isMobile
.
value
}
menuHeaderRender=
{
menuHeaderRender
}
menuHeaderRender=
{
menuHeaderRender
}
menuExtraRender=
{
menuExtraRender
}
menuFooterRender=
{
menuFooterRender
}
collapsedButtonRender=
{
collapsedButtonRender
}
collapsedButtonRender=
{
collapsedButtonRender
}
onCollapse=
{
onCollapse
}
onCollapse=
{
onCollapse
}
onSelect=
{
onSelect
}
onSelect=
{
onSelect
}
...
...
src/SiderMenu/SiderMenu.tsx
View file @
d8db40df
...
@@ -267,8 +267,13 @@ const SiderMenu: FC<SiderMenuProps> = (props: SiderMenuProps) => {
...
@@ -267,8 +267,13 @@ const SiderMenu: FC<SiderMenuProps> = (props: SiderMenuProps) => {
{
headerDom
}
{
headerDom
}
</
div
>
</
div
>
)
}
)
}
{
extraDom
&&
(
{
extraDom
&&
!
props
.
collapsed
&&
(
<
div
class=
{
`${baseClassName}-extra ${!headerDom && `
$
{
baseClassName
}
-
extra
-
no
-
logo
`}`
}
>
<
div
class=
{
{
[
`${baseClassName}-extra`
]:
true
,
[
`${baseClassName}-extra-no-logo`
]:
!
headerDom
,
}
}
>
{
extraDom
}
{
extraDom
}
</
div
>
</
div
>
)
}
)
}
...
...
src/SiderMenu/index.less
View file @
d8db40df
...
@@ -9,9 +9,7 @@
...
@@ -9,9 +9,7 @@
background-color: @layout-sider-background;
background-color: @layout-sider-background;
border-right: 0;
border-right: 0;
box-shadow: 2px 0 8px 0 rgba(29, 35, 41, 0.05);
box-shadow: 2px 0 8px 0 rgba(29, 35, 41, 0.05);
transition: background-color 0.3s
transition: all 0.2s;
/* , min-width 0.3s,
max-width 0.3s cubic-bezier(0.645, 0.045, 0.355, 1) */;
z-index: 100;
z-index: 100;
&.@{ant-prefix}-menu-vertical .@{ant-prefix}-menu-item:not(:last-child),
&.@{ant-prefix}-menu-vertical .@{ant-prefix}-menu-item:not(:last-child),
...
...
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