uniapp无限级树组件,支持纯展示、单选、多选、多选联动等模式

2023.3.24新增支持异步加载版本

在线预览地址:https://lusz.top/picture/h5/#/

基础版

插件市场上传的是基础版,仅支持展示
插件地址:https://ext.dcloud.net.cn/plugin?id=9976

升级版(支持异步加载)

1.支持纯展示
2.支持单选(所有可选、只选子级俩种模式)
3.多选(所有可选、只选子级俩种模式)
4.多选联动
5.效果图

兼容问题

实测支持小程序、H5、App
根据层级路径操作数据,无需每一次操作都遍历所有数据,所以优化良好,响应速度快,无卡顿(测试的数据量1314条,多选响应速度快)
总代码量300多行,无其它依赖,体积小

使用说明:

  1. 在页面引用组件
<LoadTree :list="list" ref="tree" :check_type="type"  :check_id="check_id" @checkRadio="checkRadio" :onlyChooseChild="onlyChooseChild" :isFirst="true" @change="change"></LoadTree>

参数说明

参数类型是否必填默认值说明
listArray[ ]传入的树形数据,结构见下面的例子
check_typestring‘ ’radio 单选 multiple 多选
onlyChooseChildBooleanfalse是否只可选子级
isFirstBooleantrue必须传true
check_idstring’ ’单选时选中的值/默认选中的值
checkRadioEvent单选的模式下选中值得时候的回调
changeEvent选中,或者点击某项时的回调

数据格式

		[
			{
				name: '一级',
				id: '1',
				children: []
			}
		]

必看:

tree数据需要带有checked字段
数据的id是唯一的id
默认选中需要传checkList,并调用checks方法

获取选中的值

单选:check_id
多选:通过ref获取

	this.$refs.tree.getValue()

完整的示例代码

<template>
	<view class="content">
		<LoadTree :list="list" ref="tree" :check_type="type"  :check_id="check_id" @checkRadio="checkRadio" :onlyChooseChild="onlyChooseChild" :isFirst="true" @change="change"></LoadTree>
	</view>
</template>

<script>
	import LoadTree from '@/components/load-tree/index.vue'
	import {treeNode} from './city.js'
	export default {
		components: {
			LoadTree
		},
		data() {
			return {
				list: treeNode,
				check_id:"",
				type:"multiple",
				onlyChooseChild:true
			}
		},
		methods: {
			// 点击或选择回调
			change(val) {
				console.log(val)
			},
			/* 单选回调 */
			checkRadio(check_id){
				this.check_id = check_id
			},
			//多选时-获取选中的值
			getValue(){
				let result= this.$refs.tree.getValue()
			}
		}
	}
</script>

将继续持续维护和开发

获取升级版 vx: 122720267

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值