Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
ant-design-pro-vue
Overview
Overview
Details
Activity
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
tianzhuanghu
ant-design-pro-vue
Commits
d710c6ae
Commit
d710c6ae
authored
Jan 07, 2019
by
Sendya
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: #45 height overflow
parent
4a0506dd
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
704 additions
and
702 deletions
+704
-702
App.vue
src/App.vue
+52
-47
GlobalFooter.vue
src/components/page/GlobalFooter.vue
+55
-57
GlobalLayout.vue
src/components/page/GlobalLayout.vue
+597
-598
No files found.
src/App.vue
View file @
d710c6ae
<
template
>
<a-locale-provider
:locale=
"locale"
>
<div
id=
"app"
>
<router-view/>
</div>
</a-locale-provider>
</
template
>
<
script
>
import
zhCN
from
'ant-design-vue/lib/locale-provider/zh_CN'
import
{
deviceEnquire
,
DEVICE_TYPE
}
from
'@/utils/device'
import
{
version
}
from
'ant-design-vue'
export
default
{
data
()
{
return
{
locale
:
zhCN
,
version
}
},
mounted
()
{
const
{
$store
}
=
this
console
.
log
(
'use Ant-Design Of Vue:'
,
version
)
deviceEnquire
(
deviceType
=>
{
switch
(
deviceType
)
{
case
DEVICE_TYPE
.
DESKTOP
:
$store
.
commit
(
'TOGGLE_DEVICE'
,
'desktop'
)
$store
.
dispatch
(
'setSidebar'
,
true
)
break
case
DEVICE_TYPE
.
TABLET
:
console
.
log
(
'tablet'
)
$store
.
dispatch
(
'ToggleDevice'
,
'tablet'
)
$store
.
dispatch
(
'setSidebar'
,
false
)
break
case
DEVICE_TYPE
.
MOBILE
:
default
:
$store
.
commit
(
'TOGGLE_DEVICE'
,
'mobile'
)
$store
.
dispatch
(
'setSidebar'
,
false
)
break
}
console
.
log
(
'deviceType'
,
deviceType
)
})
}
}
</
script
>
\ No newline at end of file
<
template
>
<a-locale-provider
:locale=
"locale"
>
<div
id=
"app"
>
<router-view/>
</div>
</a-locale-provider>
</
template
>
<
script
>
import
zhCN
from
'ant-design-vue/lib/locale-provider/zh_CN'
import
{
deviceEnquire
,
DEVICE_TYPE
}
from
'@/utils/device'
import
{
version
}
from
'ant-design-vue'
export
default
{
data
()
{
return
{
locale
:
zhCN
,
version
}
},
mounted
()
{
const
{
$store
}
=
this
console
.
log
(
'use Ant-Design Of Vue:'
,
version
)
deviceEnquire
(
deviceType
=>
{
switch
(
deviceType
)
{
case
DEVICE_TYPE
.
DESKTOP
:
$store
.
commit
(
'TOGGLE_DEVICE'
,
'desktop'
)
$store
.
dispatch
(
'setSidebar'
,
true
)
break
case
DEVICE_TYPE
.
TABLET
:
console
.
log
(
'tablet'
)
$store
.
dispatch
(
'ToggleDevice'
,
'tablet'
)
$store
.
dispatch
(
'setSidebar'
,
false
)
break
case
DEVICE_TYPE
.
MOBILE
:
default
:
$store
.
commit
(
'TOGGLE_DEVICE'
,
'mobile'
)
$store
.
dispatch
(
'setSidebar'
,
false
)
break
}
console
.
log
(
'deviceType'
,
deviceType
)
})
}
}
</
script
>
<
style
>
#app
{
height
:
100%
;
}
</
style
>
\ No newline at end of file
src/components/page/GlobalFooter.vue
View file @
d710c6ae
<
template
>
<div
class=
"footer"
>
<div
class=
"links"
>
<a
href=
"https://pro.ant.design/"
target=
"_blank"
>
Pro 首页
</a>
<a
href=
"https://github.com/ant-design/ant-design-pro"
target=
"_blank"
>
<a-icon
type=
"github"
/>
</a>
<a
href=
"https://ant.design/"
>
Ant Design
</a>
<a
href=
"https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/"
>
Vue Antd
</a>
<a>
Antd-Vue Version@
{{
version
}}
</a>
</div>
<div
class=
"copyright"
>
Copyright
<a-icon
type=
"copyright"
/>
2018
<span>
白鹭学园技术组出品
</span>
</div>
</div>
</
template
>
<
script
>
import
{
version
}
from
'ant-design-vue'
export
default
{
name
:
'LayoutFooter'
,
data
()
{
return
{
version
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.footer
{
padding
:
0
16px
;
margin
:
48px
0
24px
;
text-align
:
center
;
.links
{
margin-bottom
:
8px
;
a
{
color
:
rgba
(
0
,
0
,
0
,
.45
);
&:hover
{
color
:
rgba
(
0
,
0
,
0
,
.65
);
}
&
:not
(
:last-child
)
{
margin-right
:
40px
;
}
}
}
.copyright
{
color
:
rgba
(
0
,
0
,
0
,
.45
);
font-size
:
14px
;
}
}
<
template
>
<div
class=
"footer"
>
<div
class=
"links"
>
<a
href=
"https://pro.ant.design/"
target=
"_blank"
>
Pro 首页
</a>
<a
href=
"https://github.com/ant-design/ant-design-pro"
target=
"_blank"
>
<a-icon
type=
"github"
/>
</a>
<a
href=
"https://ant.design/"
>
Ant Design
</a>
<a
href=
"https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/"
>
Vue Antd
</a>
</div>
<div
class=
"copyright"
>
Copyright
<a-icon
type=
"copyright"
/>
2018
<span>
白鹭学园技术组出品
</span>
</div>
</div>
</
template
>
<
script
>
export
default
{
name
:
'LayoutFooter'
,
data
()
{
return
{
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.footer
{
padding
:
0
16px
;
margin
:
48px
0
24px
;
text-align
:
center
;
.links
{
margin-bottom
:
8px
;
a
{
color
:
rgba
(
0
,
0
,
0
,
.45
);
&:hover
{
color
:
rgba
(
0
,
0
,
0
,
.65
);
}
&
:not
(
:last-child
)
{
margin-right
:
40px
;
}
}
}
.copyright
{
color
:
rgba
(
0
,
0
,
0
,
.45
);
font-size
:
14px
;
}
}
</
style
>
\ No newline at end of file
src/components/page/GlobalLayout.vue
View file @
d710c6ae
<
template
>
<a-layout
class=
"layout"
:class=
"[device]"
>
<template
v-if=
"isSideMenu()"
>
<a-drawer
v-if=
"isMobile()"
:wrapClassName=
"'drawer-sider ' + navTheme"
:closable=
"false"
:visible=
"collapsed"
placement=
"left"
@
close=
"() => this.collapsed = false"
>
<side-menu
:menus=
"menus"
:theme=
"navTheme"
:collapsed=
"false"
:collapsible=
"true"
mode=
"inline"
@
menuSelect=
"menuSelect"
></side-menu>
</a-drawer>
<side-menu
v-else
mode=
"inline"
:menus=
"menus"
:theme=
"navTheme"
:collapsed=
"collapsed"
:collapsible=
"true"
></side-menu>
</
template
>
<!-- 下次优化这些代码 -->
<
template
v-else
>
<a-drawer
v-if=
"isMobile()"
:wrapClassName=
"'drawer-sider ' + navTheme"
placement=
"left"
@
close=
"() => this.collapsed = false"
:closable=
"false"
:visible=
"collapsed"
>
<side-menu
:menus=
"menus"
:theme=
"navTheme"
:collapsed=
"false"
:collapsible=
"true"
mode=
"inline"
@
menuSelect=
"menuSelect"
></side-menu>
</a-drawer>
</
template
>
<a-layout
:class=
"[layoutMode, `content-width-${contentWidth}`]"
:style=
"{ paddingLeft: fixSiderbar && isDesktop() ? `${sidebarOpened ? 256 : 80}px` : '0' }"
>
<!-- layout header -->
<global-header
:mode=
"layoutMode"
:menus=
"menus"
:theme=
"navTheme"
:collapsed=
"collapsed"
:device=
"device"
@
toggle=
"toggle"
/>
<!-- layout content -->
<a-layout-content
:style=
"{ margin: '24px 24px 0', height: '100%', paddingTop: fixedHeader ? '64px' : '0' }"
>
<slot></slot>
</a-layout-content>
<!-- layout footer -->
<a-layout-footer
style=
"padding: 0px"
>
<global-footer
/>
</a-layout-footer>
<setting-drawer></setting-drawer>
</a-layout>
</a-layout>
</template>
<
script
>
import
SideMenu
from
'@/components/menu/SideMenu'
import
GlobalHeader
from
'@/components/page/GlobalHeader'
import
GlobalFooter
from
'@/components/page/GlobalFooter'
import
SettingDrawer
from
'@/components/setting/SettingDrawer'
import
{
triggerWindowResizeEvent
}
from
'@/utils/util'
import
{
mapState
,
mapActions
}
from
'vuex'
import
{
mixin
,
mixinDevice
}
from
'@/utils/mixin.js'
export
default
{
name
:
'GlobalLayout'
,
components
:
{
SideMenu
,
GlobalHeader
,
GlobalFooter
,
SettingDrawer
},
mixins
:
[
mixin
,
mixinDevice
],
data
()
{
return
{
collapsed
:
false
,
menus
:
[]
}
},
computed
:
{
...
mapState
({
// 主路由
mainMenu
:
state
=>
state
.
permission
.
addRouters
,
})
},
watch
:
{
sidebarOpened
(
val
)
{
console
.
log
(
'sidebarOpened'
,
val
)
this
.
collapsed
=
!
val
},
},
created
()
{
this
.
menus
=
this
.
mainMenu
.
find
((
item
)
=>
item
.
path
===
'/'
).
children
console
.
log
(
'created/sidebarOpened'
,
this
.
sidebarOpened
)
this
.
collapsed
=
!
this
.
sidebarOpened
},
methods
:
{
...
mapActions
([
'setSidebar'
]),
toggle
()
{
this
.
collapsed
=
!
this
.
collapsed
this
.
setSidebar
(
!
this
.
collapsed
)
triggerWindowResizeEvent
()
},
menuSelect
()
{
if
(
!
this
.
isDesktop
())
{
this
.
collapsed
=
false
}
}
},
}
</
script
>
<
style
lang=
"scss"
>
body
{
//
打开滚动条固定显示
overflow-y
:
scroll
;
&.colorWeak
{
filter
:
invert
(
80%
);
}
}
.layout.ant-layout
{
height
:
100%
;
min-height
:
100vh
;
overflow-x
:
hidden
;
&.mobile,&.tablet
{
.ant-layout-content
{
.content
{
margin
:
24px
0
0
;
}
}
/**
* ant-table-wrapper
* 覆盖的表格手机模式样式,如果想修改在手机上表格最低宽度,可以在这里改动
*/
.ant-table-wrapper
{
.ant-table-content
{
overflow-y
:
auto
;
}
.ant-table-body
{
min-width
:
800px
;
}
}
.sidemenu
{
.ant-header-fixedHeader
{
&.ant-header-side-opened,
&.ant-header-side-closed
{
width
:
100%
}
}
}
.topmenu
{
/* 必须为 topmenu 才能启用流式布局 */
&.content-width-Fluid
{
.header-index-wide
{
margin-left
:
0
;
}
}
}
}
&
.ant-layout-has-sider
{
flex-direction
:
row
;
}
.trigger
{
font-size
:
20px
;
line-height
:
64px
;
padding
:
0
24px
;
cursor
:
pointer
;
transition
:
color
.3s
;
&:hover
{
background
:
rgba
(
0
,
0
,
0
,
0.025
);
}
}
.topmenu
{
.ant-header-fixedHeader
{
position
:
fixed
;
top
:
0
;
right
:
0
;
z-index
:
9
;
width
:
100%
;
transition
:
width
.2s
;
&.ant-header-side-opened
{
width
:
100%
;
}
&
.ant-header-side-closed
{
width
:
100%
;
}
}
/* 必须为 topmenu 才能启用流式布局 */
&
.content-width-Fluid
{
.header-index-wide
{
max-width
:
unset
;
margin-left
:
24px
;
}
.page-header-index-wide
{
max-width
:
unset
;
}
}
}
.sidemenu
{
.ant-header-fixedHeader
{
position
:
fixed
;
top
:
0
;
right
:
0
;
z-index
:
9
;
width
:
100%
;
transition
:
width
.2s
;
&.ant-header-side-opened
{
width
:
calc
(
100%
-
256px
)
}
&
.ant-header-side-closed
{
width
:
calc
(
100%
-
80px
)
}
}
}
.header
{
height
:
64px
;
padding
:
0
12px
0
0
;
background
:
#fff
;
box-shadow
:
0
1px
4px
rgba
(
0
,
21
,
41
,
.08
);
position
:
relative
;
}
.header
,
.top-nav-header-index
{
.user-wrapper
{
float
:
right
;
height
:
100%
;
.action
{
cursor
:
pointer
;
padding
:
0
12px
;
display
:
inline-block
;
transition
:
all
.3s
;
height
:
100%
;
&:hover
{
background
:
rgba
(
0
,
0
,
0
,
0.025
);
}
.avatar
{
margin
:
20px
8px
20px
0
;
color
:
#1890ff
;
background
:
hsla
(
0
,
0%
,
100%
,
.85
);
vertical-align
:
middle
;
}
.icon
{
font-size
:
16px
;
padding
:
4px
;
}
}
}
&
.dark
{
.user-wrapper
{
.action
{
color
:
rgba
(
255
,
255
,
255
,
0.85
);
&:hover
{
background
:
rgba
(
255
,
255
,
255
,
0.16
);
}
}
}
}
}
&
.mobile
,&
.tablet
{
.top-nav-header-index
{
.header-index-wide
{
.header-index-left
{
.trigger
{
color
:
rgba
(
255
,
255
,
255
,
0.85
);
padding
:
0
12px
;
}
.logo.top-nav-header
{
text-align
:
center
;
width
:
56px
;
line-height
:
58px
;
}
}
}
&
.light
{
.header-index-wide
{
.header-index-left
{
.trigger
{
color
:
rgba
(
0
,
0
,
0
,
0.65
);
}
}
}
//
}
}
}
&
.tablet
{
//
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
.top-nav-header-index
{
.header-index-wide
{
.header-index-left
{
.logo
>
a
{
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
}
}
}
}
.top-nav-header-index
{
box-shadow
:
0
1px
4px
rgba
(
0
,
21
,
41
,
.08
);
position
:
relative
;
transition
:
background
.3s
,
width
.2s
;
.header-index-wide
{
max-width
:
1200px
;
margin
:
auto
;
padding-left
:
0
;
display
:
flex
;
height
:
64px
;
.ant-menu.ant-menu-horizontal
{
border
:
none
;
height
:
64px
;
line-height
:
64px
;
}
.header-index-left
{
flex
:
1
1
;
display
:
flex
;
.logo.top-nav-header
{
width
:
165px
;
height
:
64px
;
position
:
relative
;
line-height
:
64px
;
transition
:
all
.3s
;
overflow
:
hidden
;
img
{
display
:
inline-block
;
vertical-align
:
middle
;
height
:
32px
;
}
h1
{
color
:
#fff
;
display
:
inline-block
;
vertical-align
:
top
;
font-size
:
16px
;
margin
:
0
0
0
12px
;
font-weight
:
400
;
}
}
}
.header-index-right
{
float
:
right
;
height
:
64px
;
overflow
:
hidden
;
}
}
&
.light
{
background-color
:
#fff
;
.header-index-wide
{
.header-index-left
{
.logo
{
h1
{
color
:
#002140
;
}
}
}
}
}
}
//
内容区
.layout-content
{
margin
:
24px
24px
0px
;
height
:
100%
;
height
:
64px
;
padding
:
0
12px
0
0
;
}
}
.topmenu
{
.page-header-index-wide
{
max-width
:
1200px
;
margin
:
0
auto
;
}
}
//
drawer-sider
自定义
.ant-drawer.drawer-sider
{
.sider
{
box-shadow
:
none
;
}
&
.dark
{
.ant-drawer-content
{
background-color
:
rgb
(
0
,
21
,
41
);
}
}
&
.light
{
box-shadow
:
none
;
.ant-drawer-content
{
background-color
:
#fff
;
}
}
.ant-drawer-body
{
padding
:
0
}
}
//
菜单样式
.sider
{
box-shadow
:
2px
0
6px
rgba
(
0
,
21
,
41
,
.35
);
position
:
relative
;
z-index
:
10
;
&.ant-fixed-sidemenu
{
position
:
fixed
;
height
:
100%
;
}
.logo
{
height
:
64px
;
position
:
relative
;
line-height
:
64px
;
padding-left
:
24px
;
-webkit-transition
:
all
.3s
;
transition
:
all
.3s
;
background
:
#002140
;
overflow
:
hidden
;
img,
h1
{
display
:
inline-block
;
vertical-align
:
middle
;
}
img
{
height
:
32px
;
}
h1
{
color
:
#fff
;
font-size
:
20px
;
margin
:
0
0
0
12px
;
font-family
:
"Chinese Quote"
,
-apple-system
,
BlinkMacSystemFont
,
"Segoe UI"
,
"PingFang SC"
,
"Hiragino Sans GB"
,
"Microsoft YaHei"
,
"Helvetica Neue"
,
Helvetica
,
Arial
,
sans-serif
,
"Apple Color Emoji"
,
"Segoe UI Emoji"
,
"Segoe UI Symbol"
;
font-weight
:
600
;
}
}
&
.light
{
background-color
:
#fff
;
box-shadow
:
2px
0px
8px
0px
rgba
(
29
,
35
,
41
,
0.05
);
.logo
{
background
:
#fff
;
box-shadow
:
1px
1px
0px
0px
#e8e8e8
;
h1
{
color
:
unset
;
}
}
.ant-menu-light
{
border-right-color
:
transparent
;
}
}
}
//
外置的样式控制
.user-dropdown-menu-wrapper.ant-dropdown-menu
{
padding
:
4px
0
;
.ant-dropdown-menu-item
{
width
:
160px
;
}
.ant-dropdown-menu-item
>
.anticon
:first-child
,
.ant-dropdown-menu-item
>
a
>
.anticon
:first-child
,
.ant-dropdown-menu-submenu-title
>
.anticon
:first-child
.ant-dropdown-menu-submenu-title
>
a
>
.anticon
:first-child
{
min-width
:
12px
;
margin-right
:
8px
;
}
}
//
数据列表
样式
.table-alert
{
margin-bottom
:
16px
;
}
.table-page-search-wrapper
{
.ant-form-inline
{
.ant-form-item
{
display
:
flex
;
margin-bottom
:
24px
;
margin-right
:
0
;
.ant-form-item-control-wrapper
{
flex
:
1
1
;
display
:
inline-block
;
vertical-align
:
middle
;
}
>
.ant-form-item-label
{
line-height
:
32px
;
padding-right
:
8px
;
width
:
auto
;
}
.ant-form-item-control
{
height
:
32px
;
line-height
:
32px
;
}
}
}
.table-page-search-submitButtons
{
display
:
block
;
margin-bottom
:
24px
;
white-space
:
nowrap
;
}
}
.content
{
.table-operator
{
margin-bottom
:
18px
;
button
{
margin-right
:
8px
;
}
}
}
<
template
>
<a-layout
class=
"layout"
:class=
"[device]"
>
<template
v-if=
"isSideMenu()"
>
<a-drawer
v-if=
"isMobile()"
:wrapClassName=
"'drawer-sider ' + navTheme"
:closable=
"false"
:visible=
"collapsed"
placement=
"left"
@
close=
"() => this.collapsed = false"
>
<side-menu
:menus=
"menus"
:theme=
"navTheme"
:collapsed=
"false"
:collapsible=
"true"
mode=
"inline"
@
menuSelect=
"menuSelect"
></side-menu>
</a-drawer>
<side-menu
v-else
mode=
"inline"
:menus=
"menus"
:theme=
"navTheme"
:collapsed=
"collapsed"
:collapsible=
"true"
></side-menu>
</
template
>
<!-- 下次优化这些代码 -->
<
template
v-else
>
<a-drawer
v-if=
"isMobile()"
:wrapClassName=
"'drawer-sider ' + navTheme"
placement=
"left"
@
close=
"() => this.collapsed = false"
:closable=
"false"
:visible=
"collapsed"
>
<side-menu
:menus=
"menus"
:theme=
"navTheme"
:collapsed=
"false"
:collapsible=
"true"
mode=
"inline"
@
menuSelect=
"menuSelect"
></side-menu>
</a-drawer>
</
template
>
<a-layout
:class=
"[layoutMode, `content-width-${contentWidth}`]"
:style=
"{ paddingLeft: fixSiderbar && isDesktop() ? `${sidebarOpened ? 256 : 80}px` : '0', minHeight: '100vh' }"
>
<!-- layout header -->
<global-header
:mode=
"layoutMode"
:menus=
"menus"
:theme=
"navTheme"
:collapsed=
"collapsed"
:device=
"device"
@
toggle=
"toggle"
/>
<!-- layout content -->
<a-layout-content
:style=
"{ margin: '24px 24px 0', height: '100%', paddingTop: fixedHeader ? '64px' : '0' }"
>
<slot></slot>
</a-layout-content>
<!-- layout footer -->
<a-layout-footer
style=
"padding: 0px"
>
<global-footer
/>
</a-layout-footer>
<setting-drawer></setting-drawer>
</a-layout>
</a-layout>
</template>
<
script
>
import
SideMenu
from
'@/components/menu/SideMenu'
import
GlobalHeader
from
'@/components/page/GlobalHeader'
import
GlobalFooter
from
'@/components/page/GlobalFooter'
import
SettingDrawer
from
'@/components/setting/SettingDrawer'
import
{
triggerWindowResizeEvent
}
from
'@/utils/util'
import
{
mapState
,
mapActions
}
from
'vuex'
import
{
mixin
,
mixinDevice
}
from
'@/utils/mixin.js'
export
default
{
name
:
'GlobalLayout'
,
components
:
{
SideMenu
,
GlobalHeader
,
GlobalFooter
,
SettingDrawer
},
mixins
:
[
mixin
,
mixinDevice
],
data
()
{
return
{
collapsed
:
false
,
menus
:
[]
}
},
computed
:
{
...
mapState
({
// 主路由
mainMenu
:
state
=>
state
.
permission
.
addRouters
,
})
},
watch
:
{
sidebarOpened
(
val
)
{
console
.
log
(
'sidebarOpened'
,
val
)
this
.
collapsed
=
!
val
},
},
created
()
{
this
.
menus
=
this
.
mainMenu
.
find
((
item
)
=>
item
.
path
===
'/'
).
children
console
.
log
(
'created/sidebarOpened'
,
this
.
sidebarOpened
)
this
.
collapsed
=
!
this
.
sidebarOpened
},
methods
:
{
...
mapActions
([
'setSidebar'
]),
toggle
()
{
this
.
collapsed
=
!
this
.
collapsed
this
.
setSidebar
(
!
this
.
collapsed
)
triggerWindowResizeEvent
()
},
menuSelect
()
{
if
(
!
this
.
isDesktop
())
{
this
.
collapsed
=
false
}
}
},
}
</
script
>
<
style
lang=
"scss"
>
body
{
//
打开滚动条固定显示
overflow-y
:
scroll
;
&.colorWeak
{
filter
:
invert
(
80%
);
}
}
.layout.ant-layout
{
overflow-x
:
hidden
;
&.mobile,&.tablet
{
.ant-layout-content
{
.content
{
margin
:
24px
0
0
;
}
}
/**
* ant-table-wrapper
* 覆盖的表格手机模式样式,如果想修改在手机上表格最低宽度,可以在这里改动
*/
.ant-table-wrapper
{
.ant-table-content
{
overflow-y
:
auto
;
}
.ant-table-body
{
min-width
:
800px
;
}
}
.sidemenu
{
.ant-header-fixedHeader
{
&.ant-header-side-opened,
&.ant-header-side-closed
{
width
:
100%
}
}
}
.topmenu
{
/* 必须为 topmenu 才能启用流式布局 */
&.content-width-Fluid
{
.header-index-wide
{
margin-left
:
0
;
}
}
}
}
&
.ant-layout-has-sider
{
flex-direction
:
row
;
}
.trigger
{
font-size
:
20px
;
line-height
:
64px
;
padding
:
0
24px
;
cursor
:
pointer
;
transition
:
color
.3s
;
&:hover
{
background
:
rgba
(
0
,
0
,
0
,
0.025
);
}
}
.topmenu
{
.ant-header-fixedHeader
{
position
:
fixed
;
top
:
0
;
right
:
0
;
z-index
:
9
;
width
:
100%
;
transition
:
width
.2s
;
&.ant-header-side-opened
{
width
:
100%
;
}
&
.ant-header-side-closed
{
width
:
100%
;
}
}
/* 必须为 topmenu 才能启用流式布局 */
&
.content-width-Fluid
{
.header-index-wide
{
max-width
:
unset
;
margin-left
:
24px
;
}
.page-header-index-wide
{
max-width
:
unset
;
}
}
}
.sidemenu
{
.ant-header-fixedHeader
{
position
:
fixed
;
top
:
0
;
right
:
0
;
z-index
:
9
;
width
:
100%
;
transition
:
width
.2s
;
&.ant-header-side-opened
{
width
:
calc
(
100%
-
256px
)
}
&
.ant-header-side-closed
{
width
:
calc
(
100%
-
80px
)
}
}
}
.header
{
height
:
64px
;
padding
:
0
12px
0
0
;
background
:
#fff
;
box-shadow
:
0
1px
4px
rgba
(
0
,
21
,
41
,
.08
);
position
:
relative
;
}
.header
,
.top-nav-header-index
{
.user-wrapper
{
float
:
right
;
height
:
100%
;
.action
{
cursor
:
pointer
;
padding
:
0
12px
;
display
:
inline-block
;
transition
:
all
.3s
;
height
:
100%
;
&:hover
{
background
:
rgba
(
0
,
0
,
0
,
0.025
);
}
.avatar
{
margin
:
20px
8px
20px
0
;
color
:
#1890ff
;
background
:
hsla
(
0
,
0%
,
100%
,
.85
);
vertical-align
:
middle
;
}
.icon
{
font-size
:
16px
;
padding
:
4px
;
}
}
}
&
.dark
{
.user-wrapper
{
.action
{
color
:
rgba
(
255
,
255
,
255
,
0.85
);
&:hover
{
background
:
rgba
(
255
,
255
,
255
,
0.16
);
}
}
}
}
}
&
.mobile
,&
.tablet
{
.top-nav-header-index
{
.header-index-wide
{
.header-index-left
{
.trigger
{
color
:
rgba
(
255
,
255
,
255
,
0.85
);
padding
:
0
12px
;
}
.logo.top-nav-header
{
text-align
:
center
;
width
:
56px
;
line-height
:
58px
;
}
}
}
&
.light
{
.header-index-wide
{
.header-index-left
{
.trigger
{
color
:
rgba
(
0
,
0
,
0
,
0.65
);
}
}
}
//
}
}
}
&
.tablet
{
//
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
.top-nav-header-index
{
.header-index-wide
{
.header-index-left
{
.logo
>
a
{
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
}
}
}
}
.top-nav-header-index
{
box-shadow
:
0
1px
4px
rgba
(
0
,
21
,
41
,
.08
);
position
:
relative
;
transition
:
background
.3s
,
width
.2s
;
.header-index-wide
{
max-width
:
1200px
;
margin
:
auto
;
padding-left
:
0
;
display
:
flex
;
height
:
64px
;
.ant-menu.ant-menu-horizontal
{
border
:
none
;
height
:
64px
;
line-height
:
64px
;
}
.header-index-left
{
flex
:
1
1
;
display
:
flex
;
.logo.top-nav-header
{
width
:
165px
;
height
:
64px
;
position
:
relative
;
line-height
:
64px
;
transition
:
all
.3s
;
overflow
:
hidden
;
img
{
display
:
inline-block
;
vertical-align
:
middle
;
height
:
32px
;
}
h1
{
color
:
#fff
;
display
:
inline-block
;
vertical-align
:
top
;
font-size
:
16px
;
margin
:
0
0
0
12px
;
font-weight
:
400
;
}
}
}
.header-index-right
{
float
:
right
;
height
:
64px
;
overflow
:
hidden
;
}
}
&
.light
{
background-color
:
#fff
;
.header-index-wide
{
.header-index-left
{
.logo
{
h1
{
color
:
#002140
;
}
}
}
}
}
}
//
内容区
.layout-content
{
margin
:
24px
24px
0px
;
height
:
100%
;
height
:
64px
;
padding
:
0
12px
0
0
;
}
}
.topmenu
{
.page-header-index-wide
{
max-width
:
1200px
;
margin
:
0
auto
;
}
}
//
drawer-sider
自定义
.ant-drawer.drawer-sider
{
.sider
{
box-shadow
:
none
;
}
&
.dark
{
.ant-drawer-content
{
background-color
:
rgb
(
0
,
21
,
41
);
}
}
&
.light
{
box-shadow
:
none
;
.ant-drawer-content
{
background-color
:
#fff
;
}
}
.ant-drawer-body
{
padding
:
0
}
}
//
菜单样式
.sider
{
box-shadow
:
2px
0
6px
rgba
(
0
,
21
,
41
,
.35
);
position
:
relative
;
z-index
:
10
;
&.ant-fixed-sidemenu
{
position
:
fixed
;
height
:
100%
;
}
.logo
{
height
:
64px
;
position
:
relative
;
line-height
:
64px
;
padding-left
:
24px
;
-webkit-transition
:
all
.3s
;
transition
:
all
.3s
;
background
:
#002140
;
overflow
:
hidden
;
img,
h1
{
display
:
inline-block
;
vertical-align
:
middle
;
}
img
{
height
:
32px
;
}
h1
{
color
:
#fff
;
font-size
:
20px
;
margin
:
0
0
0
12px
;
font-family
:
"Chinese Quote"
,
-apple-system
,
BlinkMacSystemFont
,
"Segoe UI"
,
"PingFang SC"
,
"Hiragino Sans GB"
,
"Microsoft YaHei"
,
"Helvetica Neue"
,
Helvetica
,
Arial
,
sans-serif
,
"Apple Color Emoji"
,
"Segoe UI Emoji"
,
"Segoe UI Symbol"
;
font-weight
:
600
;
}
}
&
.light
{
background-color
:
#fff
;
box-shadow
:
2px
0px
8px
0px
rgba
(
29
,
35
,
41
,
0.05
);
.logo
{
background
:
#fff
;
box-shadow
:
1px
1px
0px
0px
#e8e8e8
;
h1
{
color
:
unset
;
}
}
.ant-menu-light
{
border-right-color
:
transparent
;
}
}
}
//
外置的样式控制
.user-dropdown-menu-wrapper.ant-dropdown-menu
{
padding
:
4px
0
;
.ant-dropdown-menu-item
{
width
:
160px
;
}
.ant-dropdown-menu-item
>
.anticon
:first-child
,
.ant-dropdown-menu-item
>
a
>
.anticon
:first-child
,
.ant-dropdown-menu-submenu-title
>
.anticon
:first-child
.ant-dropdown-menu-submenu-title
>
a
>
.anticon
:first-child
{
min-width
:
12px
;
margin-right
:
8px
;
}
}
//
数据列表
样式
.table-alert
{
margin-bottom
:
16px
;
}
.table-page-search-wrapper
{
.ant-form-inline
{
.ant-form-item
{
display
:
flex
;
margin-bottom
:
24px
;
margin-right
:
0
;
.ant-form-item-control-wrapper
{
flex
:
1
1
;
display
:
inline-block
;
vertical-align
:
middle
;
}
>
.ant-form-item-label
{
line-height
:
32px
;
padding-right
:
8px
;
width
:
auto
;
}
.ant-form-item-control
{
height
:
32px
;
line-height
:
32px
;
}
}
}
.table-page-search-submitButtons
{
display
:
block
;
margin-bottom
:
24px
;
white-space
:
nowrap
;
}
}
.content
{
.table-operator
{
margin-bottom
:
18px
;
button
{
margin-right
:
8px
;
}
}
}
</
style
>
\ No newline at end of file
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