ant 树形表格的增删

最近用ant 的树表格做功能,实现了树表格的增删改查。

首先来看需求。树表格最多五层,可以编辑。渲染后台传过来的数据,也可以新增树,同级别,或者子级。

一开始因为新增的子或者同级别没有固定的ID,然后树表格要有一个唯一的rowkey。这里不能用index,父级的index从0开始增加,子级别也是。所以开始要构造一个唯一的key.

首先给每个元素增加key,类似'0','0_0','0_0_0'这种最多五级。注意这些参数不能单纯的想做index,因为后面删除功能可能会删掉‘0_0’,'0_1'就变成了子集第一个。

给所有元素添加唯一key

let loopArr = [
  {
    name: "lisi",
    age: 12,
    children: [
      {
        name: "wangwu",
        age: 13,
        children: [
          {
            age: 14,
            name: "zhaoliu",
          },
        ],
      },
    ],
  },
];
function addKey(loopArr, currentStep = 0, pId = 0) {
      const configs = [];
      console.log(loopArr, currentStep, pId, "元素循环次数");
      loopArr.forEach((item, index) => {
        if (!item.children || item.children.length < 1) {
          const t = {
            ...item,
            key: currentStep == 0 ? index.toString() : pId + "_" + index,
          };
          t.children = undefined;
          configs.push(t);
        }
        if (item.children && item.children.length > 0) {
          const parent = {
            ...item,
            key: currentStep == 0 ? index.toString() : pId + "_" + index,
          };
          parent.children = addKey(item.children, currentStep + 1, parent.key);
          configs.push(parent);
        }
      });
      console.log(configs, "构造数据");
      return configs;
    }

    addKey(loopArr, 0, 0);

最后成功实现给数组的所有元素(子元素添加了key) 

过两天会继续结合项目开始写增加和删除

  const  dataSource = reactive<any>({ list: [] })
    dataSource.list = [
      {
        name: "lisi",
        age: 12,
 
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值