elementUI表格编辑状态下,如何获取修改过的行

表格再编辑状态,需要获取到哪一行数据被修改了,面对这样一个场景,我们可以结合element的row-click事件以及动态的监听$watch来实现。
tableList,代表表格的数据, rowIds代表需要记录的id数组的集合, isUpdateTableList为true代表表格进入编辑状态了
import { cloneDeep } from ‘lodash-es’; //cloneDeep是进行深拷贝的插件

 /** 编辑状态下,监听行数据是否变化 */
    rowClick(row, column, event) {
      // 编辑状态下对修改过得行数据的id进行保存
      if (this.isUpdateTableList) {
        const rowPre = cloneDeep(row);
        this.$watch(
          () => {
            return row;
          },
          {
            handler(newVal, oldVal) {
              let that = this;
              // console.log(newVal, oldVal, cloneDeep(newVal) == cloneDeep(oldVal))
              if (newVal !== rowPre) { // 如果行数据发生变化,则记录其id
                that.rowIds.push(row.id);
                that.rowIds = [...new Set(that.rowIds)];
                console.log(that.rowIds);
              }
            },
            deep: true,
          },
        );
      }
    },
   

上面的方法只是获取到了具体修改过行的id,如果需要得到修改过的行的具体数据,可以过滤

 /** 筛选编辑过的行数据公共方法 */
    filterUpdateRow() {
      return this.tableList.filter((item, index) => {
        //函数本身返回布尔值,只有当返回值为true时,当前项存入新数组。
        return  this.rowIds.indexOf(item.id)>-1
      })
    },
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值