el-tree单选 vue3

一、多选框样式变为单选框

//单选框样式
:deep(.el-tree .el-checkbox .el-checkbox__inner) {
  border-radius: 50%; /* 使复选框圆形 */
}
:deep(.el-checkbox__input.is-checked .el-checkbox__inner) {
  background: #ffffff !important;
  border: 4px solid #0482f9;
}
:deep(.el-checkbox__inner:after) {
  content: none;
}

二 使用 el-tree 实现计算每个非叶子节点的后代节点的个数并显示

 <span v-if="!node.isLeaf" style="margin-left: 6px"
                >({{ handleComputeNodesNumber(data) }})</span
              >


/**
 * 计算子节点个数句柄方法
 */
const handleComputeNodesNumber = (data) => {
  // 当前节点的数据
  const nodeData = data
  console.log(nodeData)

  // 计算这个节点的叶子节点总数
  let sum = 0
  sum = computeNodesNumberAssist(0, nodeData.children)
  console.log("sum =>", sum)
  return sum
}

/**
 * 计算子节点个数辅助方法
 */
const computeNodesNumberAssist = (sum, tree) => {
  for (let i in tree) {
    sum++

    if (tree[i].children) {
      sum += computeNodesNumberAssist(0, tree[i].children)
    }
  }

  return sum
}

参考:使用 el-tree 实现计算每个非叶子节点的后代节点的个数并显示_el-tree显示子节点数量-CSDN博客

一、element ui, el-tree, 自定义图标:

参考:element ui, el-tree, 自定义图标_el-tree 加图标-CSDN博客

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue 3 中使用 el-tree 进行单选操作,你可以通过自定义节点模板来实现。下面是一个简单的示例: 首先,你需要在组件中引入 el-treeel-radio 组件: ```javascript import { ElTree, ElRadio } from 'element-plus'; ``` 然后,在模板中使用 el-tree 组件,并在节点模板中添加 el-radio 组件: ```html <template> <el-tree :data="treeData" :props="treeProps"> <template #default="{ node }"> <el-radio v-model="selectedNodeId" :label="node.id"></el-radio> <span>{{ node.label }}</span> </template> </el-tree> </template> ``` 在上述代码中,我们使用了 `v-model` 指令来绑定选中节点的 `id` 到 `selectedNodeId` 变量。 接下来,你需要在组件的 `data` 中定义 `treeData` 和 `selectedNodeId` 变量: ```javascript data() { return { treeData: [ { id: 1, label: 'Node 1', children: [ { id: 11, label: 'Node 1-1' }, { id: 12, label: 'Node 1-2' }, ]}, { id: 2, label: 'Node 2', children: [ { id: 21, label: 'Node 2-1' }, { id: 22, label: 'Node 2-2' }, ]} ], selectedNodeId: null }; } ``` 最后,你可以根据 `selectedNodeId` 来获取选中的节点信息。例如,你可以添加一个计算属性来获取选中的节点对象: ```javascript computed: { selectedNode() { return this.getNodeById(this.selectedNodeId); } }, methods: { getNodeById(id, nodes = this.treeData) { for (const node of nodes) { if (node.id === id) { return node; } if (node.children) { const foundNode = this.getNodeById(id, node.children); if (foundNode) { return foundNode; } } } return null; } } ``` 现在,你已经可以在 el-tree 中实现单选功能了。通过 `selectedNodeId` 变量,你可以获取选中的节点信息,并根据需求进行处理。 希望这个例子能帮助到你!如果还有其他问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值