el-tree-select/el-tree设置只显示两个层级

当使用树形选择时,如何控制显示的层级数?

<template>
  <el-tree
    style="max-width: 600px"
    :data="data"
  />
</template>

<script lang="ts" setup>


const data = [
  {
    label: 'A',
    children: [
      {
        label: 'A-1',
        children: [
          {
            label: 'A-1-1',
          },
        ],
      },
    ],
  },
  {
    label: 'B',
    children: [
      {
        label: 'B-1',
        children: [
          {
            label: 'B-1-1',
          },
        ],
      },
      {
        label: 'B-2',
        children: [
          {
            label: 'B-2-1',
          },
        ],
      },
    ],
  },
  {
    label: 'C',
    children: [
      {
        label: 'C-1',
        children: [
          {
            label: 'C-1-1',
          },
        ],
      },
      {
        label: 'C-2',
        children: [
          {
            label: 'C-2-1',
          },
        ],
      },
    ],
  },
]


</script>

当未设置时,完全显示,共3个层级

若只需显示两个层级,通过以下代码,处理数据

const getData = ()=>{
  data.forEach((item: any) => {
    item.children && item.children.forEach((sitem: any) => {
      delete sitem.children
    })
  })

}
getData()

处理之后:只显示两层

Element UI库中,`el-select` 和 `el-tree` 都是非常常用的数据展示组件。如果你想在 `el-select` 中选择 `el-tree` 的层级数据,可以按照以下步骤操作: 1. **准备数据**:首先,你需要有一个树状结构的数据,包括节点的ID、名称以及父节点ID。例如: ```json { "data": [ { "id": "1", "name": "根节点", "children": [ { "id": "2", "name": "子节点1", "parent": "1" }, { "id": "3", "name": "子节点2", "parent": "1" } ] } ] } ``` 2. **设置el-tree**:在Vue组件中初始化`el-tree`,传入你的层级数据,并监听`node-click`事件处理节点的选择: ```html <el-tree :data="treeData" node-key="id" default-expand-all @node-click="handleNodeClick" ></el-tree> ``` 3. **处理选中节点**:在`handleNodeClick`函数里,你可以获取到用户点击的节点,然后在这个节点下添加或更新`el-select`的数据选项: ```javascript methods: { handleNodeClick(node) { this.selectedNode = node; // 更新选中的节点 const options = this.getSelectOptions(node); // 根据节点生成select选项 this.selectOptions = options; }, getSelectOptions(node) { return node.children.map(child => ({ value: child.id, label: child.name })); } } ``` 4. **配置el-select**:创建一个`el-select`,绑定`v-model`到`selectedNode`,并显示`selectOptions`作为选项列表: ```html <el-select v-model="selectedNode" placeholder="请选择"> <el-option v-for="(option, index) in selectOptions" :key="index" :label="option.label" :value="option.value" ></el-option> </el-select> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值