关于#vue#的问题,如何解决?(标签-UI|关键词-控件)

大家好 我现在遇到了一个问题

是这样的 我使用了 Element UI 的树控件

展示的数据 是这样的

   AAAAAAA
          BBBBBBBBB
                    CCCCCCC
   EEEEEEE
           FFFFFFFFFF
                    DDDDDDDD 


是可以多选的 ,我想获取  所选取的节点的完整名字  比如我两个都选了  
最后的拼接结果为
   ^AAAAAAA/BBBBBBBBB/CCCCCCC|^EEEEEEE/  FFFFFFFFFF/DDDDDDDD 

可以考虑给每个节点添加一个自定义的name属性,然后选中的时候,直接从节点中取出name属性进行拼接

以下回答引用自chatGpt, 有用的话,请采纳哇!!!

你可以通过以下代码实现:

// 定义一个数组,用于存储选中节点的完整名字
let selectedNodes = [];

// 定义一个递归函数,用于遍历树节点
function traverse(node, path) {
  // 如果节点被选中,则将节点的完整名字添加到数组中
  if (node.checked) {
    selectedNodes.push(path + node.label);
  }
  // 如果节点有子节点,则递归遍历子节点
  if (node.children) {
    node.children.forEach(child => {
      traverse(child, path + node.label + '/');
    });
  }
}

// 遍历树节点,获取选中节点的完整名字
treeData.forEach(node => {
  traverse(node, '');
});

// 将选中节点的完整名字拼接成字符串
const result = selectedNodes.join('|');

其中,treeData 是你的树节点数据。遍历树节点时,使用递归函数 traverse,遍历每个节点,如果节点被选中,则将节点的完整名字添加到 selectedNodes 数组中。最后,将 selectedNodes 数组中的元素拼接成字符串,即为所选取的节点的完整名字。