iView的tree组件实现单选功能

iView中的树组件有复选框可以多选,但是目前还没有提供单选框的模式,不显示复选框可以提供高亮单选的模式,但是再次点击就被取消了,没有实现真正的单选;

tree 的属性配置中 multiple 是否支持多选,是在不显示复选框的时候生效的,不能控制复选框支不支持多选;

实现单选功能中用到了:

:show-checkbox="true"  // 是否显示复选框
:check-strictly="true" // 显示复选框的前提下,是否让父子节点不联动
:check-directly="true" // 在显示复选框的前提下,让节点的选中触发复选框的选中
@on-check-change="treeChange"  // 复选框被选中的时候触发,可能是点击复选框的时候被选中,也可能是点击节点的时候被选中;返回 当前已勾选节点的数组、当前项

使用 getSelectedNodes() 获取被选中的节点数组,getSelectedNodes()[0] 获得被选中节点的数据

视图、逻辑、样式 如下:

 1 <template>
 2 <Tree
 3  ref="orgTree"
 4  :data="orgTree"
 5  :show-checkbox="true"
 6  :check-strictly="true"
 7  :check-directly="true"
 8  @on-check-change="treeChange"
 9  ></Tree>
10 </template>
11
12 <script>
13 ...
14 methods:{
15     // 树复选框发生改变--只能有一个被选中
16     treeChange(arr, obj) {
17       // 清空所有已选中的
18       arr.forEach(item => {
19         item.checked = false;
20       });
21       // 只选中最后一次选中的
22       obj.checked = true;
23     }
24 }
25 </script>
26
27 <style>
28  /* 让方形复选框变成圆形单选框样式,最好在树组件外套一个父盒子,在样式前加父级选择器,以免影响其他树组件*/
29  .ivu-checkbox-inner {
30     border-radius: 50%;
31   }
32 </style>

写的比较简单,可能还有不完善的地方,还请各位大佬批评指正

原文地址:https://www.cnblogs.com/web-xu/p/12085051.html

时间: 2024-08-03 22:58:26

iView的tree组件实现单选功能的相关文章

Element-ui tree组件自定义节点使用方法

工作上使用到element-ui tree 组件,主要功能是要实现节点拖拽和置顶,通过自定义内容方法(render-content)渲染树代码如下~ 1 <template> 2 <div class="sortDiv"> 3 <el-tree :data="sortData" draggable node-key="id" ref="sortTree" default-expand-all :e

自定义GrildView实现单选功能

首先看实现功能截图,这是一个自定义Dialog,并且里面内容由GrildView 绑定数据源,实现类似单选功能. 首先自定义Dialog,绑定数据源 自定义Dialog弹出框大小方法 最主要实现的就是点击颜色切换的功能,默认GrildView的每一项都是蓝色背景,当点击时候切换成红色.这里缓存了一个view,每次点击给这个view重新赋值,改变颜色 数据源Adapter代码: public class ZheKouAdapter extends BaseAdapter { private Con

checbox复选框实现radio单选框的单选功能

checbox复选框实现radio单选框的单选功能:大家知道复选框可以一次选中多个,单选按钮每次只能够选中其中的一个,但是单选按钮比较霸道,你选中以后,只能够且必须选中其中一个,所有下面就通过checkbox复选框模拟实现单选按钮的功能,但是能够取消选中的项.代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author"

自定义组件------带删除功能的EditText

以前在为EditText添加左侧图标,以及右侧一个删除按钮时,经常是使用FrameLayout,当这样代码复用差,维护也麻烦.最好的方法是重写EditText实现该功能.现在看看效果图,后面再讲解实现方式. 重写之后的组件有如下功能,只有当EditText内容不为空,而且获得焦点,才会出现删除按钮,点击删除按钮则清空内容.代码如下: public class CleanableEditText extends EditText { //回调函数 private TextWatcherCallBa

C# winform项目中ListView控件使用CheckBoxes属性实现单选功能

在做项目时需要使用ListView控件的CheckBoxes属性显示,还要在点击行时自动选中CheckBoxes和点击选中CheckBoxes时自动显示正行选中状态的单选功能. 效果图: 主要利用两个事件:listView1_ItemCheck和listView1_SelectedIndexChanged事件. 上代码: [csharp] view plain copy print? private void listView1_ItemCheck(object sender, ItemChec

EasyUI之tree组件与treegrid组件

最近做了一个使用EasyUI的基于角色的权限分配系统,在这个过程中为了有更好的用户体验(也在网上找了挺多关于该系统的界面),先上我做的截图: 虽然,后台的逻辑上并不难,但是这个EasyUI的tree组件和treegrid组件,确实让我废了一大把力气>>好了废话不多说,开始正题: 一:tree组件 每个节点都具备以下属性: id:节点ID,对加载远程数据很重要. text:显示节点文本. state:节点状态,'open' 或 'closed',默认:'open'.如果为'closed'的时候,

iview修改table组件实现循环向上滚屏

前提,最近项目中需要实现table的滚屏效果,并且使用的是iview的table组件,踩坑,填坑如下. 1.首先找到Table组件中的table,就是这个class:ivu-table-body template部分代码 1 div class="headcol" > 2 <Table border :columns="columns7" :data="data6" ></Table> 3 </div>

dojo组件使用---tree组件的局部更新

dojo的tree组件使用主要涉及的几个api: 1.dijit/Tree:树组件 2.dijit/Tree._TreeNode:树节点组件,局部更新时就是修改这个组件.(由于数组件的store使用Memory,所以需要手动同步更新store): 3.dijit/tree/ObjectStoreModel:数组件数据操作模块. 具体操作: 1.拿到dijit/Tree._TreeNode实例对象.树组件的每个节点都是一个dijit/Tree._TreeNode对象,通过selectedNode/

iview的table组件中加入超链接组件,可编辑组件,选择组件,日期组件

这篇文章主要介绍了iview的table组件中使用选择框,日期,可编辑表格,超链接等组件. 1.select选择组件 // tableColumn数组响应对象需要传入一个固定的option数组,如果该数组是异步动态生成的该组件不能正常渲染,因为在获取option数组之前table渲染时option是undefined. supportSelect(item) { item.render = (h, params)=>{ return h('Select', { props: { value: p