62 lines
2.0 KiB
Python
62 lines
2.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
应用主入口
|
|
"""
|
|
import reflex as rx
|
|
|
|
from application.pages.workbench import workbench
|
|
from application.workshop.database import connection_pool_init
|
|
|
|
|
|
app = rx.App(
|
|
theme=rx.theme(color_mode="light"),
|
|
head_components=[
|
|
rx.script(
|
|
"""
|
|
document.addEventListener('click', function(e) {
|
|
const link = e.target.closest('a');
|
|
if (!link) return;
|
|
const href = link.getAttribute('href');
|
|
if (href && (href.startsWith('http://') || href.startsWith('https://'))) {
|
|
link.target = '_blank';
|
|
link.rel = 'noopener noreferrer';
|
|
}
|
|
})
|
|
"""
|
|
)
|
|
],
|
|
stylesheets=["/styles.css"],
|
|
style={
|
|
"box-shadow": "none",
|
|
"background-color": "var(--prismui-background-color-1)", # 默认背景颜色
|
|
"font_family": "var(--prismui-font-family)",
|
|
"font_size": "var(--prismui-font-size-2)",
|
|
"font_weight": "var(--prismui-font-weight-1)",
|
|
"color": "var(--prismui-color-1)",
|
|
"*": {
|
|
"margin": "0",
|
|
"padding": "0",
|
|
"gap": "0",
|
|
},
|
|
"*::before, *::after": {
|
|
"box-sizing": "border-box",
|
|
},
|
|
"* .rt-TextFieldRoot, * textarea": {
|
|
"border": "var(--prismui-border-1)",
|
|
"outline": "none",
|
|
"box-shadow": "none",
|
|
},
|
|
".rt-TextAreaInput::placeholder, .rt-TextFieldInput::placeholder": {
|
|
"font-family": "var(--font-family)",
|
|
"font-size": "var(--prismui-font-size-2)",
|
|
"color": "var(--prismui-color-3)",
|
|
"opacity": 1,
|
|
}, # 覆盖占位符样式
|
|
},
|
|
) # 此处变量名需使用 app ,具体原因目前尚不清楚
|
|
|
|
# 添加页面:工作台
|
|
app.add_page(component=workbench(), route="/")
|
|
# 注册声明周期任务:连接池初始化
|
|
app.register_lifespan_task(connection_pool_init)
|