el-table解决过滤导致选中的丢失的问题
el-table解决过滤导致选中的丢失
场景:
当前选中了A,B,C,D四条数据,我现在想找出Z这条数据,过滤之后,ABCD就是不可见,但是我还是选中了,此时选中Z之后ABCD就选中不了了,此时我们需要选中ABCD并且选中Z。
第一步:el-table的设置
重点是ref="kpiTableRef",@select="handleSelectKpi",@select-all="handleSelectKpi"
注意:select和select-all需要对应一个相同的方法的名称。
filteredKpiOptions是计算属性的来的。
<el-table
ref="kpiTableRef"
style="margin: 0 10px 0 0"
:data="filteredKpiOptions"
:height="450"
v-loading="kpiTableLoading"
:header-cell-style="{ background: '#eef1f6', color: '#606266' }"
highlight-row
@select="handleSelectKpi"
@select-all="handleSelectKpi"
>
<el-table-column type="selection" width="55" />
<el-table-column
prop="name"
label="xxx名称"
:show-overflow-tooltip="true"
/>
</el-table>第二步:设置计算属性
待过滤名称
<el-form :inline="true" :model="filterKpiModel">
<el-form-item label="xx名称" prop="name">
<el-input v-model="filterKpiModel.kpiName" placeholder="过滤xxx名称" clearable/>
</el-form-item>
</el-form>计算属性
- - kpiOptions是全部的数据
- - filteredKpiOptions 是过滤返回的数据
filteredKpiOptions() {
// 刷新选中
this.setKpiSelStatus();
if (!this.filterKpiModel.kpiName) {
return this.kpiOptions;
}
return this.kpiOptions.filter((data) =>
data.kpiName.includes(this.filterKpiModel.name)
);
}第三步:设置选中的数据
setKpiSelStatus() {
const vm = this;
let currentKpiIds = [];
for (let selKpi of vm.selKpiList) {
if (!currentKpiIds.includes(selKpi.kpiId)) {
currentKpiIds.push(selKpi.kpiId);
}
}
for (let kpi of vm.kpiOptions) {
vm.$set(kpi, 'kpiId', kpi.id);
if (currentKpiIds.includes(kpi.id)) {
vm.$set(kpi, 'isCheck', true);
vm.$nextTick(() => {
vm.$refs.kpiTableRef.toggleRowSelection(kpi, true);
});
} else {
vm.$set(kpi, 'isCheck', false);
}
}
},到此这篇关于el-table解决过滤导致选中的丢失的文章就介绍到这了,更多相关el-table过滤导致选中的丢失内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
JavaScript存储方式Cookie到IndexedDB全解析
这篇文章主要介绍了JavaScript存储方式Cookie到IndexedDB的相关资料,IndexedDB是一种客户端存储技术,允许Web应用程序在用户的浏览器中存储和检索数据,即使在没有网络连接的情况下也能工作,需要的朋友可以参考下2026-01-01
Javascript中JSON数据分组优化实践及JS操作JSON总结
这篇文章主要介绍了Javascript中JSON数据分组优化实践,文中还对JS操作JSON的要领做了总结,需要的朋友可以参考下2017-12-12
fullPage.js全屏滚动展示完整实战教程(2025最新版)
fullPage.js是一款知名的JavaScript插件,专为创建全屏滚动效果而设计,这篇文章主要介绍了fullPage.js全屏滚动展示的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下2025-12-12
JavaScript设计模式之原型模式分析【ES5与ES6】
这篇文章主要介绍了JavaScript设计模式之原型模式,简单描述了原型模式的概念、原理,并结合实例形式分析了ES5与ES6实现原型模式的相关操作技巧,需要的朋友可以参考下2018-07-07


最新评论