Skip to content

FSelectTree 异步树选择 ​

基于 Element Plus ElTreeSelect 封装的异步树选择组件,支持统一请求配置、树字段映射、单选/多选以及原生属性、事件和插槽透传。

基础用法 ​

通过 request 传入公共 BaseRequestConfig。组件挂载后默认请求完整树数据,通过 Element Plus 原生 props 属性配置节点字段。

loading

在 FForm 中使用 ​

ts
const schemas = [
  {
    field: 'departmentId',
    label: '部门',
    component: 'FSelectTree',
    componentProps: {
      request: { api: fetchDepartmentTree },
      nodeKey: 'id',
      props: { label: 'name', children: 'children' },
      clearable: true,
      checkStrictly: true,
    },
  },
]

现有 FTreeSelect 仍对应 Element Plus 原生树选择器;需要异步请求能力时使用 FSelectTree。

请求约定 ​

组件调用 request.api 时默认传入空对象。可使用 beforeRequest 添加参数,使用 afterResponse 转换响应,并通过 responseMap.list 指定树数据路径。

ts
const request: BaseRequestConfig = {
  api: fetchDepartmentTree,
  beforeRequest: () => ({ tenantId: 1 }),
  responseMap: {
    list: 'data.nodes',
  },
}

API ​

属性 ​

参数说明类型默认值
modelValue选中值,支持单选或多选any | any[]—
request公共请求配置BaseRequestConfig必填
propsElement Plus 树节点字段配置TreeOptionProps标准字段名

组件继承 Element Plus ElTreeSelect 的其他属性;data 和请求加载状态由组件内部控制。

底层组件同时支持树组件与选择器组件的属性、事件和插槽。节点值默认读取 value,使用 id 等其他字段时,应设置 node-key="id",且节点键必须在整棵树中唯一;绑定值应为节点键,不支持直接绑定节点对象。

SelectTreeProps 是本组件库从 ElTreeSelect 实例属性派生的类型,并非 Element Plus 官方导出的类型。组件公开的 focus()、blur() 在新版本中通过底层 selectRef 调用。

事件 ​

事件名说明参数
data-change树数据请求成功any[]
request-error请求失败error
其他原生事件原样透传与 Element Plus 一致

插槽 ​

全部 ElTreeSelect 具名插槽均原样转发,插槽参数与 Element Plus 一致。

公开方法 ​

方法说明
fetchData()请求树数据
reload()重新请求树数据
focus()聚焦选择器
blur()取消聚焦