element表格 el-table双击单元格修改数据 鼠标离开焦点提交参数确定

双击触发单元格变成输入款 @cell-dblclick=“tableEdit”

<el-table
        :data="detailedtableData"
        style="width: 100%"
        border
        @cell-dblclick="tableEdit"
        @selection-change="handleSelectionChange"
      >

@cell-dblclick有四个参数

  tableEdit(row, column, cell, event) {
      console.log(column.id, column.property, column, row, event, "column");
      //如果这里只想编辑某一列或几列判断一下就行:column.label === '列1'
      if (column.label) {
        //取出单元格的值
        var beforeVal = event.target.textContent;
        //置空单元格容器内元素
        event.target.innerHTML = "";
        //替换成el-input
        let str = `<div class='cell'>
            <div class='el-input'>
              <input type='text' placeholder='请输入内容' class='el-input__inner'>
            </div>
        </div>`;
        cell.innerHTML = str;
        //  获取双击后生成的input  根据层级嵌套会有所变化
        let cellInput = cell.children[0].children[0].children[0];
        cellInput.value = beforeVal;
        cellInput.focus(); // input自动聚焦
        // "TITLE_PROPER"
        // 失去焦点后  将input移除
        cellInput.onblur = () => {
          let onblurCont = `<div class='cell'>${cellInput.value}</div>`;
          cell.innerHTML = onblurCont; // 换成原有的显示内容
          // 调用axios接口
          this.archiveData.param = {
            [column.property]: cellInput.value,
            ID: row.ID,
          };
          archiveUpdate(this.archiveData).then((response) => {
            console.log(response);
            if (response.status == "000000") {
              this.msgSuccess("修改条目成功!");
              this.dialogVisibleDetailed = false;
              // this.handleDetailed(row);
            } else {
              this.msgError(response.errors);
            }
          });
        };
      }
    },

我表格是动态渲染的不是写死的,所以调接口传参数会有不一样

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值