我想实现一个功能:编辑当前单元格,修改之后保存,并且显示非编辑状态
理想是这样子的:
我的代码:
<el-table-column
label="实际预算"
sortable
width="120">
<template scope="scope">
<el-input v-show="scope.row.sellShow" v-model="scope.row.day_budget" icon="upload" :on-icon-click="saveIconClick" @keyup.enter.native="saveIconClick"></el-input>
<span v-show="!scope.row.sellShow"><i class="el-icon-edit" @click="cellClick(scope.row)"></i> {{ scope.row.day_budget }}</span>
</template>
</el-table-column>
/*略*/
export default {
data() {
return {
/*显示状态*/
//sellShow: false,之前设置的,但是一编辑所有列的都编辑了,很尴尬
/*列表数据*/
lists: [{ //这里是没有sellShow属性的
day_budget:"30000"
}],
},
methods: {
/*实际预算单元格编辑*/
cellClick(row) {
console.log(row.sellShow)
row.sellShow = !row.sellShow;
},
/*实际预算单元格编辑(保存)*/
saveIconClick() {
console.log('save')
}
}
}
现在的问题:点击icon会更改row.sellShow的值,但是并不能切换到input
简单点就是你的每行对应的 row.sellShow 并没有被vue做响应式管理。查看官方文档。
另外 如何更改。
深入响应式原理