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
49bf02d3
Commit
49bf02d3
authored
Jun 15, 2021
by
Sendya
Committed by
言肆
Jul 01, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: PageHeader title, menuHeaderRender
parent
ad93e657
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
31 additions
and
9 deletions
+31
-9
package.json
package.json
+1
-1
BasicLayout.tsx
src/BasicLayout.tsx
+9
-2
BaseMenu.tsx
src/SiderMenu/BaseMenu.tsx
+11
-4
SiderMenu.tsx
src/SiderMenu/SiderMenu.tsx
+5
-1
index.ts
src/utils/index.ts
+5
-1
No files found.
package.json
View file @
49bf02d3
{
"name"
:
"@ant-design-vue/pro-layout"
,
"version"
:
"3.0.0-beta.
7
"
,
"version"
:
"3.0.0-beta.
9
"
,
"main"
:
"./lib/index.js"
,
"module"
:
"./es/index.js"
,
"repository"
:
{
...
...
src/BasicLayout.tsx
View file @
49bf02d3
...
...
@@ -71,6 +71,7 @@ const ProLayout = defineComponent({
'openKeys'
,
'select'
,
'menuHeaderClick'
,
'menuClick'
,
],
props
:
basicLayoutProps
,
setup
(
props
,
{
emit
,
slots
})
{
...
...
@@ -96,6 +97,9 @@ const ProLayout = defineComponent({
const
onMenuHeaderClick
=
(
e
:
MouseEvent
)
=>
{
emit
(
'menuHeaderClick'
,
e
);
};
const
onMenuClick
=
(
args
:
any
)
=>
{
emit
(
'menuClick'
,
args
);
};
const
colSize
=
useMediaQuery
();
const
isMobile
=
computed
(
...
...
@@ -170,7 +174,7 @@ const ProLayout = defineComponent({
const
routeContext
=
reactive
({
getPrefixCls
,
...
props
,
//
...props,
locale
:
refProps
.
locale
,
breadcrumb
:
computed
(()
=>
{
return
{
...
...
@@ -191,7 +195,9 @@ const ProLayout = defineComponent({
openKeys
:
refProps
.
openKeys
,
});
const
restProps
=
computed
(()
=>
omit
(
props
,
[
'onCollapse'
,
'onOpenKeys'
,
'onSelect'
]));
const
restProps
=
computed
(()
=>
omit
(
props
,
[
'onCollapse'
,
'onOpenKeys'
,
'onSelect'
,
'onMenuClick'
,
'menuHeaderRender'
]),
);
provide
(
'route-context'
,
routeContext
);
return
()
=>
(
...
...
@@ -209,6 +215,7 @@ const ProLayout = defineComponent({
onCollapse=
{
onCollapse
}
onSelect=
{
onSelect
}
onOpenKeys=
{
onOpenKeys
}
onMenuClick=
{
onMenuClick
}
/>
)
}
<
Layout
style=
{
genLayoutStyle
}
>
...
...
src/SiderMenu/BaseMenu.tsx
View file @
49bf02d3
...
...
@@ -88,6 +88,8 @@ export const baseMenuProps = {
type
:
[
Function
,
Boolean
]
as
PropType
<
CustomMenuRender
[
'subMenuItemRender'
]
>
,
default
:
()
=>
false
,
},
onClick
:
[
Function
,
Object
]
as
PropType
<
(...
args
:
any
)
=>
void
>
,
};
export
type
BaseMenuProps
=
ExtractPropTypes
<
typeof
baseMenuProps
>
;
...
...
@@ -180,7 +182,6 @@ class MenuUtil {
danger=
{
item
.
meta
?.
danger
}
key=
{
item
.
path
}
icon=
{
item
.
meta
?.
icon
&&
<
LazyIcon
icon=
{
item
.
meta
.
icon
}
/>
}
// onClick={}
>
{
this
.
getMenuItem
(
item
)
}
</
Menu
.
Item
>
...
...
@@ -222,7 +223,7 @@ class MenuUtil {
export
default
defineComponent
({
name
:
'BaseMenu'
,
props
:
baseMenuProps
,
emits
:
[
'update:openKeys'
,
'update:selectedKeys'
],
emits
:
[
'update:openKeys'
,
'update:selectedKeys'
,
'click'
],
setup
(
props
,
{
emit
})
{
const
menuUtil
=
new
MenuUtil
(
props
);
...
...
@@ -238,8 +239,13 @@ export default defineComponent({
}):
void
=>
{
emit
(
'update:selectedKeys'
,
params
.
selectedKeys
);
};
// TODO :: add `Menu` onClick custom handle.
const
handleClick
=
(
args
:
{
item
:
VNodeChild
;
key
:
string
|
number
;
keyPath
:
string
|
string
[]
|
number
|
number
[];
})
=>
{
emit
(
'click'
,
args
);
};
return
()
=>
(
<
Menu
key=
"Menu"
...
...
@@ -252,6 +258,7 @@ export default defineComponent({
// @ts-ignore
onOpenChange=
{
handleOpenChange
}
onSelect=
{
handleSelect
}
onClick=
{
handleClick
}
{
...
props
.
menuProps
}
>
{
menuUtil
.
getNavMenuItems
(
props
.
menuData
)
}
...
...
src/SiderMenu/SiderMenu.tsx
View file @
49bf02d3
...
...
@@ -77,6 +77,7 @@ export const siderMenuProps = {
// events
onMenuHeaderClick
:
PropTypes
.
func
,
onMenuClick
:
PropTypes
.
func
,
onCollapse
:
{
type
:
Function
as
PropType
<
(
collapsed
:
boolean
)
=>
void
>
,
},
...
...
@@ -120,9 +121,11 @@ export const defaultRenderLogoAndTitle = (
const
logoDom
=
defaultRenderLogo
(
logo
,
logoStyle
);
const
titleDom
=
<
h1
>
{
title
}
</
h1
>;
// call menuHeaderRender
if
(
renderFunction
)
{
if
(
typeof
renderFunction
===
'function'
)
{
// when collapsed, no render title
return
renderFunction
(
logoDom
,
props
.
collapsed
?
null
:
titleDom
,
props
);
}
else
if
(
Array
.
isArray
(
renderFunction
))
{
return
<>
{
renderFunction
}
</>;
}
if
(
layout
===
'mix'
&&
renderKey
===
'menuHeaderRender'
)
{
return
null
;
...
...
@@ -191,6 +194,7 @@ const SiderMenu: FC<SiderMenuProps> = (props: SiderMenuProps) => {
selectedKeys=
{
context
.
selectedKeys
}
menuItemRender=
{
props
.
menuItemRender
}
subMenuItemRender=
{
props
.
subMenuItemRender
}
onClick=
{
props
.
onMenuClick
}
style=
{
{
width
:
'100%'
,
}
}
...
...
src/utils/index.ts
View file @
49bf02d3
import
{
Slots
}
from
'vue'
;
import
{
MenuDataItem
}
from
'../typings'
;
export
{
getPropsSlot
}
from
'ant-design-vue/es/_util/props-util'
;
export
{
default
as
PropTypes
}
from
'ant-design-vue/es/_util/vue-types'
;
export
{
default
as
isUrl
}
from
'./isUrl'
;
...
...
@@ -61,6 +61,10 @@ export function getMenuFirstChildren(menus: MenuDataItem[], key?: string) {
:
(
menus
[
menus
.
findIndex
(
menu
=>
menu
.
path
===
key
)]
||
{}).
children
||
[];
}
export
function
getPropsSlot
(
slots
:
Slots
,
props
:
Record
<
string
,
any
>
,
prop
=
'default'
)
{
return
props
[
prop
]
??
slots
[
prop
]?.();
}
export
const
PropRenderType
=
{
type
:
[
Function
,
Boolean
],
default
:
()
=>
undefined
,
...
...
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