From 5f640f15e38e2d5a49f923fb4a87db275f6b1e7f Mon Sep 17 00:00:00 2001 From: tangjinzhou <415800467@qq.com> Date: Tue, 7 Sep 2021 23:44:39 +0800 Subject: [PATCH] fix: table selection --- .../table/hooks/useFilter/FilterDropdown.tsx | 2 +- components/table/hooks/useSelection.tsx | 21 +++++++++---------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/components/table/hooks/useFilter/FilterDropdown.tsx b/components/table/hooks/useFilter/FilterDropdown.tsx index a63b785ec..536d63ea9 100644 --- a/components/table/hooks/useFilter/FilterDropdown.tsx +++ b/components/table/hooks/useFilter/FilterDropdown.tsx @@ -15,7 +15,7 @@ import type { } from '../../interface'; import FilterDropdownMenuWrapper from './FilterWrapper'; import type { FilterState } from '.'; -import { computed, defineComponent, nextTick, onBeforeUnmount, ref, watch } from 'vue'; +import { computed, defineComponent, onBeforeUnmount, ref, watch } from 'vue'; import classNames from '../../../_util/classNames'; import useConfigInject from '../../../_util/hooks/useConfigInject'; import { useInjectSlots } from '../../context'; diff --git a/components/table/hooks/useSelection.tsx b/components/table/hooks/useSelection.tsx index 82fef6cc4..2152d6ddc 100644 --- a/components/table/hooks/useSelection.tsx +++ b/components/table/hooks/useSelection.tsx @@ -1,7 +1,7 @@ import DownOutlined from '@ant-design/icons-vue/DownOutlined'; import type { DataNode } from '../../tree'; import { INTERNAL_COL_DEFINE } from '../../vc-table'; -import type { FixedType } from '../../vc-table/interface'; +import type { ColumnType, FixedType } from '../../vc-table/interface'; import type { GetCheckDisabled } from '../../vc-tree/interface'; import { arrAdd, arrDel } from '../../vc-tree/util'; import { conductCheck } from '../../vc-tree/utils/conductUtil'; @@ -423,13 +423,12 @@ export default function useSelection( } // Body Cell - let renderCell: ( - _: RecordType, - record: RecordType, - index: number, - ) => { node: any; checked: boolean }; + let renderCell: ({ record, index }: { record: RecordType; index: number }) => { + node: any; + checked: boolean; + }; if (selectionType === 'radio') { - renderCell = (_, record, index) => { + renderCell = ({ record, index }) => { const key = getRowKey.value(record, index); const checked = keySet.has(key); @@ -450,7 +449,7 @@ export default function useSelection( }; }; } else { - renderCell = (_, record, index) => { + renderCell = ({ record, index }) => { const key = getRowKey.value(record, index); const checked = keySet.has(key); const indeterminate = derivedHalfSelectedKeySet.value.has(key); @@ -572,8 +571,8 @@ export default function useSelection( }; } - const renderSelectionCell = (_: any, record: RecordType, index: number) => { - const { node, checked } = renderCell(_, record, index); + const renderSelectionCell: ColumnType['customRender'] = ({ record, index }) => { + const { node, checked } = renderCell({ record, index }); if (customizeRenderCell) { return customizeRenderCell(checked, record, index, node); @@ -587,7 +586,7 @@ export default function useSelection( width: selectionColWidth, className: `${prefixCls.value}-selection-column`, title: mergedRowSelection.value.columnTitle || title, - render: renderSelectionCell, + customRender: renderSelectionCell, [INTERNAL_COL_DEFINE]: { class: `${prefixCls.value}-selection-col`, },