This commit is contained in:
parent
09f3ff2cc2
commit
0927c1e940
|
|
@ -89,9 +89,7 @@ def task_history_item(
|
||||||
rx.text(
|
rx.text(
|
||||||
item.description,
|
item.description,
|
||||||
flex=1,
|
flex=1,
|
||||||
height="22px",
|
line_height="20px",
|
||||||
line_height="22px",
|
|
||||||
padding_right="18px",
|
|
||||||
color="var(--prismui-color-2)",
|
color="var(--prismui-color-2)",
|
||||||
text_overflow="ellipsis",
|
text_overflow="ellipsis",
|
||||||
white_space="nowrap",
|
white_space="nowrap",
|
||||||
|
|
@ -100,111 +98,11 @@ def task_history_item(
|
||||||
display="flex",
|
display="flex",
|
||||||
align_items="center",
|
align_items="center",
|
||||||
width="100%",
|
width="100%",
|
||||||
margin_bottom="8px",
|
padding="5px 0",
|
||||||
# 点击事件:设置激活任务
|
# 点击事件:设置激活任务
|
||||||
on_click=lambda: TaskState.set_task(item.id),
|
on_click=lambda: TaskState.set_task(item.id),
|
||||||
),
|
),
|
||||||
# 任务更多按钮
|
|
||||||
rx.box(
|
|
||||||
rx.popover.root(
|
|
||||||
rx.popover.trigger(
|
|
||||||
rx.box(
|
|
||||||
rx.icon(
|
|
||||||
"ellipsis",
|
|
||||||
width="14px",
|
|
||||||
height="14px",
|
|
||||||
color="var(--prismui-color-2)",
|
|
||||||
),
|
|
||||||
cursor="pointer",
|
|
||||||
)
|
|
||||||
),
|
|
||||||
rx.popover.content(
|
|
||||||
rx.vstack(
|
|
||||||
rx.box(
|
|
||||||
position="absolute",
|
|
||||||
top="-6px",
|
|
||||||
left="50%",
|
|
||||||
transform="translateX(-50%) rotate(45deg)",
|
|
||||||
width="8px",
|
|
||||||
height="8px",
|
|
||||||
background_color="var(--prismui-background-color-1)",
|
|
||||||
),
|
|
||||||
rx.popover.close(
|
|
||||||
rx.box(
|
|
||||||
"删除",
|
|
||||||
# 点击事件:删除任务
|
|
||||||
on_click=lambda: TaskState.delete_task(item.id),
|
|
||||||
display="flex",
|
|
||||||
align_items="center",
|
|
||||||
justify_content="center",
|
|
||||||
width="100%",
|
|
||||||
height="24px",
|
|
||||||
border_radius="var(--prismui-border-radius-1)",
|
|
||||||
line_height="16px",
|
|
||||||
font_family="var(--prismui-font-family)",
|
|
||||||
font_size="var(--prismui-font-size-1)",
|
|
||||||
color="var(--prismui-color-1)",
|
|
||||||
style={
|
|
||||||
"_hover": {
|
|
||||||
"background_color": "var(--prismui-background-color-6)",
|
|
||||||
}, # 鼠标悬停显示背景颜色
|
|
||||||
},
|
|
||||||
cursor="pointer",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
position="relative",
|
|
||||||
width="100%",
|
|
||||||
),
|
|
||||||
side="bottom",
|
|
||||||
side_offset=8,
|
|
||||||
position="relative",
|
|
||||||
align="center",
|
|
||||||
padding="4px 8px",
|
|
||||||
border_radius="var(--prismui-border-radius-1)",
|
|
||||||
box_shadow="var(--prismui-box-shadow-6)",
|
|
||||||
overflow="visible",
|
|
||||||
),
|
|
||||||
# 悬停气泡显示 / 隐藏变化事件:设置任务历史项悬停气泡显示 / 隐藏
|
|
||||||
on_open_change=lambda is_shown: TaskState.set_task_history_item_popover_shown(
|
|
||||||
item.id, is_shown
|
|
||||||
),
|
|
||||||
open_delay=0,
|
|
||||||
),
|
|
||||||
position="absolute",
|
|
||||||
top="27px",
|
|
||||||
right="16px",
|
|
||||||
transform="translateY(-50%)",
|
|
||||||
z_index="99",
|
|
||||||
min_width="14px",
|
|
||||||
cursor="pointer",
|
|
||||||
opacity=rx.cond(is_highlight, "1", "0"),
|
|
||||||
transition="opacity 0.18s ease-in-out",
|
|
||||||
pointer_events=rx.cond(is_highlight, "auto", "none"),
|
|
||||||
),
|
|
||||||
display="flex",
|
|
||||||
position="relative",
|
|
||||||
align_items="flex-start",
|
|
||||||
width="100%",
|
width="100%",
|
||||||
padding="16px",
|
|
||||||
margin_bottom="8px",
|
|
||||||
background=rx.cond(
|
|
||||||
is_highlight,
|
|
||||||
"var(--prismui-background-3)",
|
|
||||||
"var(--prismui-background-color-1)",
|
|
||||||
),
|
|
||||||
border_radius="var(--prismui-border-radius-3)",
|
|
||||||
box_shadow=rx.cond(is_highlight, "var(--prismui-box-shadow-7)", "none"),
|
|
||||||
cursor="pointer",
|
|
||||||
style={
|
|
||||||
"&:hover": {
|
|
||||||
"background": "var(--prismui-background-3)",
|
|
||||||
"box_shadow": "var(--prismui-box-shadow-7)",
|
|
||||||
}, # 鼠标悬停背景颜色和阴影
|
|
||||||
"&:hover > div:last-child": {
|
|
||||||
"opacity": "1",
|
|
||||||
"pointer_events": "auto",
|
|
||||||
}, # 鼠标悬停显示更多按钮
|
|
||||||
},
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -214,20 +112,23 @@ def task_history() -> rx.Component:
|
||||||
:return: rx.Component
|
:return: rx.Component
|
||||||
"""
|
"""
|
||||||
return rx.auto_scroll(
|
return rx.auto_scroll(
|
||||||
rx.foreach(
|
rx.list(
|
||||||
TaskState.task_history,
|
rx.foreach(
|
||||||
task_history_item,
|
TaskState.task_history,
|
||||||
),
|
task_history_item,
|
||||||
flex="1",
|
),
|
||||||
align_items="stretch",
|
display="flex",
|
||||||
width="100%",
|
flex_direction="column",
|
||||||
margin_top="8px",
|
gap="2px",
|
||||||
style={
|
width="100%",
|
||||||
"&::-webkit-scrollbar": {
|
style={
|
||||||
"display": "none",
|
"&::-webkit-scrollbar": {
|
||||||
|
"display": "none",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
overflow="auto",
|
||||||
overflow="auto",
|
),
|
||||||
|
width="100%",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -343,25 +244,31 @@ def sidebar() -> rx.Component:
|
||||||
),
|
),
|
||||||
align_items="center",
|
align_items="center",
|
||||||
gap="4px",
|
gap="4px",
|
||||||
|
width="100%",
|
||||||
height="56px",
|
height="56px",
|
||||||
padding="0 0 12px 12px",
|
padding="0 12px 12px",
|
||||||
),
|
),
|
||||||
# 渲染导航按钮
|
# 渲染导航按钮
|
||||||
rx.vstack(
|
rx.vstack(
|
||||||
# 渲染导航按钮:创建任务
|
# 渲染导航按钮:创建任务
|
||||||
nav_button("create_task"),
|
nav_button("create_task"),
|
||||||
gap="2px",
|
gap="2px",
|
||||||
padding="0 0 16px 0",
|
width="100%",
|
||||||
|
padding_bottom="16px",
|
||||||
),
|
),
|
||||||
# 渲染最近任务
|
# 渲染最近任务
|
||||||
rx.vstack(
|
rx.vstack(
|
||||||
|
# 标题
|
||||||
rx.text(
|
rx.text(
|
||||||
"最近",
|
"最近",
|
||||||
line_height="20px",
|
line_height="20px",
|
||||||
font_size="var(--prismui-font-size-2)",
|
font_size="var(--prismui-font-size-2)",
|
||||||
padding="0 0 0 10px",
|
padding="5px 10px 5px 22px",
|
||||||
),
|
),
|
||||||
|
# 历史任务
|
||||||
task_history(),
|
task_history(),
|
||||||
|
gap="2px",
|
||||||
|
width="100%",
|
||||||
padding="0 12px",
|
padding="0 12px",
|
||||||
),
|
),
|
||||||
align_items="flex-start",
|
align_items="flex-start",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue