# 层级选择控件

在表单选择组织部门、物料分类或地点等有上下级关系的值。

## 放置与配置

在易企办测试应用中打开审批表单或支持自定义代码控件的页面，添加自定义代码控件，将同目录 TSX 完整粘贴到编辑器。先核对位置、字段类型与读写权限，再配置下表。

| 参数标识 | 类型 | 标准场景 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `dataListId` | 变量或表达式 | 需要 | 数据列表 ID。保存层级数据的列表 ID。 | `203...` |
| `idField` | 变量或表达式 | 需要 | 节点标识字段。每个节点唯一标识的来源字段。 | `ListDataID` |
| `parentField` | 变量或表达式 | 需要 | 上级字段。保存父节点标识的字段。 | `ParentId` |
| `labelField` | 变量或表达式 | 需要 | 显示名称字段。用作节点名称的字段标识。 | `Title` |
| `valueField` | 变量或表达式 | 需要 | 保存值字段。写入目标字段的节点值来源。 | `ListDataID` |
| `saveToField` | 变量或表达式 | 需要 | 保存目标。保存结果的可写字段或变量。 | `SelectedCategoryIds` |
| `multiSelect` | 变量或表达式 | 按需 | 允许多选。开启后可以同时选择多项。 | `true` |
| `titleText` | 文本 | 按需 | 标题。显示在控件顶部的主标题。 | `Category` |
| `subtitleText` | 文本 | 按需 | 副标题。显示在主标题下方的说明。 | `请选择分类` |
| `maxItems` | 文本 | 按需 | 最大条数。最多保留的来源记录数。 | `200` |
| `emptyText` | 文本 | 按需 | 空状态提示。没有可展示数据时的提示文案。 | `暂无层级数据` |
| `filterExpression` | 变量或表达式 | 按需 | 查询筛选条件。可选的列表查询条件。 | 按需留空 |

示例字段和列表 ID 请替换为目标应用的实际值。表达式请在编辑器中绑定。保存目标使用可写文本字段或环境支持的可写变量。

1. 准备节点和父节点标识。
2. 映射显示名与保存值。
3. 测试展开、选择及回显。

## 业务示例与结果

为物料申请选择「办公设备 / 显示器」。来源行各有唯一 ID，子节点父 ID 引用上级的唯一 ID，根节点父 ID 留空。

可单选或多选，均以字符串数组的 JSON 文本写入保存目标，例如 `["display-monitor"]`。已有值可回显，查看页面禁用选择。

来源列表需授予使用者读取权限。控件读取查询返回的首批记录，再按配置筛选、排序或截取。数据量较大时，按目标租户的 SDK 筛选格式缩小查询范围。

## 预览验收

分别验证根、子节点、单选、多选、已有值和只读状态。确认页面使用节点标识组树、使用保存值字段写入。

出现空结果时，先核对参数值、来源数据、字段标识和使用者权限。涉及写回时，再检查可写目标类型、当前页面权限及保存后的实际值。

模板已做本地源码与交互检查。发布到业务环境前，请在目标易企办租户验证当前版本的控件编辑器、数据权限和实际读写。

源模板 CCTC1E12。 [Yeeflow 原站控件](https://www.yeeflow.com/templates/custom-code/hierarchical-selector)
