fix: table filter does not work in header group (#7233)
parent
d870f3f8e0
commit
ad8d32ab09
|
@ -187,6 +187,17 @@ export function getFilterData<RecordType>(
|
|||
}, data);
|
||||
}
|
||||
|
||||
function getMergedColumns<RecordType>(
|
||||
rawMergedColumns: ColumnsType<RecordType>,
|
||||
): ColumnsType<RecordType> {
|
||||
return rawMergedColumns.flatMap(column => {
|
||||
if ('children' in column) {
|
||||
return [column, ...getMergedColumns(column.children || [])];
|
||||
}
|
||||
return [column];
|
||||
});
|
||||
}
|
||||
|
||||
interface FilterConfig<RecordType> {
|
||||
prefixCls: Ref<string>;
|
||||
dropdownPrefixCls: Ref<string>;
|
||||
|
@ -202,7 +213,7 @@ interface FilterConfig<RecordType> {
|
|||
function useFilter<RecordType>({
|
||||
prefixCls,
|
||||
dropdownPrefixCls,
|
||||
mergedColumns,
|
||||
mergedColumns: rawMergedColumns,
|
||||
locale,
|
||||
onFilterChange,
|
||||
getPopupContainer,
|
||||
|
@ -211,6 +222,8 @@ function useFilter<RecordType>({
|
|||
Ref<FilterState<RecordType>[]>,
|
||||
Ref<Record<string, FilterValue | null>>,
|
||||
] {
|
||||
const mergedColumns = computed(() => getMergedColumns(rawMergedColumns.value));
|
||||
|
||||
const [filterStates, setFilterStates] = useState<FilterState<RecordType>[]>(
|
||||
collectFilterStates(mergedColumns.value, true),
|
||||
);
|
||||
|
|
Loading…
Reference in New Issue