以下是 Ant-design-vue 树形控件 a-tree 的新增、删除、编辑节点示例:

  • 新增节点
<template>  
  <a-tree :tree-data="treeData" @create="handleCreate"></a-tree>  
</template>  
  
<script>  
export default {  
  data() {  
    return {  
      treeData: [  
        {  
          title: 'Node 1',  
          key: '0-0',  
          children: [  
            {  
              title: 'Node 1-1',  
              key: '0-0-0'  
            },  
            {  
              title: 'Node 1-2',  
              key: '0-0-1'  
            }  
          ]  
        },  
        {  
          title: 'Node 2',  
          key: '0-1'  
        }  
      ]  
    };  
  },  
  methods: {  
    handleCreate(treeNode, { add }) {  
      // 创建新节点  
      const newNode = {  
        title: 'New Node',  
        key: '0-2'  
      };  
  
      add(treeNode, newNode);  
    }  
  }  
};  
</script>

在上面的示例中,我们在 a-tree 组件中使用 @create 事件来监听节点创建事件。

在 handleCreate 方法中,我们通过 add 函数来将新节点插入到当前节点的子节点列表中。

  • 删除节点
<template>  
  <a-tree :tree-data="treeData" @remove="handleRemove"></a-tree>  
</template>  
  
<script>  
export default {  
  data() {  
    return {  
      treeData: [  
        {  
          title: 'Node 1',  
          key: '0-0',  
          children: [  
            {  
              title: 'Node 1-1',  
              key: '0-0-0'  
            },  
            {  
              title: 'Node 1-2',  
              key: '0-0-1'  
            }  
          ]  
        },  
        {  
          title: 'Node 2',  
          key: '0-1'  
        }  
      ]  
    };  
  },  
  methods: {  
    handleRemove(treeNode) {  
      // 删除节点  
      const parent = treeNode.parent;  
      parent.children.splice(parent.children.indexOf(treeNode), 1);  
    }  
  }  
};  
</script>

在上面的示例中,我们在 a-tree 组件中使用 @remove 事件来监听节点删除事件。

在 handleRemove 方法中,我们通过 splice 函数将当前节点的父节点中的子节点列表删除当前节点。

  • 编辑节点
<template>  
  <a-tree :tree-data="treeData" @edit="handleEdit"></a-tree>  
</template>  
  
<script>  
export default {  
  data() {  
    return {  
      treeData: [  
        {  
          title: 'Node 1',  
          key: '0-0',  
          children: [  
            {  
              title: 'Node 1-1',  
              key: '0-0-0'  
            },  
            {  
              title: 'Node 1-2',  
              key: '0-0-1'  
            }  
          ]  
        },  
        {  
          title: 'Node 2',  
          key: '0-1'  
        }  
      ]  
    };  
  },  
  methods: {  
    handleEdit(treeNode) {  
      // 编辑节点  
      console.log(treeNode); // 打印编辑前的节点信息  
      // 进行编辑操作,例如更新节点的 title 属性值  
      treeNode.title = 'New Title';   
      console.log(treeNode); // 打印编辑后的节点信息  
    }  
  }  
};  
</script>  

id="code">在上面的示例中,我们在 a-tree 组件中使用 `@edit` 事件来监听节点编辑事件。在 `handleEdit` 方法中,我们通过打印编辑前和编辑后的节点信息来展示编辑操作。

在实际应用中,我们可以根据具体需求来进行编辑操作,例如更新节点的属性值。
 

06-28 13:31