el-table双击编辑功能实现

<el-table @cell-dblclick="editCell">
	<el-table-column :key="randomKey" prop="name">
	   <template slot-scope="{row,column}" >
	     <el-select
	       v-show="row[column.property + 'isShow']"
	       :ref="column.property"
	       @blur="alterData(row,column)">
	       <el-option></el-option>
	     </el-select>
	   	 <span v-show="!row[column.property + 'isShow']">文本</span>
	   </template>
	</el-table-column>
</el-table>
// 处理鼠标双击单元格
editCell(row, column){
  // 把该行该列(某单元格)标记属性是否显示
  row[column.property + 'isShow'] = true
  this.refreshTable()
  this.$nextTick(() => {
    this.$refs[column.property] && this.$refs[column.property].focus()
  })
},
// 重新渲染该列
refreshTable () {
  // 因为设置了isShow,但是该节点并不是响应式的,所以需要通过修改key重新渲染节点上去
  this.randomKey = Math.random()
},
// 失去焦点处理
alterData (row, column) {
  row[column.property + 'isShow'] = false
},
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值