feat:架构重构

This commit is contained in:
2026-10-01 23:08:06 -07:00
parent b82dc93404
commit 68588d1f92
74 changed files with 1131 additions and 3492 deletions
+29
View File
@@ -0,0 +1,29 @@
---
name: chart-replace
description: 把已有组件换成另一种组件类型,例如"把折线图换成饼图""表格改成柱状图"。组件类型不能通过修改属性改变,要按这里的步骤替换;新组件沿用原组件的 ID、位置和数据
---
# 更换组件类型
## 步骤
1. 用 get_nodes 读取原组件的完整配置
2. 用 list_components 选出用户要的新类型,用 get_component_materials 查看它的默认配置
3. 在同一批动作里先 delete 原组件,再 add 新组件:
- node.id 沿用原组件 ID,layout 沿用原组件的位置和尺寸(用户另有要求除外)
- component_key 选新类型对应的物料
4. 用 apply_actions 提交
## 数据迁移
- 把原组件的展示数据迁移到新物料的配置结构:保留原数据的维度和数值,按新物料默认配置的写法改写字段映射,
例如原 encode 的 x/y 改为新图表需要的名称和数值映射
- 原类型特有、新物料不用的配置(如坐标轴)不要带过去
- 提供 series 等数组时,以物料默认配置中的对应项为基础写完整
- 原数据无法对应到新类型时,不写数据相关字段,沿用物料示例数据
## 标题
- 原标题只是旧类型的名称(如"折线图")时,改为新类型的名称(如"饼图")
- 用户自定义的标题保留
- 不使用物料的示例标题
+28
View File
@@ -0,0 +1,28 @@
---
name: screen-design
description: 新建大屏,或在大屏上新增组件、整体重新布局、统一调整风格。例如"做一个销售分析大屏""加一个销售占比饼图""四个组件排成两行两列""整体换成深色风格"
---
# 设计大屏
## 选组件
1. 用 list_components 查看可用组件,按用户要展示的内容选类型;不编造目录中没有的组件类型
2. 用 get_component_materials 查看所选类型的默认配置(可一次查多个类型),新组件以默认配置为基础,只写需要改的字段,例如标题
3. 新建大屏时,根据主题安排一个标题文本和若干图表;图表标题按要展示的内容写,不沿用物料的示例标题
## 布局
- 位置和尺寸参考物料的默认尺寸,按画布大小安排;新组件不与已有组件重叠
- 画布上没有空位时,可以移动或缩小已有组件给新组件腾出位置,不改它们的内容
- 多个组件对齐排列,之间留出间距
- 用户没有指定的位置、尺寸、标题和数据采用合理默认
## 整体调整
- 重新布局:用 move 和 resize 调整已有组件,不删除、不重建
- 统一风格:先用 get_nodes 读取组件配置,用 search_fields 找到颜色等字段,再逐个修改;画布背景用 update_canvas
## 提交
本次的所有新增和调整放在同一批,用 apply_actions 提交
+29
View File
@@ -0,0 +1,29 @@
---
name: screen-edit
description: 修改大屏上已有的组件或画布:改标题、文字、颜色、字号、图例、标签等属性,移动位置、调整尺寸,删除组件,修改画布尺寸或背景。例如"把柱状图标题改成区域销售额""标题移到正中间""删掉利润图"
---
# 修改已有组件
## 确定目标
- 结合会话历史和澄清记录理解"这个""它""刚才那个"等指代;用户说"这个"且有选中的组件(context.selected_node_ids)时,通常指选中的组件
- 按大屏摘要里的 type、name、titles 和位置找组件;用户看的是大屏画面,没有提到图层列表、属性面板等编辑器位置时,按画面上看得到的内容理解
- 用户后续补充或纠正的内容优先;不重复执行历史中已经完成的操作
## 改属性
1. 用 search_fields 查字段:传组件的 type 和用户原话中对属性的说法(如"柱子颜色""数值标签"),不用改写后的说法
2. 返回多个字段时,依据字段说明判断用户指的是哪一个;需要了解一组相关字段时,用 list_field_groups 看分组,再用 get_fields
一次查多个分组
3. 只用查到的字段路径,值要符合字段的类型、可选值和取值范围;查不到对应字段说明物料不支持这项修改,按无法完成处理,不自行编造路径
4. 需要基于当前值修改时(如"字号调大一点"),先用 get_nodes 读取当前配置
## 位置和尺寸
- 相对变化("放大一倍""往右移 100")依据大屏摘要中的当前位置和尺寸换算
- "放到正中间"等按画布尺寸计算目标位置
## 提交
本次的所有修改放在同一批,用 apply_actions 提交