el-table动态添加列

在开发管理系统过程中碰到一些需求,针对表格,运营人员需要自己添加一些列,然后输入内容保存,以此来实现产品的高可配性,接下来我们就来实现这个功能。

对于这些动态添加的列,后端用JSON字符串的形式存储起来最为方便,这里我们假定存储在custom字段中,例如:custom: "{\"测试\": 1}" 这种形式。

所以我们的el-table中,一部分为固有表头字段,而动态列则通过数组循环生成。

1、首先假设返回的表格数据为:

tableData: [
        {
          date: "2016-05-02",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄",
           custom: ""
        },
        {
          date: "2016-05-04",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1517 弄",
           custom: "{\"测试\": 1}"
        },
        {
          date: "2016-05-01",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1519 弄",
           custom: "{\"测试\": 1, \"字段2\": \"哈哈哈\"}"
        },
        {
          date: "2016-05-03",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1516 弄",
          custom: "{\"测试\": 1}"
        }
],

这里我们要遍历custom字段得到到底有哪几个动态列,并将字符串转为JSON对象,所以拿到数据后我们要处理一下:

this.tableData.forEach(item=>{
      if(item.custom){
        item.custom = JSON.parse(item.custom);
        Object.keys(item.custom).forEach(key => {
          if(this.propArr.indexOf(key) === -1){
            this.propArr.push(key);
            this.dynamicColumns.push({ prop: key, label: key});
          }
        })
  • 8
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值