最近使用antdv的a-tree-select实现一个功能:选中子节点需要拼接父节点
如图所示
问题就是 没有直接的api可以支持
记录一下解决方法
原本的使用
// html
<a-tree-select v-model:value="value" :tree-data="treedata" />
// js
const value = ref()
const treedata = reef([{
title: '1',
value: '1',
children: [
{
title: '2',
value: '2',
},
{
title: '3',
value: '3',
},
],
}])
修改后文章来源:https://www.toymoban.com/news/detail-637528.html
// html
<a-tree-select
labelInValue // 使用该属性 将值变成对象 包含 title value
:value="treeValue" // 不双向绑定
:tree-data="treedata"
@select="selectTree" // 选择这里进行赋值操作
/>
//js
...
const treeValue = ref()
const selectTree = (val) => {
value.value = val;
treeValue.value = {
value: val,
label: getSelectedItem(val, treedata.value);,
};
};
// 因为我是只有两层 所以只需要遍历两层就好了 多层的话嵌套遍历一下
const getSelectedItem = (value, data) => {
let str = '';
data.some((d) => {
return d.children?.some((c) => {
if (c.value === value) {
str = d.title + '/' + c.title;
return true;
}
});
});
return str;
};
总结
就是利用labelInValue 属性 处理显示的title文章来源地址https://www.toymoban.com/news/detail-637528.html
到了这里,关于antdvue tree-select树选择组件 选中值显示label拼接父节点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!