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
2ac44da0
Unverified
Commit
2ac44da0
authored
Mar 23, 2021
by
Sendya
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: locale inject route-context
parent
069f3f58
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
24 additions
and
8 deletions
+24
-8
index.tsx
examples/index.tsx
+12
-3
BasicLayout.tsx
src/BasicLayout.tsx
+1
-1
index.tsx
src/PageContainer/index.tsx
+4
-1
SiderMenu.tsx
src/SiderMenu/SiderMenu.tsx
+3
-2
index.tsx
src/TopNavHeader/index.tsx
+2
-0
index.ts
src/index.ts
+2
-1
No files found.
examples/index.tsx
View file @
2ac44da0
...
@@ -3,7 +3,7 @@ import { createApp, defineComponent, watch, ref, watchEffect, onMounted } from '
...
@@ -3,7 +3,7 @@ import { createApp, defineComponent, watch, ref, watchEffect, onMounted } from '
import
{
createRouter
,
createWebHashHistory
,
useRoute
,
useRouter
,
RouteRecord
}
from
'vue-router'
;
import
{
createRouter
,
createWebHashHistory
,
useRoute
,
useRouter
,
RouteRecord
}
from
'vue-router'
;
import
{
Avatar
,
Button
,
Space
,
Select
,
Switch
}
from
'ant-design-vue'
;
import
{
Avatar
,
Button
,
Space
,
Select
,
Switch
}
from
'ant-design-vue'
;
import
{
UserOutlined
}
from
'@ant-design/icons-vue'
;
import
{
UserOutlined
}
from
'@ant-design/icons-vue'
;
import
{
default
as
ProLayout
,
FooterToolbar
,
WaterMark
}
from
'../src/'
;
import
{
default
as
ProLayout
,
FooterToolbar
,
WaterMark
,
FormatMessage
}
from
'../src/'
;
import
{
globalState
as
state
}
from
'./state'
;
import
{
globalState
as
state
}
from
'./state'
;
import
'./demo.less'
;
import
'./demo.less'
;
...
@@ -18,6 +18,15 @@ import ChildPage from './demo/child/child-page';
...
@@ -18,6 +18,15 @@ import ChildPage from './demo/child/child-page';
// eslint-disable-next-line @typescript-eslint/no-unused-vars
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const
noop
=
()
=>
{};
const
noop
=
()
=>
{};
const
locales
:
Record
<
string
,
string
>
=
{
home
:
'首页'
,
'views.dashboard.title'
:
'页面1'
,
};
const
i18n
=
(
key
:
string
):
string
=>
{
return
locales
[
key
]
||
key
;
};
const
getMenuData
=
(
routes
:
RouteRecord
[])
=>
{
const
getMenuData
=
(
routes
:
RouteRecord
[])
=>
{
const
childrenRoute
=
routes
.
find
(
route
=>
route
.
path
===
'/'
);
const
childrenRoute
=
routes
.
find
(
route
=>
route
.
path
===
'/'
);
return
childrenRoute
?.
children
||
[];
return
childrenRoute
?.
children
||
[];
...
@@ -63,7 +72,7 @@ const BasicLayout = defineComponent({
...
@@ -63,7 +72,7 @@ const BasicLayout = defineComponent({
<
ProLayout
<
ProLayout
layout=
{
state
.
layout
}
layout=
{
state
.
layout
}
navTheme=
{
state
.
navTheme
}
navTheme=
{
state
.
navTheme
}
i18n=
{
(
key
:
string
)
=>
key
}
locale=
{
i18n
}
isMobile=
{
state
.
isMobile
}
isMobile=
{
state
.
isMobile
}
fixSiderbar=
{
state
.
fixSiderbar
}
fixSiderbar=
{
state
.
fixSiderbar
}
fixedHeader=
{
state
.
fixedHeader
}
fixedHeader=
{
state
.
fixedHeader
}
...
@@ -186,7 +195,7 @@ const routes = [
...
@@ -186,7 +195,7 @@ const routes = [
{
{
path
:
'/dashboard'
,
path
:
'/dashboard'
,
name
:
'dashboard'
,
name
:
'dashboard'
,
meta
:
{
title
:
'
dashboard
'
,
icon
:
'SmileOutlined'
},
meta
:
{
title
:
'
views.dashboard.title
'
,
icon
:
'SmileOutlined'
},
redirect
:
'/dashboard/analysis'
,
redirect
:
'/dashboard/analysis'
,
component
:
RouteView
,
component
:
RouteView
,
children
:
[
children
:
[
...
...
src/BasicLayout.tsx
View file @
2ac44da0
...
@@ -254,7 +254,7 @@ ProLayout.props = {
...
@@ -254,7 +254,7 @@ ProLayout.props = {
/* 使用 IconFont 的图标配置 */
/* 使用 IconFont 的图标配置 */
iconfontUrl
:
PropTypes
.
string
,
iconfontUrl
:
PropTypes
.
string
,
/* 当前 layout 的语言设置 */
/* 当前 layout 的语言设置 */
locale
:
PropTypes
.
func
.
def
((
key
:
string
)
=>
key
)
,
locale
:
PropTypes
.
func
,
// settings
// settings
/* 侧边菜单宽度 */
/* 侧边菜单宽度 */
siderWidth
:
PropTypes
.
number
.
def
(
208
),
siderWidth
:
PropTypes
.
number
.
def
(
208
),
...
...
src/PageContainer/index.tsx
View file @
2ac44da0
...
@@ -6,6 +6,7 @@ import { PageHeaderProps } from './interfaces/PageHeader';
...
@@ -6,6 +6,7 @@ import { PageHeaderProps } from './interfaces/PageHeader';
import
{
AffixProps
}
from
'./interfaces/Affix'
;
import
{
AffixProps
}
from
'./interfaces/Affix'
;
/* replace antd ts define end */
/* replace antd ts define end */
import
{
useRouteContext
,
RouteContextProps
}
from
'../RouteContext'
;
import
{
useRouteContext
,
RouteContextProps
}
from
'../RouteContext'
;
import
{
withInstall
}
from
'ant-design-vue/es/_util/type'
;
import
'ant-design-vue/es/affix/style'
;
import
'ant-design-vue/es/affix/style'
;
import
Affix
from
'ant-design-vue/es/affix'
;
import
Affix
from
'ant-design-vue/es/affix'
;
import
'ant-design-vue/es/page-header/style'
;
import
'ant-design-vue/es/page-header/style'
;
...
@@ -164,7 +165,7 @@ const defaultPageHeaderRender = (
...
@@ -164,7 +165,7 @@ const defaultPageHeaderRender = (
);
);
};
};
export
const
PageContainer
:
FunctionalComponent
<
PageContainerProps
>
=
(
props
,
{
slots
})
=>
{
const
PageContainer
:
FunctionalComponent
<
PageContainerProps
>
=
(
props
,
{
slots
})
=>
{
const
{
loading
,
footer
,
affixProps
,
ghost
,
fixedHeader
}
=
props
;
// toRefs(props);
const
{
loading
,
footer
,
affixProps
,
ghost
,
fixedHeader
}
=
props
;
// toRefs(props);
const
value
=
useRouteContext
();
const
value
=
useRouteContext
();
const
{
getPrefixCls
}
=
value
;
const
{
getPrefixCls
}
=
value
;
...
@@ -217,3 +218,5 @@ export const PageContainer: FunctionalComponent<PageContainerProps> = (props, {
...
@@ -217,3 +218,5 @@ export const PageContainer: FunctionalComponent<PageContainerProps> = (props, {
</
div
>
</
div
>
);
);
};
};
export
default
withInstall
(
PageContainer
);
src/SiderMenu/SiderMenu.tsx
View file @
2ac44da0
...
@@ -4,7 +4,7 @@ import Layout from 'ant-design-vue/es/layout';
...
@@ -4,7 +4,7 @@ import Layout from 'ant-design-vue/es/layout';
import
'ant-design-vue/es/menu/style'
;
import
'ant-design-vue/es/menu/style'
;
import
Menu
from
'ant-design-vue/es/menu'
;
import
Menu
from
'ant-design-vue/es/menu'
;
import
BaseMenu
,
{
BaseMenuProps
}
from
'./BaseMenu'
;
import
BaseMenu
,
{
BaseMenuProps
}
from
'./BaseMenu'
;
import
{
WithFalse
,
CustomRender
}
from
'../typings'
;
import
{
FormatMessage
,
WithFalse
,
CustomRender
}
from
'../typings'
;
import
{
SiderProps
}
from
'./typings'
;
import
{
SiderProps
}
from
'./typings'
;
import
{
MenuUnfoldOutlined
,
MenuFoldOutlined
}
from
'@ant-design/icons-vue'
;
import
{
MenuUnfoldOutlined
,
MenuFoldOutlined
}
from
'@ant-design/icons-vue'
;
import
{
useRouteContext
}
from
'../RouteContext'
;
import
{
useRouteContext
}
from
'../RouteContext'
;
...
@@ -101,7 +101,7 @@ const SiderMenu: FunctionalComponent<SiderMenuProps> = (props: SiderMenuProps) =
...
@@ -101,7 +101,7 @@ const SiderMenu: FunctionalComponent<SiderMenuProps> = (props: SiderMenuProps) =
onSelect
,
onSelect
,
}
=
props
;
}
=
props
;
const
context
=
useRouteContext
();
const
context
=
useRouteContext
();
const
{
getPrefixCls
}
=
context
;
const
{
getPrefixCls
,
i18n
}
=
context
;
const
baseClassName
=
getPrefixCls
(
'sider'
);
const
baseClassName
=
getPrefixCls
(
'sider'
);
// const isMix = computed(() => props.layout === 'mix');
// const isMix = computed(() => props.layout === 'mix');
// const fixed = computed(() => context.fixSiderbar);
// const fixed = computed(() => context.fixSiderbar);
...
@@ -130,6 +130,7 @@ const SiderMenu: FunctionalComponent<SiderMenuProps> = (props: SiderMenuProps) =
...
@@ -130,6 +130,7 @@ const SiderMenu: FunctionalComponent<SiderMenuProps> = (props: SiderMenuProps) =
const
defaultMenuDom
=
(
const
defaultMenuDom
=
(
<
BaseMenu
<
BaseMenu
prefixCls=
{
getPrefixCls
()
}
prefixCls=
{
getPrefixCls
()
}
i18n=
{
i18n
as
FormatMessage
}
theme=
{
runtimeTheme
.
value
===
'realDark'
?
'dark'
:
runtimeTheme
.
value
}
theme=
{
runtimeTheme
.
value
===
'realDark'
?
'dark'
:
runtimeTheme
.
value
}
mode=
"inline"
mode=
"inline"
menuData=
{
hasSide
.
value
?
flatMenuData
.
value
:
context
.
menuData
}
menuData=
{
hasSide
.
value
?
flatMenuData
.
value
:
context
.
menuData
}
...
...
src/TopNavHeader/index.tsx
View file @
2ac44da0
...
@@ -7,6 +7,7 @@ import {
...
@@ -7,6 +7,7 @@ import {
import
BaseMenu
from
'../SiderMenu/BaseMenu'
;
import
BaseMenu
from
'../SiderMenu/BaseMenu'
;
import
{
GlobalHeaderProps
}
from
'../GlobalHeader'
;
import
{
GlobalHeaderProps
}
from
'../GlobalHeader'
;
import
{
default
as
ResizeObserver
}
from
'ant-design-vue/es/vc-resize-observer'
;
import
{
default
as
ResizeObserver
}
from
'ant-design-vue/es/vc-resize-observer'
;
import
{
FormatMessage
}
from
'../typings'
;
import
'./index.less'
;
import
'./index.less'
;
import
{
useRouteContext
}
from
'../RouteContext'
;
import
{
useRouteContext
}
from
'../RouteContext'
;
...
@@ -86,6 +87,7 @@ export const TopNavHeader: FunctionalComponent<TopNavHeaderProps> = props => {
...
@@ -86,6 +87,7 @@ export const TopNavHeader: FunctionalComponent<TopNavHeaderProps> = props => {
<
div
style=
{
{
flex
:
1
}
}
class=
{
`${prefixCls}-menu`
}
>
<
div
style=
{
{
flex
:
1
}
}
class=
{
`${prefixCls}-menu`
}
>
<
BaseMenu
<
BaseMenu
prefixCls=
{
propPrefixCls
}
prefixCls=
{
propPrefixCls
}
i18n=
{
context
.
i18n
as
FormatMessage
}
theme=
{
props
.
theme
===
'realDark'
?
'dark'
:
props
.
theme
}
theme=
{
props
.
theme
===
'realDark'
?
'dark'
:
props
.
theme
}
mode=
{
props
.
mode
}
mode=
{
props
.
mode
}
collapsed=
{
props
.
collapsed
}
collapsed=
{
props
.
collapsed
}
...
...
src/index.ts
View file @
2ac44da0
export
*
from
'./RouteContext'
;
export
*
from
'./RouteContext'
;
export
*
from
'./typings'
;
export
{
createContext
,
useContext
,
ContextType
,
CreateContext
}
from
'./hooks/context'
;
export
{
createContext
,
useContext
,
ContextType
,
CreateContext
}
from
'./hooks/context'
;
export
{
default
as
FooterToolbar
}
from
'./FooterToolbar'
;
export
{
default
as
FooterToolbar
}
from
'./FooterToolbar'
;
export
{
default
as
GlobalFooter
}
from
'./GlobalFooter'
;
export
{
default
as
GlobalFooter
}
from
'./GlobalFooter'
;
...
@@ -10,7 +11,7 @@ export { WrapContent } from './WrapContent';
...
@@ -10,7 +11,7 @@ export { WrapContent } from './WrapContent';
// useProProvider,
// useProProvider,
// ProProviderData,
// ProProviderData,
// } from './ProProvider';
// } from './ProProvider';
export
{
PageContainer
}
from
'./PageContainer'
;
export
{
default
as
PageContainer
}
from
'./PageContainer'
;
export
{
default
as
SiderMenuWrapper
,
SiderMenuWrapperProps
}
from
'./SiderMenu/index'
;
export
{
default
as
SiderMenuWrapper
,
SiderMenuWrapperProps
}
from
'./SiderMenu/index'
;
export
{
export
{
default
as
BaseMenu
,
default
as
BaseMenu
,
...
...
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