vue+element表格双击编辑单元格

4 篇文章 0 订阅
2 篇文章 0 订阅

思路:给每条对应的数据都加上edit:false/true属性来控制该条数据对应的单元格你内显示的是输入框还是文本内容

html部分
1、element文档中有写关于表格的事件
element-table
html部分
2、每条数据对应都有edit属性,为true的时候显示输入框,为false显示文本内容
html
js部分:
1、统一给获取到的表格数据加入edit属性,默认为false,传入的参数t为表格的数据json

   initTbale(t) {
      t.forEach((item, index) => {
        for (let i in item) {
          item[i] = {
            value: item[i],
            edit: false
          };
        }
      });
    },

2、双击的时候让当前点击的数据edit为true,并获取焦点

    celledit(row, column, cell, event) {
      if (row[column.property]) {
        row[column.property].edit = true;
        setTimeout(() => {
          this.$refs[column.property].focus();
        }, 20);
      }
    },

3、失去焦点的时候可以使所有数据的edit都变为flase

    // --table统一设置为不可编辑状态
    noeditTbale(t) {
      t.forEach((item, index) => {
        for (let i in item) {
          item[i].edit = false;
        }
      });
    }

4、如果失去焦点要上传数据,一定记得把edit属性去掉

    // 逆向初始化 --table去掉编辑属性
    reverseTbale(t) {
      t.forEach((item, index) => {
        for (let i in item) {
          item[i] = item[i].value;
        }
      });
    },


这样 简单地双击编辑单元格就完成了

  • 2
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值