You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

252 lines
9.3 KiB

from dash import html
import feffery_antd_components as fac
from flask import session
from config.global_config import ApiBaseUrlConfig
import callbacks.layout_c.head_c
def render_head_content():
return [
# 页首左侧折叠按钮区域
fac.AntdCol(
html.Div(
fac.AntdButton(
fac.AntdIcon(
id='fold-side-menu-icon',
icon='antd-menu-fold'
),
id='fold-side-menu',
type='text',
shape='circle',
size='large',
style={
'marginLeft': '5px',
'background': 'white'
}
),
style={
'height': '100%',
'display': 'flex',
'alignItems': 'center'
}
),
flex='1'
),
# 页首面包屑区域
fac.AntdCol(
fac.AntdBreadcrumb(
items=[
{
'title': '首页',
'icon': 'antd-dashboard',
'href': '/#'
}
],
id='header-breadcrumb'
),
style={
'height': '100%',
'display': 'flex',
'alignItems': 'center'
},
flex='21'
),
# 页首中部搜索区域
fac.AntdCol(
fac.AntdParagraph(
[
fac.AntdText(
'Ctrl',
keyboard=True,
style={
'color': '#8c8c8c'
}
),
fac.AntdText(
'K',
keyboard=True,
style={
'color': '#8c8c8c'
}
),
fac.AntdText(
'唤出搜索面板',
style={
'color': '#8c8c8c'
}
)
],
style={
'height': '100%',
'display': 'flex',
'alignItems': 'center'
}
),
flex='6'
),
# 页首开源项目地址
# fac.AntdCol(
# html.A(
# html.Img(
# src='https://gitee.com/insistence2022/dash-fastapi-admin/badge/star.svg?theme=dark'
# ),
# href='https://gitee.com/insistence2022/dash-fastapi-admin',
# target='_blank'
# ),
# style={
# 'height': '100%',
# 'display': 'flex',
# 'alignItems': 'center'
# },
# flex='3'
# ),
# 页首右侧用户信息区域
fac.AntdCol(
fac.AntdSpace(
[
fac.AntdPopover(
fac.AntdBadge(
fac.AntdAvatar(
id='avatar-info',
mode='image',
src=f"{ApiBaseUrlConfig.BaseUrl}{session.get('user_info').get('avatar')}&token={session.get('Authorization')}",
size=36
),
count=6,
size='small'
),
content=fac.AntdTabs(
items=[
{
'key': '未读消息',
'label': '未读消息',
'children': [
fac.AntdSpace(
[
html.Div(
fac.AntdText(
f'消息示例{i}'
),
style={
'padding': '5px 10px',
'height': 40,
'width': 300,
'borderBottom': '1px solid #f1f3f5'
}
)
for i in range(1, 8)
],
direction='vertical',
style={
'height': 280,
'overflowY': 'auto'
}
)
]
},
{
'key': '已读消息',
'label': '已读消息',
'children': [
fac.AntdSpace(
[
html.Div(
fac.AntdText(
f'消息示例{i}'
),
style={
'padding': '5px 10px',
'height': 40,
'width': 300,
'borderBottom': '1px solid #f1f3f5'
}
)
for i in range(8, 15)
],
direction='vertical',
style={
'height': 280,
'overflowY': 'auto'
}
)
]
},
],
centered=True
),
placement='bottomRight'
),
fac.AntdDropdown(
id='index-header-dropdown',
title=session.get('user_info').get('user_name'),
arrow=True,
menuItems=[
{
'title': '个人资料',
'key': '个人资料',
'icon': 'antd-idcard'
},
{
'title': '布局设置',
'key': '布局设置',
'icon': 'antd-layout'
},
{
'isDivider': True
},
{
'title': '退出登录',
'key': '退出登录',
'icon': 'antd-logout'
},
],
placement='bottomRight',
overlayStyle={
'width': '100px'
}
)
],
style={
'height': '100%',
'float': 'right',
'display': 'flex',
'alignItems': 'center'
}
),
flex='3'
),
fac.AntdCol(
# 全局刷新按钮
html.Div(
fac.AntdTooltip(
fac.AntdButton(
fac.AntdIcon(
id='index-reload-icon',
icon='fc-synchronize'
),
id='index-reload',
type='text',
shape='circle',
size='large',
style={
'backgroundColor': 'rgb(255 255 255 / 0%)',
}
),
title='刷新',
placement='bottom'
)
),
style={
'height': '100%',
'paddingRight': '3px',
'display': 'flex',
'alignItems': 'center'
},
flex='1'
),
]