## next-tree --下拉树
> 遇到问题或有建议可以加入QQ群(455948571)反馈qQ : 455-948-571
> 如果觉得组件不错,给五星鼓励鼓励咯!
## 亮点功能说明(打造你不得不用的好插件)
### 本插件自1.5.0版本后支持一下功能
> 1.大数据量渲染(本插件智能判断,如果子孙集数据量大于50时,会响应等待渲染视图;)
> 2.子节点按需渲染(自动启用,无需配置)
> 3.父子级联选择设置
> 4.单选多选设置
> 5.父节点是否可选设置
> 6.回显默认选中值
> 7.不可选项disabled设置
> 8.增强大数据量体验交互,增加筛选搜索模式
> 9.增强样式定制,提供自定义插槽,实现高要求样式定制
> 10.增加辅助线模式,外观更加精美
> 11.支持动态配置title
> 12.支持搜索模式searchModel=depHighlight模式,从属高亮显示模式
> 13.支持异步加载子节点,ajax加载子节点
> 14.增加可配置主题,自由定制插件主题颜色
> 15.支持动态校验,可以进行提示控制校验
> 16.支持页面模式/弹层模式,可以进行单页面展示或者弹层展示
> 17.支持半选提示状态显示
> 18.支持展开项expandedKeys配置
> 19.全面支持vue2/vue3
> 20.增加无子节点的父节点配置支持(当item[childrenKey]为null时,代表无子节点的父节点)
> 21.终极支持超数据量使用,增加展开模式配置单链路配置使用expandedMode=singe,使得ui组件使用进一步不在限制与数据量
> 22.功能模式再次增强,支持单选tree,多选tree,编辑tree,展示tree;
## 注意
### 作者不介意你对组件源码进行改造使用,为了开源更加高效,谢谢你的配合;为了节省不必要的沟通浪费,以下情况请不要再反馈给作者,请自行解决;
### 在这感各位的理解,我支持开源,但是作者时间有限;谢谢各位的配合;在这里期望我写的小小插件能为你提供便捷;
> 1.如果你对源码进行了修改使用,请不需要对作者做任何的反馈,作者确实没有空陪你做技术分析解答;
> 2.如果你引入插件,连插件是否有正常被uniapp框架识别解析都不清楚,请你换个插件使用;
> 3.如果你引入插件,针对自己项目进行功能改造的,请自行仔细阅读源码并了解其原理,自行改造;这里作者不愿意浪费过多时间进行技术解答;
> 4.如果你不想进行全局加载next-tree,需要按需加载;next-tree中有相关依赖的组件,需要你自行在组件内部单独引入;依赖组件可以在package.json中找到;
> 5.理论上作者不再解决由于本地开发环境问题所导致的插件使用问题,请自行到uniapp官网学习解决;
## 使用
### 超集功能即将不对外开源;
>[从uniapp插件市场导入](https://ext.dcloud.net.cn/plugin?name=next-tree)
## 关注作者的动态
[点击进入主页,关注作者](https://ask.dcloud.net.cn/people/ponder_7464)
## 关注作者其他开源
npm开源包:[npm](https://www.npmjs.com/~lixueshiaa);
github开源项目:[github](https://github.com/lixueshiaa);
```html
1、设置单选和父级不可选
2、设置多选和父级不可选
3、设置单选和父级可选
4、设置多选和父级可选
4、设置多选和父级可选和父级关联子级选择
5、设置默认回显(默认选中: '上海-2', '黄埔区-35')
6、异步加载渲染demo
```
### vue3 + ts 使用
```ts
```
### vue2 使用
```html
1、设置单选和父级不可选
2、设置多选和父级不可选
3、设置单选和父级可选
4、设置多选和父级可选
4、设置多选和父级可选和父级关联子级选择
5、设置默认回显(默认选中: '上海-2', '黄埔区-35')
6、异步加载渲染demo
```
```js
```
### 个性化自定义样式渲染
如果你的需求对样式需求比较高,请使用插槽模式渲染,本组件提供label插槽供你自定义定制;
```js
```
### 预览
###
***
| 功能预览 | 父子级关联演示 | 全面支持大数据量,子孙节点ui按需渲染(按需渲染数据) |
| :------------------------------------------------------------------: | :------------------------------------------------------------------: | :------------------------------------------------------------------: |
| ![](https://lixueshiaa.github.io/webtest/www/static/next-tree.gif) | ![](https://lixueshiaa.github.io/webtest/www/static/next-tree-b.gif) | ![](https://lixueshiaa.github.io/webtest/www/static/next-tree-d.gif) |
| 增强控件交互能力,增加筛选search模式,全面支持大数据量交互 | 超强的样式定制能力,满足你高精美组件的需求 | 打开精美的辅助线模式,让你的控件更加友好 |
| :------------------------------------------------------------------: | :------------------------------------------------------------------: | :------------------------------------------------------------------: |
| ![](https://lixueshiaa.github.io/webtest/www/static/next-tree-e.gif) | ![](https://lixueshiaa.github.io/webtest/www/static/next-tree-f.gif) | ![](https://lixueshiaa.github.io/webtest/www/static/next-tree-u.gif) |
| 增加搜索模式searchModel=depHighlight模式,从属高亮显示模式 | 支持异步加载子节点,子树集,ajax远程加载数据等 | 支持不同主题的切换,ui定制更简单 |
| :------------------------------------------------------------------: | :------------------------------------------------------------------: | :------------------------------------------------------------------: |
| ![](https://lixueshiaa.github.io/webtest/www/static/next-tree-p.gif) | ![](https://lixueshiaa.github.io/webtest/www/static/next-tree-k.gif) | ![](https://lixueshiaa.github.io/webtest/www/static/next-tree-n.gif) |
| 增加验证函数和topBar插槽使得更加容易和组件进行交互 | 增加页面模式,支持整页ui展示模式 | 增加展开模式expandedMode配置,支持单链路展开,理论上支持几万数据量 |
| :------------------------------------------------------------------: | :------------------------------------------------------------------: | :------------------------------------------------------------------: |
| ![](https://lixueshiaa.github.io/webtest/www/static/next-tree-cc.gif)| ![](https://lixueshiaa.github.io/webtest/www/static/next-tree-uu.gif)| ![](https://lixueshiaa.github.io/webtest/www/static/next-tree-aab.gif) |
### 超集功能预览(增值功能)
###
| 实现tree的功能模式扩展,让你的tree组件实现可编辑态 |
| :--------------------------------------------------------------------: |
| ![](https://lixueshiaa.github.io/webtest/www/static/next-tree-eeee.gif)|
## 参数
可选参数属性列表
|参数名 |说明 |类型 |是否必填 |默认值 |可选值 |
|---- |---- |---- |---- |---- |----------------------- |
|uiMode |ui表现方式;popup<弹窗>, page<页面>;默认是 popup |String |是 |popup |page |
|funcMode |功能模式配置;display<展示模式>, edit<编辑模式>,checkbox<多选模式>, radio<单选模式>;默认是 radio |String |是 |radio |dispaly,edit,checkbox |
|treeData |树源数据列表 |Array |是 |[] |- |
|valueKey |绑定value的键属性(项的唯一key标识) |String |否 |id |- |
|labelKey |用于显示的字段 |String |否 |label |- |
|disabledKey |禁用节点绑定属性 |String |否 |disabled |- |
|childrenKey |子节点绑定属性 (注意:当item[childrenKey]的值设为null时,代表是无下级数据的父节点,即非叶子节点) |String |否 |children |- |
|title | 弹出标题(如果是函数时会返回所选项的值作为回调参数如;title: (checked):String => {}) |String, Function |否 |'' |- |
|selectParent |作用于funcMode=display模式下;是否可以选父级 |Boolean |否 |false |true |
|foldAll| 折叠时关闭所有已经打开的子集,再次打开时需要一级一级打开 |Boolean |否 |false |true |
|themeColor |主题颜色 |String |否 |#f9ae3d |- |
|cancelColor |取消按钮颜色 |String |否 |#757575 |- |
|titleColor |标题颜色 |String |否 |#757575 |- |
|border |是否有分割线 |Boolean |否 |false |true |
|checkStrictly|作用于funcMode=checkbox模式下; 状态下节点选择完全受控(父子节点选中状态不再关联) |Boolean |否 |false |true |
|checkStrictlyModel|作用于funcMode=checkbox模式下;父子节点关联模式:strong:强关联(不再受限节点的disabled控制),weak:弱关联(节点关联受disabled控制) |String |是 |weak |strong |
|showHalfCheckedTips|作用于funcMode=checkbox模式下; checkStrictly为false的状态下生效;父子节点选中状态不再关联,是否展示半选提示; |Boolean |否 |false |true |
|ifSearch| 筛选search模式 |Boolean |否 |true |false |
|searchModel| 搜索模式配置 depHighlight: 从属高亮(显示层级并高亮显示);common: 一般;remote: 远程 |String |否 |common |depHighlight |
|showAuxiliaryLine| 是否打开辅助线 |Boolean |否 |false |true |
|loadData| 异步加载函数 (node):Promise([childData]) => {} // demo有说明 |Function |否 |- |- |
|height| 只在uiMode=popup时生效;弹层容器的高度,默认是500 |Number |否 |500 |- |
|changeVerify|作用于funcMode=display模式下; 验证函数 (current as any, chooseList as any []):String => {} // 验证函数会把当前控件的选择值作为参数返给函数体,demo有说明 |Function |否 |- |- |
|expandedKeys| (Controlled) Specifies the keys of the expanded treeNodes 展开配置项,格式为[valueKey] |Array |否 |[] |- |
|expandedMode| 展开模式配置: common: 一般模式;singe: 单一模式; |String |否 |common |singe |
# Event 事件
|事件名 |说明 |类型 |回调参数 |
|---- |---- |---- |---- |
|confirm|菜单收起时返回的筛选结果 |emit |array |
|clear|点击清除按钮时触发 |emit |- |
|cancel|关闭弹层和点击取消时触发 |emit |- |
|change|选项改变时触发 |emit |array |
## Slot 插槽
|名称 |说明 |参数 |
|---- |---- |---- |
|label |label插槽 |data(当前项对于treeData里面的数据) |
|topBar |topBar插槽 |----滚动区域顶部topBar插槽 |
|bottomBar |bottomBar插槽 |----滚动区域底部bottomBar插槽 |
|fixedBottomBar |fixedBottomBar插槽 |----固定在页面的底部,使用fixed进行定位 |
|empty |empty插槽 |----数据为空的插槽 |