异步加载版无限级树形结构组件,支持单选和多选组件、分页加载、搜索、面包屑类型导航

在线预览地址

地址: https://lusz.top/picture/treeload/

功能介绍

1.支持异步加载、分页加载、搜索
2.支持单选(所有可选、只选子级俩种模式)
3.多选(不支持关联选择)
4.支持纯展示

参数说明

参数类型是否必填默认值说明
valueArray[ ]已选中的数据, 无论单选多选都传数组
row_keystring‘id’搜索关键字段,默认是id
more_pageBooleanfalse是否开启分页(传入scrollHeight时生效,如果不传,则只能使用组件的页面的onReachBottom调用分页,详情看示例代码)
self_more_pageBooleanfalse是否开启点击底部的文字加载分页,同时开启more_page下生效
scrollHeightstring列表滚动的高度,一般是弹窗选择时需要传这个
show_searchBooleantrue是否显示搜索框
show_button_btnBooleantrue是否显示底部确认按钮
propsObject{check: true, label:“name”, multiple: false, nodes: false}配置组件模式,详细看下面介绍
getDataApiEvent请求接口事件,必须返回一个Promise,详情看下面介绍

props参数书说明

参数类型是否必填默认值说明
checkBooleantrue是否开启选择功能,不开启就是纯展示
labelstring“name”列表显示的字段名称
multipleBooleanfalse是否开启多选,否则是单选,check为true时生效
nodesBooleanfalse是否只选择子级( !user的情况下可选 )

getDataApi方法说明

需返回一个Promise,并且值字段包括data、has_more,data是当前页的列表数据,has_more是是否已加载完成

	getDataApi(data, middleware) {
		return new Promise((resolve) => {
			$api({
				url: '/treeV2/get',
				data
			}).then(res => {
				let {
					data: arr,
					per_page,
					current_page,
					total
				} = res.data
				resolve({
					data: arr,
					has_more: per_page * current_page < total
				})
			})
		})
	},

接口数据格式要求

其中name和id可配置,user固定传,user为false时说明没有下级,为true是存在下级

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

使用说明(弹窗模式):

  1. 在页面引用组件,并注册
import treeSingleChoice from '../../components/tree-signle-choice/index.vue'

添加组件使用

	<uniPopup background-color="#fff" ref="popup" type="bottom">
		<view class="center">
			选择用户
		</view>
		<view>
			<treeSingleChoice scrollHeight="60vh" @onConfirm="onConfirm" :getDataApi="getDataApi"
				:value="selectListItem" :show_search="true" :prop="props"></treeSingleChoice>
		</view>
	</uniPopup>

获取选中的值

	let value = this.$refs.tree.checkValue

将继续持续维护和开发

获取插件地址:https://ext.dcloud.net.cn/plugin?id=2423

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值