这里写自定义目录标题
Element Table
官方描述:用于展示多条结构类似的数据,可对数据进行排序、筛选、对比或其他自定义操作。
出现问题的需求
以下案例是一个实际的开发Demo,实现的功能点如下
- 多行编辑 ,多行的数据编辑,解决编辑一行保存一次的痛点
- 编辑行后变色 将被编辑的行高亮样式 进行展示;
功能快速解刨
编辑变色
使用row-class-name方法监听vue数据,实现动态调整样式的功能
tableRowClassName({row, rowIndex}) {
if (row.modify) {
return 'warning-row';
}
return '';
}
自定义列
使用自定义列模板,动态绑定行内数据
在修改页面内容输入的组件中加入change监听事件,参数是row
modify(row, index){
row.modify = true
}
批量保存
保存成功后重置状态
BUG场景还原
修改数据,变色OK
执行保存
问题重现
此时已经保存成功,并且vue的数据已经重置,表格未刷新,需要再次修改内容才能刷新
问题分析
由于异步操作,导致el-table没有监听到数据改变,所有解决方案是手动调用el-table的刷新
但是网上并没有相关的解决的方案,所以只能翻寻源码
el-table的源码地址
最终找到了store.updateColunms() 方法
异步操作新增刷新代码:
问题解决