Cat-Tree-Select 基于Vue+Element的树选择器

Posted 究极死胖兽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cat-Tree-Select 基于Vue+Element的树选择器相关的知识,希望对你有一定的参考价值。

Cat-Tree-Select 基于Vue+Element的树选择器

基于 Element 的Vue 组件(Vue.js 2.x)

cat-tree-select Github 地址

前言

本人在最近的开发工作中常需要用到树选择器 目前最好用的基于 Vue 的树选择器应该是 VueTreeselect ,但是由于个人倾向基于 Element 进行开发,而 VueTreeselect 的风格样式与 Element 不一致,且不能与 ElFormElFormItem 联动。所以本人参考了其他 Element 组件的源码,自行封装了一个树选择器 Cat-Tree-Select ,以追求与 Element 最好的兼容性。目前已经实现了单选,多选,自定义树节点,可搜索树节点等功能。

效果预览


Demo 安装

复制仓库

git clone git@github.com:scuxiatian/cat-tree-select.git

安装依赖

npm install

demo预览

npm run serve

实例

单选树

<cat-tree-select  v-model="value"  :data="data"  :props="props"></cat-tree-select>

多选树

<cat-tree-select  v-model="value"  :data="data"  :props="props"  check-strictly  multiple></cat-tree-select>

自定义树节点

<cat-tree-select  v-model="value1"  :data="data"  :props="props"> 
	<template v-slot=" node, data ">
		<span> node.label </span> 
		<span style="margin-left: 20px; color: #8492a6; font-size: 13px">
			 data.value 
		</span> 
	</template>
</cat-tree-select>

可搜索树节点

<cat-tree-select  v-model="value1"  :data="data"  :props="props" 
	:filter-node-method="filterNode"  filterable>
</cat-tree-select>````
filterNode (value, data) 
	if (!value) return true  return data.label.indexOf(value) !== -1

Api 文档

TreeSelect Attributes

参数说明类型可选值默认值
value / v-model绑定值boolean / string / number
multiple是否多选booleanfalse
disabled是否禁用booleanfalse
size输入框尺寸stringmedium/small/mini
clearable是否可以清空选项booleanfalse
collapse-tags多选时是否将选中值按文字的形式展示booleanfalse
nametree-select input 的 name 属性string
placeholder占位符string请选择
filterable是否可搜索booleanfalse
placement弹出框出现位置Stringtop/top-start/top-end/bottom/bottom-start/bottom-end/left/left-start/left-end/right/right-start/right-endbottom
props配置选项,具体看下表object
el-tree attributes参考element-ui官网 el-tree attributes
### Props参数说明类型可选值

TreeSelect Events

事件类型说明回调参数
change选中值发生变化时触发目前的选中值
visible-change下拉框出现/隐藏时触发出现则为 true,隐藏则为 false
remove-tag多选模式下移除tag时触发移除的tag值
clear可清空的单选模式下用户点击清空按钮时触发
blur当 input 失去焦点时触发(event: Event)
focus当 input 获得焦点时触发(event: Event)
el-tree events参考element-ui官网 el-tree events

TreeSelect V-Slot

name说明
-自定义备选项的节点内容,参数为 node, data ,分别为当前节点的 Node 对象和数据

后记

本想实现树的懒加载功能的,但是没考虑好在有初始选项时如何处理更好,如果要显示初始选项的内容,需要遍历整棵树,那懒加载的意义就没了,如果不显示初始选项内容,那么用户无法知道已有初始选项,所以就暂时搁置了。

以上是关于Cat-Tree-Select 基于Vue+Element的树选择器的主要内容,如果未能解决你的问题,请参考以下文章

Vue项目安装流程(vue+ele+mongodb+axios)

vue/vue-ele-project

vue插件ele使用小坑

vue+ele-ui 表格多种功能参考

Vue-ele中echart折线图动态展示和修改

Vue-ele实战登录页完善,主页由导航展示,路由动态跳转