🎨 优化网页控制台

This commit is contained in:
KimigaiiWuyi 2025-05-03 07:26:34 +08:00
parent 4dde8f912d
commit b326deb42e
6 changed files with 488 additions and 156 deletions

View File

@ -2,18 +2,248 @@ import fastapi_amis_admin
from gsuid_core.version import __version__ as gscore_version from gsuid_core.version import __version__ as gscore_version
bots = 'HoshinoBot · NoneBot2 · Koishi · Yunzai · ZeroBot · AstrBot'
sup = f'✨支持连接{bots}的多功能Bot插件核心✨'
style = '''
div {
background: rgba(255, 255, 255, 0.6) url('/webstatic/bg.jpg');
background-blend-mode: screen;
background-repeat: no-repeat;
background-attachment: fixed;
background-size: cover;
}
html, body,
.app-wrapper {
position: relative;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
:root {
--Page-main-bg: #ffffff;
--colors-brand-main: #ce5050;
--colors-brand-5: #ce5050;
--colors-brand-4: #b84343;
--colors-brand-6: #de5b5b;
--Layout-asideLink-color: #ce5050;
--colors-brand-10: rgba(206, 80, 80, 0.08)
--Layout-nav-height: 2.8rem;
--borders-radius-3: 10px;
--Layout-aside-bg: rgba(0, 0, 0, 0);
--sizes-size-7: 1rem;
}
.amis-scope {
display: flex;
justify-content: center;
overflow: hidden; /* 防止滚动条 */
}
.amis-scope .a-Panel {
/* margin: 1.5rem 3rem 1.5rem -1.5rem; */
padding: 1.5rem 3rem 1.5rem 0rem;
border-radius: 10px;
background-color: rgba(0, 0, 0, 0);
width: 150%;
margin: 0 auto;
margin-left: -25%;
}
rect {
fill: #ffffff;
}
.amis-scope .a-TextControl .InputText-invisible {
background-color: #ffffff;
}
.amis-scope .a-TextControl-icon-view svg {
background-color: #ffffff;
}
.amis-scope .a-AppBcn {
background-color: #FFFFFF;
}
.amis-scope .a-ButtonToolbar {
border-radius: 10px;
/* background-color: #ce5050; */
}
/*
.amis-scope .a-Layout--asideFixed .a-Layout-asideWrap {
box-shadow: 1px 8px 3px 2px rgba(26, 25, 23, 0.3);
}
*/
.amis-scope .a-Layout-brand, .amis-scope .a-Layout-brandBar, .amis-scope .a-Layout-aside {
background-color: rgba(0, 0, 0, 0);
}
.amis-scope .a-AsideNav-list {
background-color: #FFFFFF;
border-radius: 8px; /* 圆角矩形可根据需要调整数值 */
color: #1a1917; /* 修改文字颜色,可根据需要调整颜色值 */
border: 1px solid #ce5050;
}
.amis-scope .a-AsideNav-item {
background-color: #FFFFFF;
border-radius: 8px; /* 圆角矩形可根据需要调整数值 */
color: #1a1917; /* 修改文字颜色,可根据需要调整颜色值 */
}
.amis-scope .a-AsideNav-item:hover {
background-color: #cfcfcf;
color: #1a1917; /* 修改文字颜色,可根据需要调整颜色值 */
}
.amis-scope .a-AsideNav-itemLabel {
/* background-color: #cfcfcf; */
color: #1a1917; /* 修改文字颜色,可根据需要调整颜色值 */
}
.amis-scope .a-AsideNav-item:hover > a > .a-AsideNav-itemLabel {
color: #FFFFFF;
}
.amis-scope .a-AsideNav-item.is-active > a {
border-radius: 8px;
background-color: #ce5050;
color: #FFFFFF; /* 修改文字颜色,可根据需要调整颜色值 */
}
.amis-scope .a-AsideNav-item.is-active .a-AsideNav-item .a-AsideNav-itemLabel{
color: #1a1917; /* 修改文字颜色,可根据需要调整颜色值 */
}
.amis-scope .a-AsideNav-item.is-open > .a-AsideNav-item:hover > .a-AsideNav-itemLabel{
color: #FFFFFF; /* 修改文字颜色,可根据需要调整颜色值 */
}
.amis-scope .a-AsideNav-item:hover > a > .a-AsideNav-itemLabel {
color: unset;
}
.amis-scope .a-AsideNav-item.is-active .a-AsideNav-itemLabel {
color: #FFFFFF; /* 修改文字颜色,可根据需要调整颜色值 */
}
.amis-scope .a-AsideNav-item a {
border-radius: 8px;
}
.a-AsideNav-item.is-open:has(.a-AsideNav-item.is-open.is-active) {
background-color: transparent;
color: #FFFFFF;
}
a-AsideNav-item.is-open > a > i {
color: #FFFFFF;
}
a-AsideNav-item.is-open > a > a-AsideNav-itemLabel {
color: #FFFFFF;
}
.amis-scope .a-AsideNav-item a:hover {
background-color: #ce5050;
border-radius: 8px;
color: #FFFFFF; /* 修改文字颜色,可根据需要调整颜色值 */
}
.amis-scope .a-AsideNav-item.is-active > a:hover {
background: #ce5050;
border-radius: 8px;
color: #FFFFFF; /* 修改文字颜色,可根据需要调整颜色值 */
}
.amis-scope .a-Layout-brand, .amis-scope .a-Layout-brandBar, .amis-scope .a-Layout-aside {
background-color: #FFFFFF;
box-shadow: #cfcfcf;
}
.amis-scope a {
color: #ce5050; /* 修改文字颜色,可根据需要调整颜色值 */
}
.amis-scope .a-Switch.is-checked {
background: #ce5050;
}
.amis-scope .m-l-sm {
color: #ce5050;
}
.amis-scope .a-AsideNav-subList {
background: #FFFFFF;
border-radius: 8px!important; /* 圆角矩形可根据需要调整数值 */
}
.amis-scope .a-AsideNav-itemArrow svg {
fill : #ce5050;
}
.amis-scope .a-AsideNav-itemArrow::after {
color : #ce5050;
}
.amis-scope .a-AsideNav-itemArrow::before {
color : #ce5050;
}
.amis-scope .a-AsideNav-itemArrow:empty {
background-repeat: no-repeat;
width: 0.625rem;
height: 0.625rem;
background-position: center center;
display: inline-block;
background: none !important; /* 移除原有背景 */
}
.amis-scope .a-AsideNav-item a:hover .a-AsideNav-itemArrow:empty:before {
background: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 513 1021' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg id='right-arrow' fill='%23ffffff' fill-rule='nonzero'%3E%3Cpath d='M56.559054,1013.77369 L512.908116,512.684524 L56.559054,12.234501 C49.4114678,2.93455912 37.6664238,-1.59188176 26.1262324,0.505948246 C14.586041,2.60377825 5.18544409,10.9741727 1.76815516,22.1946471 C-1.64913377,33.4151214 1.48980228,45.6045351 9.901516,53.778884 L424.706197,512.684524 L12.458094,969.672731 C2.45820596,982.551498 4.01297737,1000.9483 16.0324422,1011.96615 C28.0519071,1022.98399 46.5142346,1022.93619 58.476487,1011.85626 L56.559054,1013.77369 Z' id='路径'%3E%3C/path%3E%3C/g%3E%3C/svg%3E%0A");
background-repeat: no-repeat;
width: 0.625rem;
height: 0.625rem;
background-position: center center;
display: inline-block;
}
.amis-scope .a-AsideNav-itemArrow:empty:before {
content: "";
background: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 513 1021' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg id='right-arrow' fill='%23ce5050' fill-rule='nonzero'%3E%3Cpath d='M56.559054,1013.77369 L512.908116,512.684524 L56.559054,12.234501 C49.4114678,2.93455912 37.6664238,-1.59188176 26.1262324,0.505948246 C14.586041,2.60377825 5.18544409,10.9741727 1.76815516,22.1946471 C-1.64913377,33.4151214 1.48980228,45.6045351 9.901516,53.778884 L424.706197,512.684524 L12.458094,969.672731 C2.45820596,982.551498 4.01297737,1000.9483 16.0324422,1011.96615 C28.0519071,1022.98399 46.5142346,1022.93619 58.476487,1011.85626 L56.559054,1013.77369 Z' id='路径'%3E%3C/path%3E%3C/g%3E%3C/svg%3E%0A");
background-repeat: no-repeat;
width: 0.625rem;
height: 0.625rem;
background-position: center center;
display: inline-block;
}
.amis-scope .a-AsideNav-item.is-open > a > .a-AsideNav-itemArrow:empty:before {
background: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 513 1021' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg id='right-arrow' fill='%23ffffff' fill-rule='nonzero'%3E%3Cpath d='M56.559054,1013.77369 L512.908116,512.684524 L56.559054,12.234501 C49.4114678,2.93455912 37.6664238,-1.59188176 26.1262324,0.505948246 C14.586041,2.60377825 5.18544409,10.9741727 1.76815516,22.1946471 C-1.64913377,33.4151214 1.48980228,45.6045351 9.901516,53.778884 L424.706197,512.684524 L12.458094,969.672731 C2.45820596,982.551498 4.01297737,1000.9483 16.0324422,1011.96615 C28.0519071,1022.98399 46.5142346,1022.93619 58.476487,1011.85626 L56.559054,1013.77369 Z' id='路径'%3E%3C/path%3E%3C/g%3E%3C/svg%3E%0A");
background-repeat: no-repeat;
width: 0.625rem;
height: 0.625rem;
background-position: center center;
display: inline-block;
}
''' # noqa: E501
web_url = 'https://docs.sayu-bot.com' web_url = 'https://docs.sayu-bot.com'
login_html = f''' login_html = f'''
<html> <html>
<head> <head>
<style> <style>
div {{ {style}
background: rgba(255, 255, 255, 0.6) url('/webstatic/bg.jpg');
background-blend-mode: screen;
background-repeat: no-repeat;
background-attachment: fixed;
background-size: cover;
}}
</style> </style>
</head> </head>
<p> <p>
@ -32,10 +262,10 @@ login_html = f'''
<a href='{web_url}/FAQ/'>常见问题</a> <a href='{web_url}/FAQ/'>常见问题</a>
</div> </div>
<h5 align='center'> <h5 align='center'>
支持连接HoshinoBot · NoneBot2 · Koishi · Yunzai · ZeroBot的多功能Bot插件核心 {sup}
</h5> </h5>
<h5 align='center'> <h5 align='center'>
支持平台: QQ群/频道 · Onebot v11/v12 · WeChat · 飞书 · Tg · Kook/dodo · Dc · 米游社 支持平台: QQ群/频道 · Onebot v11/v12 · WeChat · 飞书 · Tg · Kook/dodo · Dc · 钉钉
</h5> </h5>
</p> </p>
</html> </html>
@ -44,8 +274,8 @@ login_html = f'''
footer_html = f''' footer_html = f'''
<p align='right'> <p align='right'>
<div class='p-2 text-center bg-light'>Copyright © 2021 - 2024 <div class='p-2 text-center bg-light'>Copyright © 2021 - 2024
<a href='https://github.com/KimigaiiWuyi/GenshinUID' target='_blank' <a href='https://github.com/Genshin-bots/gsuid_core' target='_blank'
class='link-secondary'>GenshinUID {gscore_version} class='link-secondary'>早柚核心 {gscore_version}
</a> </a>
X X
<a target='_blank' <a target='_blank'

