开发预览 更新于 2026-05-10

TreeSelect 树形选择

把树形数据放进下拉选择器,支持搜索、多选、清空与禁用节点。

基础用法

CfTreeSelect 面向部门、权限、资源目录、地区等层级数据。选项通过 children 描述树结构,搜索会匹配节点自身与路径。

背景

已选:edge-workers

<script setup lang="ts">
import { ref } from 'vue';
import { CfTreeSelect, type TreeSelectNode } from '@chufix-design/vue';

const value = ref('edge-workers');
const options: TreeSelectNode[] = [
  {
    value: 'platform',
    label: '平台能力',
    children: [
      { value: 'edge-workers', label: 'Workers' },
      { value: 'storage-d1', label: 'D1 数据库' },
      { value: 'storage-r2', label: 'R2 存储' },
    ],
  },
  {
    value: 'product',
    label: '产品体验',
    children: [
      { value: 'docs', label: '文档站' },
      { value: 'dashboard', label: '控制台' },
      { value: 'billing', label: '计费中心', disabled: true },
    ],
  },
];
</script>

<template>
  <div class="demo-stack">
    <CfTreeSelect v-model="value" :options="options" searchable clearable />
    <p class="demo-hint">已选:<code>{{ value ?? 'undefined' }}</code></p>
  </div>
</template>
<script setup>
import { ref } from 'vue';
import { CfTreeSelect } from '@chufix-design/vue';

const value = ref('edge-workers');
const options= [
  {
    value: 'platform',
    label: '平台能力',
    children: [
      { value: 'edge-workers', label: 'Workers' },
      { value: 'storage-d1', label: 'D1 数据库' },
      { value: 'storage-r2', label: 'R2 存储' },
    ],
  },
  {
    value: 'product',
    label: '产品体验',
    children: [
      { value: 'docs', label: '文档站' },
      { value: 'dashboard', label: '控制台' },
      { value: 'billing', label: '计费中心', disabled: true },
    ],
  },
];
</script>

<template>
  <div class="demo-stack">
    <CfTreeSelect v-model="value" :options="options" searchable clearable />
    <p class="demo-hint">已选:<code>{{ value ?? 'undefined' }}</code></p>
  </div>
</template>
<CfTreeSelect value={value} options={options} searchable clearable onChange={setValue} />
<CfTreeSelect value={value} options={options} searchable clearable onChange={setValue} />

API

属性类型默认值说明
optionsTreeSelectNode[]树节点列表
value / modelValuestring / string[]当前值
placeholderstring请选择空值占位
multiplebooleanfalse多选
searchablebooleanfalse显示搜索输入
clearablebooleanfalse显示清空按钮
disabledbooleanfalse禁用
sizesm / md / lgmd尺寸

事件:Vue update:modelValue / change(value, node),React onChange(value, node)

TreeSelectNode

字段类型说明
valuestring唯一值
labelstring展示文本
disabledboolean禁用节点
childrenTreeSelectNode[]子节点

反馈与讨论

TreeSelect 树形选择 的讨论

0
0 / 600
一键发送
正在加载评论...