el-table双击编辑功能实现
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条内容
所有评论(0)