View File

@ -35,7 +35,7 @@ async def _get_page_as_app(self, request: Request) -> App:
tpl=''' tpl='''
<div class='flex justify-between'> <div class='flex justify-between'>
<div> <div>
<a href='https://github.com/KimigaiiWuyi/GenshinUID' <a href='https://github.com/Genshin-bots/gsuid_core'
target='_blank' title='Copyright'> target='_blank' title='Copyright'>
<i class='fa fa-github fa-2x'></i> <i class='fa fa-github fa-2x'></i>
</a> </a>

View File

@ -231,96 +231,6 @@ class GsNormalForm(admin.FormAdmin):
return True return True
@site.register_admin
class AmisPageAdmin(admin.PageAdmin):
page_schema = '入门使用'
async def get_page(self, request: Request) -> Page:
return Page.parse_obj(
{
'type': 'page',
'body': {
'type': 'markdown',
'value': f'{gsuid_webconsole_help}',
},
}
)
@site.register_admin
class UserBindFormAdmin(GsNormalForm):
page_schema = PageSchema(label='绑定CK或SK', icon='fa fa-link') # type: ignore
async def get_form(self, request: Request) -> Form:
form = await super().get_form(request)
form.body.sort(key=lambda form_item: form_item.type, reverse=True) # type: ignore
form.update_from_kwargs(
title='',
mode=DisplayModeEnum.horizontal,
submitText='绑定',
actionsClassName='no-border m-none p-none',
panelClassName='',
wrapWithPanel=True,
horizontal=Horizontal(left=3, right=9),
actions=[
ButtonToolbar(
buttons=[
Action(
actionType='submit',
label='绑定',
level=LevelEnum.primary,
)
]
)
],
)
return form
async def get_page(self, request: Request) -> Page:
page = await super().get_page(request)
page.body = [
Alert(
level='warning',
body='CK获取可查看左侧栏 [入门使用] 相关细则!',
),
amis.Divider(),
Grid(
columns=[
{
'body': [page.body],
'lg': 10,
'md': 10,
'valign': 'middle',
}
],
align='center',
valign='middle',
),
]
return page
# 创建表单数据模型
class schema(BaseModel):
bot_id: str = Field(..., title='平台ID') # type: ignore
user_id: str = Field(..., title='用户ID', min_length=3, max_length=30) # type: ignore
cookie: str = Field(..., title='Cookie或者Login_ticket') # type: ignore
# 处理表单提交数据
async def handle(
self, request: Request, data: schema, **kwargs
) -> BaseApiOut[Any]:
try:
im = await _deal_ck(data.bot_id, data.cookie, data.user_id)
except Exception as e:
logger.warning(e)
return BaseApiOut(status=-1, msg='你输入的CK可能已经失效/或者该用户ID未绑定UID') # type: ignore
ok_num = im.count('成功')
if ok_num < 1:
return BaseApiOut(status=-1, msg=im) # type: ignore
else:
return BaseApiOut(msg=im) # type: ignore
class GsAdminModel(admin.ModelAdmin): class GsAdminModel(admin.ModelAdmin):
async def has_page_permission( async def has_page_permission(
self, self,
@ -366,51 +276,6 @@ class GsAdminPage(admin.PageAdmin):
) )
@site.register_admin
class CKAdmin(GsAdminModel):
pk_name = 'id'
page_schema = PageSchema(label='CK管理', icon='fa fa-database') # type: ignore
# 配置管理模型
model = GsUser
@site.register_admin
class PushAdmin(GsAdminModel):
pk_name = 'id'
page_schema = PageSchema(label='推送管理', icon='fa fa-bullhorn') # type: ignore
# 配置管理模型
model = GsPush
@site.register_admin
class CacheAdmin(GsAdminModel):
pk_name = 'id'
page_schema = PageSchema(label='缓存管理', icon='fa fa-recycle') # type: ignore
# 配置管理模型
model = GsCache
@site.register_admin
class BindAdmin(GsAdminModel):
pk_name = 'id'
page_schema = PageSchema(label='绑定管理', icon='fa fa-users') # type: ignore
# 配置管理模型
model = GsBind
@site.register_admin
class SubscribeAdmin(GsAdminModel):
pk_name = 'id'
page_schema = PageSchema(label='订阅管理', icon='fa fa-rss') # type: ignore
# 配置管理模型
model = Subscribe
# 注册自定义首页 # 注册自定义首页
@site.register_admin @site.register_admin
class MyHomeAdmin(admin.HomeAdmin): class MyHomeAdmin(admin.HomeAdmin):
@ -486,7 +351,6 @@ class CoreManagePage(GsAdminPage):
return Page.parse_obj(get_core_config_page()) return Page.parse_obj(get_core_config_page())
@site.register_admin
class SVManagePage(GsAdminPage): class SVManagePage(GsAdminPage):
page_schema = PageSchema( page_schema = PageSchema(
label=('功能服务配置'), label=('功能服务配置'),
@ -501,7 +365,6 @@ class SVManagePage(GsAdminPage):
return Page.parse_obj(get_sv_page()) return Page.parse_obj(get_sv_page())
@site.register_admin
class ConfigManagePage(GsAdminPage): class ConfigManagePage(GsAdminPage):
page_schema = PageSchema( page_schema = PageSchema(
label=('修改插件设定'), label=('修改插件设定'),
@ -516,7 +379,6 @@ class ConfigManagePage(GsAdminPage):
return Page.parse_obj(get_config_page()) return Page.parse_obj(get_config_page())
@site.register_admin
class PluginsManagePage(GsAdminPage): class PluginsManagePage(GsAdminPage):
page_schema = PageSchema( page_schema = PageSchema(
label=('插件管理'), label=('插件管理'),
@ -532,6 +394,18 @@ class PluginsManagePage(GsAdminPage):
@site.register_admin @site.register_admin
class PluginsConfig(admin.AdminApp):
page_schema = PageSchema(label="插件管理", icon="fa fa-cogs") # type: ignore
def __init__(self, app: "admin.AdminApp"):
super().__init__(app)
self.register_admin(
SVManagePage,
ConfigManagePage,
PluginsManagePage,
)
class LogsPage(GsAdminPage): class LogsPage(GsAdminPage):
page_schema = PageSchema( page_schema = PageSchema(
label=('实时日志'), label=('实时日志'),
@ -546,7 +420,6 @@ class LogsPage(GsAdminPage):
return Page.parse_obj(create_log_page()) return Page.parse_obj(create_log_page())
@site.register_admin
class HistoryLogsPage(GsAdminPage): class HistoryLogsPage(GsAdminPage):
page_schema = PageSchema( page_schema = PageSchema(
label=('历史日志'), label=('历史日志'),
@ -561,7 +434,6 @@ class HistoryLogsPage(GsAdminPage):
return Page.parse_obj(get_history_logs_page()) return Page.parse_obj(get_history_logs_page())
@site.register_admin
class PushPage(GsAdminPage): class PushPage(GsAdminPage):
page_schema = PageSchema( page_schema = PageSchema(
label=('批量推送消息'), label=('批量推送消息'),
@ -576,5 +448,173 @@ class PushPage(GsAdminPage):
return Page.parse_obj(await get_batch_push_panel()) return Page.parse_obj(await get_batch_push_panel())
@site.register_admin
class LogAndMessage(admin.AdminApp):
page_schema = PageSchema(label="日志和消息", icon="fa fa-comments-o") # type: ignore
def __init__(self, app: "admin.AdminApp"):
super().__init__(app)
self.register_admin(
LogsPage,
HistoryLogsPage,
PushPage,
)
class CKAdmin(GsAdminModel):
pk_name = 'id'
page_schema = PageSchema(label='CK管理', icon='fa fa-database') # type: ignore
# 配置管理模型
model = GsUser
class PushAdmin(GsAdminModel):
pk_name = 'id'
page_schema = PageSchema(label='推送管理', icon='fa fa-bullhorn') # type: ignore
# 配置管理模型
model = GsPush
class CacheAdmin(GsAdminModel):
pk_name = 'id'
page_schema = PageSchema(label='缓存管理', icon='fa fa-recycle') # type: ignore
# 配置管理模型
model = GsCache
class BindAdmin(GsAdminModel):
pk_name = 'id'
page_schema = PageSchema(label='绑定管理', icon='fa fa-users') # type: ignore
# 配置管理模型
model = GsBind
@site.register_admin
class MiHoYoDatabase(admin.AdminApp):
page_schema = PageSchema(label="米游数据库", icon="fa fa-database") # type: ignore
def __init__(self, app: "admin.AdminApp"):
super().__init__(app)
self.register_admin(
CKAdmin,
PushAdmin,
CacheAdmin,
BindAdmin,
)
class AmisPageAdmin(admin.PageAdmin):
page_schema = '入门使用'
async def get_page(self, request: Request) -> Page:
return Page.parse_obj(
{
'type': 'page',
'body': {
'type': 'markdown',
'value': f'{gsuid_webconsole_help}',
},
}
)
class UserBindFormAdmin(GsNormalForm):
page_schema = PageSchema(label='绑定CK或SK', icon='fa fa-link') # type: ignore
async def get_form(self, request: Request) -> Form:
form = await super().get_form(request)
form.body.sort(key=lambda form_item: form_item.type, reverse=True) # type: ignore
form.update_from_kwargs(
title='',
mode=DisplayModeEnum.horizontal,
submitText='绑定',
actionsClassName='no-border m-none p-none',
panelClassName='',
wrapWithPanel=True,
horizontal=Horizontal(left=3, right=9),
actions=[
ButtonToolbar(
buttons=[
Action(
actionType='submit',
label='绑定',
level=LevelEnum.primary,
)
]
)
],
)
return form
async def get_page(self, request: Request) -> Page:
page = await super().get_page(request)
page.body = [
Alert(
level='warning',
body='CK获取可查看左侧栏 [入门使用] 相关细则!',
),
amis.Divider(),
Grid(
columns=[
{
'body': [page.body],
'lg': 10,
'md': 10,
'valign': 'middle',
}
],
align='center',
valign='middle',
),
]
return page
# 创建表单数据模型
class schema(BaseModel):
bot_id: str = Field(..., title='平台ID') # type: ignore
user_id: str = Field(..., title='用户ID', min_length=3, max_length=30) # type: ignore
cookie: str = Field(..., title='Cookie或者Login_ticket') # type: ignore
# 处理表单提交数据
async def handle(
self, request: Request, data: schema, **kwargs
) -> BaseApiOut[Any]:
try:
im = await _deal_ck(data.bot_id, data.cookie, data.user_id)
except Exception as e:
logger.warning(e)
return BaseApiOut(status=-1, msg='你输入的CK可能已经失效/或者该用户ID未绑定UID') # type: ignore
ok_num = im.count('成功')
if ok_num < 1:
return BaseApiOut(status=-1, msg=im) # type: ignore
else:
return BaseApiOut(msg=im) # type: ignore
@site.register_admin
class MiHoYoBind(admin.AdminApp):
page_schema = PageSchema(label="米游账户绑定", icon="fa fa-link") # type: ignore
def __init__(self, app: "admin.AdminApp"):
super().__init__(app)
self.register_admin(
UserBindFormAdmin,
AmisPageAdmin,
)
@site.register_admin
class SubscribeAdmin(GsAdminModel):
pk_name = 'id'
page_schema = PageSchema(label='订阅管理', icon='fa fa-rss') # type: ignore
# 配置管理模型
model = Subscribe
# 取消注册默认管理类 # 取消注册默认管理类
site.unregister_admin(admin.HomeAdmin, APIDocsApp, FileAdmin) site.unregister_admin(admin.HomeAdmin, APIDocsApp, FileAdmin)

View File

@ -25,20 +25,28 @@
} }
:root { :root {
--Page-main-bg: #e389890d; --Page-main-bg: #ffffff;
--colors-brand-main: #ce5050; --colors-brand-main: #ce5050;
--colors-brand-5: #ce5050; --colors-brand-5: #ce5050;
--colors-brand-4: #b84343; --colors-brand-4: #b84343;
--colors-brand-6: #de5b5b; --colors-brand-6: #de5b5b;
--Layout-asideLink-color: #ce5050; --Layout-asideLink-color: #ce5050;
--colors-brand-10: rgba(206, 80, 80, 0.08)
--Layout-nav-height: 2.8rem; --Layout-nav-height: 2.8rem;
--borders-radius-3: 10px; --borders-radius-3: 10px;
--Layout-aside-bg: rgba(0, 0, 0, 0); --Layout-aside-bg: rgba(0, 0, 0, 0);
--sizes-size-7: 1rem;
} }
.amis-scope .a-AppBcn {
background-color: #FFFFFF;
}
/*
.amis-scope .a-Layout--asideFixed .a-Layout-asideWrap { .amis-scope .a-Layout--asideFixed .a-Layout-asideWrap {
box-shadow: 1px 8px 3px 2px rgba(26, 25, 23, 0.3); box-shadow: 1px 8px 3px 2px rgba(26, 25, 23, 0.3);
} }
*/
.amis-scope .a-Layout-brand, .amis-scope .a-Layout-brandBar, .amis-scope .a-Layout-aside { .amis-scope .a-Layout-brand, .amis-scope .a-Layout-brandBar, .amis-scope .a-Layout-aside {
background-color: rgba(0, 0, 0, 0); background-color: rgba(0, 0, 0, 0);
@ -48,6 +56,7 @@
background-color: #FFFFFF; background-color: #FFFFFF;
border-radius: 8px; /* 圆角矩形,可根据需要调整数值 */ border-radius: 8px; /* 圆角矩形,可根据需要调整数值 */
color: #1a1917; /* 修改文字颜色,可根据需要调整颜色值 */ color: #1a1917; /* 修改文字颜色,可根据需要调整颜色值 */
border: 1px solid #ce5050;
} }
.amis-scope .a-AsideNav-item { .amis-scope .a-AsideNav-item {
@ -66,7 +75,7 @@
color: #1a1917; /* 修改文字颜色,可根据需要调整颜色值 */ color: #1a1917; /* 修改文字颜色,可根据需要调整颜色值 */
} }
.amis-scope .a-AsideNav-item:hover .a-AsideNav-itemLabel { .amis-scope .a-AsideNav-item:hover > a > .a-AsideNav-itemLabel {
color: #FFFFFF; color: #FFFFFF;
} }
@ -76,14 +85,23 @@
color: #FFFFFF; /* 修改文字颜色,可根据需要调整颜色值 */ color: #FFFFFF; /* 修改文字颜色,可根据需要调整颜色值 */
} }
.amis-scope .a-ButtonToolbar {
border-radius: 10px;
background-color: #ce5050;
}
.amis-scope .a-AsideNav-item.is-active .a-AsideNav-item .a-AsideNav-itemLabel{ .amis-scope .a-AsideNav-item.is-active .a-AsideNav-item .a-AsideNav-itemLabel{
color: #1a1917; /* 修改文字颜色,可根据需要调整颜色值 */ color: #1a1917; /* 修改文字颜色,可根据需要调整颜色值 */
} }
.amis-scope .a-AsideNav-item.is-active .a-AsideNav-item:hover .a-AsideNav-itemLabel{ .amis-scope .a-AsideNav-item.is-open > .a-AsideNav-item:hover > .a-AsideNav-itemLabel{
color: #FFFFFF; /* 修改文字颜色,可根据需要调整颜色值 */ color: #FFFFFF; /* 修改文字颜色,可根据需要调整颜色值 */
} }
.amis-scope .a-AsideNav-item:hover > a > .a-AsideNav-itemLabel {
color: unset;
}
.amis-scope .a-AsideNav-item.is-active .a-AsideNav-itemLabel { .amis-scope .a-AsideNav-item.is-active .a-AsideNav-itemLabel {
color: #FFFFFF; /* 修改文字颜色,可根据需要调整颜色值 */ color: #FFFFFF; /* 修改文字颜色,可根据需要调整颜色值 */
} }
@ -92,6 +110,21 @@
border-radius: 8px; border-radius: 8px;
} }
.a-AsideNav-item.is-open:has(.a-AsideNav-item.is-open.is-active) {
background-color: transparent;
color: #FFFFFF;
}
a-AsideNav-item.is-open > a > i {
color: #FFFFFF;
}
a-AsideNav-item.is-open > a > a-AsideNav-itemLabel {
color: #FFFFFF;
}
.amis-scope .a-AsideNav-item a:hover { .amis-scope .a-AsideNav-item a:hover {
background-color: #ce5050; background-color: #ce5050;
border-radius: 8px; border-radius: 8px;
@ -140,6 +173,25 @@
} }
.amis-scope .a-AsideNav-itemArrow:empty { .amis-scope .a-AsideNav-itemArrow:empty {
background-repeat: no-repeat;
width: 0.625rem;
height: 0.625rem;
background-position: center center;
display: inline-block;
background: none !important; /* 移除原有背景 */
}
.amis-scope .a-AsideNav-item a:hover .a-AsideNav-itemArrow:empty:before {
background: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 513 1021' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg id='right-arrow' fill='%23ffffff' fill-rule='nonzero'%3E%3Cpath d='M56.559054,1013.77369 L512.908116,512.684524 L56.559054,12.234501 C49.4114678,2.93455912 37.6664238,-1.59188176 26.1262324,0.505948246 C14.586041,2.60377825 5.18544409,10.9741727 1.76815516,22.1946471 C-1.64913377,33.4151214 1.48980228,45.6045351 9.901516,53.778884 L424.706197,512.684524 L12.458094,969.672731 C2.45820596,982.551498 4.01297737,1000.9483 16.0324422,1011.96615 C28.0519071,1022.98399 46.5142346,1022.93619 58.476487,1011.85626 L56.559054,1013.77369 Z' id='路径'%3E%3C/path%3E%3C/g%3E%3C/svg%3E%0A");
background-repeat: no-repeat;
width: 0.625rem;
height: 0.625rem;
background-position: center center;
display: inline-block;
}
.amis-scope .a-AsideNav-itemArrow:empty:before {
content: "";
background: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 513 1021' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg id='right-arrow' fill='%23ce5050' fill-rule='nonzero'%3E%3Cpath d='M56.559054,1013.77369 L512.908116,512.684524 L56.559054,12.234501 C49.4114678,2.93455912 37.6664238,-1.59188176 26.1262324,0.505948246 C14.586041,2.60377825 5.18544409,10.9741727 1.76815516,22.1946471 C-1.64913377,33.4151214 1.48980228,45.6045351 9.901516,53.778884 L424.706197,512.684524 L12.458094,969.672731 C2.45820596,982.551498 4.01297737,1000.9483 16.0324422,1011.96615 C28.0519071,1022.98399 46.5142346,1022.93619 58.476487,1011.85626 L56.559054,1013.77369 Z' id='路径'%3E%3C/path%3E%3C/g%3E%3C/svg%3E%0A"); background: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 513 1021' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg id='right-arrow' fill='%23ce5050' fill-rule='nonzero'%3E%3Cpath d='M56.559054,1013.77369 L512.908116,512.684524 L56.559054,12.234501 C49.4114678,2.93455912 37.6664238,-1.59188176 26.1262324,0.505948246 C14.586041,2.60377825 5.18544409,10.9741727 1.76815516,22.1946471 C-1.64913377,33.4151214 1.48980228,45.6045351 9.901516,53.778884 L424.706197,512.684524 L12.458094,969.672731 C2.45820596,982.551498 4.01297737,1000.9483 16.0324422,1011.96615 C28.0519071,1022.98399 46.5142346,1022.93619 58.476487,1011.85626 L56.559054,1013.77369 Z' id='路径'%3E%3C/path%3E%3C/g%3E%3C/svg%3E%0A");
background-repeat: no-repeat; background-repeat: no-repeat;
width: 0.625rem; width: 0.625rem;
@ -149,7 +201,7 @@
} }
.amis-scope .a-AsideNav-itemArrow:empty:before { .amis-scope .a-AsideNav-item.is-open > a > .a-AsideNav-itemArrow:empty:before {
background: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 513 1021' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg id='right-arrow' fill='%23ffffff' fill-rule='nonzero'%3E%3Cpath d='M56.559054,1013.77369 L512.908116,512.684524 L56.559054,12.234501 C49.4114678,2.93455912 37.6664238,-1.59188176 26.1262324,0.505948246 C14.586041,2.60377825 5.18544409,10.9741727 1.76815516,22.1946471 C-1.64913377,33.4151214 1.48980228,45.6045351 9.901516,53.778884 L424.706197,512.684524 L12.458094,969.672731 C2.45820596,982.551498 4.01297737,1000.9483 16.0324422,1011.96615 C28.0519071,1022.98399 46.5142346,1022.93619 58.476487,1011.85626 L56.559054,1013.77369 Z' id='路径'%3E%3C/path%3E%3C/g%3E%3C/svg%3E%0A"); background: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 513 1021' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg id='right-arrow' fill='%23ffffff' fill-rule='nonzero'%3E%3Cpath d='M56.559054,1013.77369 L512.908116,512.684524 L56.559054,12.234501 C49.4114678,2.93455912 37.6664238,-1.59188176 26.1262324,0.505948246 C14.586041,2.60377825 5.18544409,10.9741727 1.76815516,22.1946471 C-1.64913377,33.4151214 1.48980228,45.6045351 9.901516,53.778884 L424.706197,512.684524 L12.458094,969.672731 C2.45820596,982.551498 4.01297737,1000.9483 16.0324422,1011.96615 C28.0519071,1022.98399 46.5142346,1022.93619 58.476487,1011.85626 L56.559054,1013.77369 Z' id='路径'%3E%3C/path%3E%3C/g%3E%3C/svg%3E%0A");
background-repeat: no-repeat; background-repeat: no-repeat;
width: 0.625rem; width: 0.625rem;
@ -158,6 +210,16 @@
display: inline-block; display: inline-block;
} }
.amis-scope .a-Panel {
margin: 1.5rem 1.5rem 1.5rem 1.5rem;
}
.amis-scope .a-Property > table {
border-radius: 10px;
overflow: hidden;
}
</style> </style>
</head> </head>

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 346 KiB