1. 动态加载数据版本(仅支持单选+展示)
每一级都是动态请求数据,优化了数据量多的问题
单选的效果图
获取动态加载版本请加wx: 122720267
2. 完整版(无动态加载)
对基础版进行重构,与基础版的代码逻辑完全不一样,更高效,功能更完整,推荐使用
1.1功能介绍
1、多选: 支持多选任意多项,支持关联子级,仅选中子级,全选,半选状态
2、支持自定义显示内容(slot),自定义内容样式
3、单选状态可以回显选中的位置路径
4、只需传checkList字段就可以回显默认选中
图1 多项选择,选择任意多项
图2 多项选择,关联子级,支持全选,和取消全选,半选状态
2、单选
图1 可以选择任意一项或只能选择子项,选择后进入可以自动切换到选中页面的路径
参数说明
| 参数 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
| trees | Array | 是 | [ ] | 传入的树形结构数据,每个对象必须包含唯一的id值 |
| searchIf | Boolean | 否 | true | 是否开启搜索框 |
| parent | Boolean | 否 | true | prop.checkStrictly为true时生效,当子级全选时选中父级数据 |
| isCheck | Boolean | 否 | false | 是否开启选择操作,值是false时仅展示,无操作 |
| props | Object | 否 | {label:'name',children:'children'} | 参数配置,详细见下表 |
| checkList | Array | 是 | [] | 默认选中值,根据id字段匹配 |
方法
| 方法名 | 参数 | 说明 |
|---|---|---|
| sendValue | val | val 接收选中的数据,数据类型为数组 |
props参数说明
| 参数 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
| label | string | 否 | name | 指定选项标签为选项对象的某个属性值 |
| children | string | 否 | children | 指定选项的子选项为选项对象的某个属性值 |
| multiple | Boolean | 否 | true | 值为true时为多选,为false时是单选 |
| checkStrictly | Boolean | 否 | false | 需要在多选模式下才传该值,checkStrictly为false时,可让父子节点取消关联,选择任意一级选项。为true时关联子级,可以全选 |
| nodes | Boolean | 否 | true | 在单选模式下,nodes为false时,可以选择任意一级选项,nodes为true时,只能选择叶子节点 |
props参数示例
props: {//多项模式(任意选中多项)
label: 'name',
children: 'children',
multiple:true
},
props: {//多项模式(关联子级)
label: 'name',
children: 'children',
multiple:true,
checkStrictly:true
},
props: {//单选模式(任意一项)
label: 'name',
children: 'children',
multiple:false,
nodes:false
},
props: {//单选模式选user
label: 'name',
children: 'children',
multiple:false,
nodes:true
}*
slot插槽,自定义显示内容,可以组合多字段
<xiaolu-tree v-slot:default="{item}" :checkList="checkList" :positionArr="positionArr" v-if="tree.length>0" :props="prop" @sendValue="confirm" :isCheck="false" :trees="tree">
<!-- 内容插槽 -->
<view>
<view class="content-item">
<view class="word">{{item.name}}</view>
</view>
</view>
<!--end -->
</xiaolu-tree>
持续维护更新
示例地址:点击跳转