在使用ElementUI table表格组件时有时需要双击单元格显示编辑状态,失去焦点时还原表格显示。
实现思路:
- 在数据中增加
isFocus:false
.控制是否显示 - 在table中用
@cell-dblclick
双击方法
先看效果:
上源码:在表格模板中用scope.row.isFocus && focusLabelName=='姓名1控制多个单元格显示
<el-table :data="tableData" border stripe style="width: 100%" @cell-dblclick="tabClick"><el-table-column prop="date" label="Product Name" width="180"></el-table-column><el-table-column prop="address" label="地址"></el-table-column><el-table-column prop="price" label="姓名1" width="180"><template slot-scope="scope"><el-input v-if="scope.row.isFocus && focusLabelName=='姓名1'" v-focus size="small" v-model="scope.row.price" @change="changeTrafOrigTaxAmount(scope.row)" @blur="blurInput(scope.row)"></el-input><span v-else>{{scope.row.price}}</span></template></el-table-column><el-table-column prop="price" label="姓名2" width="180"><template slot-scope="scope"><el-input v-if="scope.row.isFocus && focusLabelName=='姓名2'" v-focus size="small" v-model="scope.row.price2" @change="changeTrafOrigTaxAmount(scope.row)" @blur="blurInput(scope.row)"></el-input><span v-else>{{scope.row.price2}}</span></template></el-table-column>
</el-table>
方法:
data: function () {return {tableData: [{date: '2016-05-02',name: '王小虎',address: '上海市普陀区金沙江路 1518 弄',price: 1000,price2: 1000,price3: 1000,isTransfer: true,rate: 0.3,amount: 1000,isFocus: false,}, {date: '2016-05-04',name: '王小虎',address: '上海市普陀区金沙江路 1517 弄',price: 1000,isTransfer: false,rate: 0.3,amount: 1000,isFocus: false,}, {date: '2016-05-01',name: '王小虎',address: '上海市普陀区金沙江路 1519 弄',price: 1000,price2: 1000,price3: 1000,isTransfer: true,rate: 0.3,amount: 1000,isFocus: false,}, {date: '2016-05-03',name: '王小虎',address: '上海市普陀区金沙江路 1516 弄',price: 1000,price2: 1000,price3: 1000,isTransfer: false,rate: 0.3,amount: 1000,isFocus: false,}],focusLabelName:''}},methods: {tabClick(row, column, cell, event){console.log(row, column, cell);row.isFocus = true;this.focusLabelName = column.label;},blurInput(row){row.isFocus = false}}