VueTreeselect使用步骤以及解决叶子节点vueselectTree显示no sub-options的问题
官方文档:https://www.vue-treeselect.cn/
官方示例
一、安装
建议通过npm安装vue-treeselect
npm install --save @riophae/vue-treeselect
二、引入组件和样式
import Treeselect from '@riophae/vue-treeselect' import '@riophae/vue-treeselect/dist/vue-treeselect.css'
三、注册
components: { Treeselect },
四、使用
options: [ {
id: 'a',
label: 'a',
children: [ {
id: 'aa',
label: 'aa',
}, {
id: 'ab',
label: 'ab',
} ],
}, {
id: 'b',
label: 'b',
}, {
id: 'c',
label: 'c',
} ],
完整代码:
效果如下:
常用属性:
如果将multiple的值设置为false,效果如下:
而且只能选择一个
如果将clearable值设置为false,效果如下:
当default-expand-level值设置为0,效果如下:
当default-expand-level值设置为1,效果如下:
searchable值设置为true,效果如下:
searchable值设置为false,效果如下
如果要控制所选选项的显示顺序,请使用sortValueBy道具。该道具有三个选择:
"ORDER_SELECTED"(默认)-选择订单"LEVEL"- 选择级别: C ?? BB ?? AAA"INDEX"- 选项索引: AAA ?? BB ?? C
五、项目使用
注意:
1、cataId初始化时要设置为null,不能是空字符串,否则会报错unknown。
2、关闭对话框时要将cataId置空,否则打开对话框时显示的是上一次的数据。
六、解决显示no sub-options的问题
如果显示no sub-options,是因为如果child=[]时会显示,默认显示黄色感叹号和No sub-options,如果想要没有子部门直接不展示,我的方法是遍历数据源,删掉空数组
// 处理树形结构
treeChange (arr) {
return arr.map(item => {
if (item.children && item.children.length > 0) {
this.treeChange(item.children)
} else {
delete item.children
}
return item
})
}