feat:图表交互
This commit is contained in:
@@ -82,6 +82,7 @@ def _result_text(
|
||||
"""执行结果:除了动作数量,还给出执行后的画布和每个组件的布局
|
||||
|
||||
模型提交后才第一次看到结果,能自己发现位置超出画布、互相重叠、没排整齐等问题再修正;
|
||||
带显示条件的组件标出条件,不同时显示的组件重叠不算问题;
|
||||
这一批动过布局或新增的组件前面标 *,这一批删除的单独列出
|
||||
没有带来变化时也照样给出布局:只说"已经写入"会让模型以为达到了目标,可能当前大屏本来就是这样、并不符合要求
|
||||
统一说"写入草稿"、"回复 done 时交付":说"已生效"时模型回复 unable 也会说已经改了什么,
|
||||
@@ -150,15 +151,27 @@ def _result_text(
|
||||
)
|
||||
|
||||
old_layouts = {node.id: node.layout for node in before.nodes}
|
||||
# 整页切换时不同页的组件放在同一块区域,标出显示条件,模型才不会把它们当成重叠去挪开
|
||||
lines.append(
|
||||
f"执行后画布 {after.canvas.width:g}x{after.canvas.height:g},组件布局(* 为本次改动):"
|
||||
)
|
||||
if any(node.visibleWhen is not None for node in after.nodes):
|
||||
lines.append(
|
||||
"标了「仅 变量=值 时显示」的组件只在变量等于该值时出现,"
|
||||
"同一变量取不同值的组件不会同时显示,它们之间重叠不算问题"
|
||||
)
|
||||
for node in after.nodes:
|
||||
layout = node.layout
|
||||
mark = "*" if old_layouts.get(node.id) != layout else " "
|
||||
condition = (
|
||||
f" 仅 {node.visibleWhen.var}={json.dumps(node.visibleWhen.equals, ensure_ascii=False)} 时显示"
|
||||
if node.visibleWhen is not None
|
||||
else ""
|
||||
)
|
||||
lines.append(
|
||||
f"{mark} {node.id} {node.type} "
|
||||
f"x={layout.x:g} y={layout.y:g} width={layout.width:g} height={layout.height:g}"
|
||||
+ condition
|
||||
)
|
||||
if removed := [
|
||||
item for item in old_layouts if item not in {n.id for n in after.nodes}
|
||||
|
||||
Reference in New Issue
Block a user