element-ui 表格可编辑

<template>
  <el-table :data="tableData" style="width: 100%" @cell-click="handleEdit">
    <template v-for="(item, index) in columData">
      <el-table-column :label="item.label" :key="index" :prop="item.prop">
        <template slot-scope="scope">
          <el-input
            @blur="blur"
            ref="flag"
            v-if="
              item.edit == true && 'flag' + item.prop + scope.row.index == value
            "
            v-model="scope.row[scope.column.property]"
          ></el-input>

          <span v-else>{{ scope.row[scope.column.property] }} </span>
        </template>
      </el-table-column>
    </template>
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      value: "",
      columData: [
        {
          label: "姓名",
          prop: "name",
          edit: true,
        },
        {
          label: "地址",
          prop: "address",
        },
      ],
      tableData: [
        {
          index: 0,
          name: "chen虎",
          address: "1518 弄",
        },
        {
          index: 1,
          name: "小虎",
          address: "1517 弄",
        },
        {
          index: 2,
          name: "王虎",
          address: "1519 弄",
        },
        {
          index: 3,
          name: "王小",
          address: " 1516 弄",
        },
      ],
    };
  },
  methods: {
    handleEdit(row, e) {
      this.value = "flag" + e.property + row.index;
      this.$nextTick(() => {
        if (this.$refs.flag[0]) {
          this.$refs.flag[0].focus();
        }
      });
    },
    blur() {
      this.value = "";
    },
  },
};
</script>

<style scoped lang="less">
</style>

效果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值