Tree 树形控件 添加增删改查功能

 

 <div class="block">

        <p>使用 scoped slot</p>

        <el-tree

          :data="data"

          show-checkbox

          node-key="id"

          default-expand-all

          :expand-on-click-node="false"

        >

          <span class="custom-tree-node" slot-scope="{ node, data }">

            <span>{{ node.label }}</span>

            <span>

              <el-button type="text" size="mini" @click="() => append(data)">

                Append

              </el-button>

              <el-button

                type="text"

                class="el-icon-edit"

                size="mini"

                @click.native="amend(data)"

                @keyup.native.enter="() => alter(data)"

              >

                重命名

              </el-button>

              <el-button

                type="text"

                size="mini"

                @click="() => remove(node, data)"

              >

                Delete

              </el-button>

            </span>

          </span>

        </el-tree>

      </div>

    const data = [

      {

        id: 1,

        label: "一级 1",

        children: [

          {

            id: 4,

            label: "二级 1-1",

            children: [

              {

                id: 9,

                label: "三级 1-1-1",

              },

              {

                id: 10,

                label: "三级 1-1-2",

              },

            ],

          },

        ],

      },

      {

        id: 2,

        label: "一级 2",

        children: [

          {

            id: 5,

            label: "二级 2-1",

          },

          {

            id: 6,

            label: "二级 2-2",

          },

        ],

      },

      {

        id: 3,

        label: "一级 3",

        children: [

          {

            id: 7,

            label: "二级 3-1",

          },

          {

            id: 8,

            label: "二级 3-2",

          },

        ],

      },

    ];

    return {

      data: JSON.parse(JSON.stringify(data)),

      data: JSON.parse(JSON.stringify(data)),

    };

  methods: {

//删除节点

  remove(node, data) {

      const parent = node.parent;

      const children = parent.data.children || parent.data;

      const index = children.findIndex((d) => d.id === data.id);

      children.splice(index, 1);

    },

//修改文件夹名字

    amend(data) {

      this.$prompt("请输入要修改节点名称", "提示", {

        confirmButtonText: "确定",

        inputValue: data.label,

        cancelButtonText: "取消",

      }).then(({ value }) => {

        console.log(value, "value");

        this.$set(data, "label", value);

      });

    },

}zz

  • 24
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值