目标:数据表格 Data Table进行筛选,让表格根据‘是否到期’进行筛选
一、官方方式(我尝试的时候并未成功)
const columns = ref([
{
title: "是否到期",
key: "riqi",
align: 'center',
minWidth: 100,
defaultFilterOptionValues: ['到期', '未到期'],
filterOptions: [
{
label: '到期',
value: '到期'
},
{
label: '未到期',
value: '未到期'
}
],
filter (value, row) {
return ~row.riqi.indexOf(value)
}
}
])
无效可能的原因:有可能导致筛选无效的原因可能是indexOf
方法的使用不太适合这个场景。因为indexOf
方法是用于查找数组或字符串中指定元素的位置,如果未找到则返回-1。在这里,可能需要确认“riqi”字段的值是否包含用户选择的值,而不仅仅是位置。
二、有效的方式(主要对filter部分进行了修改)
const columns = ref([
{
title: "是否到期",
key: "riqi",
align: 'center',
minWidth: 100,
defaultFilterOptionValues: ['到期', '未到期'],
filterOptions: [
{
label: '到期',
value: '到期'
},
{
label: '未到期',
value: '未到期'
}
],
filter(value, row) {
if (value === '到期' && row.riqi === '到期') {
return true;
} else if (value === '未到期' && row.riqi === '未到期') {
return true;
}
return false;
}
}
])