4.9 KiB
4.9 KiB
以下是根据你提供的源码中定义的两个控件(TreeNode 和 Tree)编写的 Markdown 格式控件文档,每个控件均按照要求包含一级标题、功能描述、类型与父类,以及“初始化参数”和“主要事件”两个二级标题。
TreeNode
控件功能:表示树结构中的一个节点,用于展示树形数据中的单个条目,支持展开/折叠子节点、图标显示、复选框等功能。它是构成树形结构的基本单元。
类型:普通控件
父类控件:bricks.VBox
初始化参数
| 参数名 | 类型 | 说明 |
|---|---|---|
tree |
bricks.Tree 实例 |
所属的树控件实例,用于回调和共享配置 |
pnode |
bricks.TreeNode 实例或 null |
父节点实例,根节点为 null |
data |
Object |
节点绑定的数据对象,包含文本、ID、是否为叶子等字段 |
在构造函数中通过 opts 设置默认布局属性:
width: '100%'height: 'auto'
内部自动设置以下状态和属性:
this.is_leaf:根据data[tree.is_leafField]判断是否为叶子节点this.params:传递给后端请求的参数,包含节点 ID 和类型信息this.container:仅非叶子节点创建,用于容纳子节点的VBox容器(初始隐藏)
主要事件
| 事件名 | 触发条件 | 回调参数说明 |
|---|---|---|
click(注册于 node_widget) |
用户点击节点行时触发 | 由 tree.node_click_handle 处理,传入当前节点实例 |
state_changed(注册于 triple 控件) |
节点前导图标状态切换时(点击展开/折叠图标) | 触发 toggleExpandCollapse 方法,控制子节点容器的显隐 |
(间接)changed(注册于 check_w) |
若启用复选框,用户勾选/取消勾选时触发 | 交由 tree.node_checked 处理,更新 checked_data 并派发事件 |
注意:
TreeNode自身不直接 dispatch 公共事件,而是通过所属Tree实例进行事件分发。
Tree
控件功能:树形结构控件,用于展示层级化的数据(如目录、组织架构等),支持异步加载、节点增删改、复选、工具栏操作等功能。可作为静态树或可编辑树使用。
类型:容器控件
父类控件:bricks.VScrollPanel
初始化参数
| 参数名 | 类型 | 必需 | 说明 |
|---|---|---|---|
row_height |
String |
否 | 每个节点行的高度,默认 '35px' |
idField |
String |
是 | 数据中表示节点唯一标识的字段名 |
textField |
String |
是 | 数据中表示节点显示文本的字段名 |
is_leafField |
String |
否 | 标识节点是否为叶子节点的字段名,默认 'is_leaf' |
typeField |
String |
否 | 区分节点类型的字段名,用于定制图标 |
data |
Array |
否 | 静态树数据数组,直接初始化节点 |
dataurl |
String |
否 | 异步加载子节点数据的 URL 地址 |
method |
String |
否 | 请求数据的方法,默认 'GET' |
params |
Object |
否 | 请求时附加的全局参数 |
node_view |
Widget Description |
否 | 自定义节点渲染模板(描述对象) |
checkField |
String |
否 | 支持复选功能时,数据中保存勾选状态的字段名 |
node_typeicons |
Object |
否 | 按节点类型定义图标的映射表,格式 { nodetype: { open, close, leaf }, default_type: "type" } |
editable |
Object |
否 | 编辑配置,含 fields, add_url, delete_url, update_url 等 |
newdata_params |
Object |
否 | 添加新节点时额外注入的固定参数 |
主要事件
| 事件名 | 触发条件 | 回调参数说明 |
|---|---|---|
node_selected |
节点被点击选中或取消选中时派发 | 参数为 node.user_data 扩展了 { selected: true/false } |
check_changed |
节点复选框状态改变时派发 | 参数为该节点的 user_data,反映最新勾选状态 |
command(来自 toolbar_w) |
工具栏按钮被点击时触发 | 由 toolbar_command 处理,根据 event.params.name 执行添加、删除、更新或其他自定义命令 |
(自定义命令)如 add, delete, update 等 |
用户执行相应操作并成功提交后,通过 dispatch(name, data) 派发 |
data 包含节点数据及元信息 meta_data(来源、标题、图标等),可用于打开表单或通知其他模块 |
此外,Tree 还会响应以下用户交互行为并执行逻辑:
- 展开/折叠节点(通过
expand()/collapse()) - 动态加载子节点数据(
get_children_data) - 增删改节点(通过 HTTP 请求或本地操作)
✅ 文档说明:以上内容基于源码分析生成,适用于开发人员查阅组件接口与行为。实际使用时需确保依赖
bricks框架核心模块(如HttpJson,ModalForm,IconTextBar等)已正确加载。