fix: table selection
parent
a8b2318d1f
commit
5f640f15e3
|
@ -15,7 +15,7 @@ import type {
|
||||||
} from '../../interface';
|
} from '../../interface';
|
||||||
import FilterDropdownMenuWrapper from './FilterWrapper';
|
import FilterDropdownMenuWrapper from './FilterWrapper';
|
||||||
import type { FilterState } from '.';
|
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 classNames from '../../../_util/classNames';
|
||||||
import useConfigInject from '../../../_util/hooks/useConfigInject';
|
import useConfigInject from '../../../_util/hooks/useConfigInject';
|
||||||
import { useInjectSlots } from '../../context';
|
import { useInjectSlots } from '../../context';
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import DownOutlined from '@ant-design/icons-vue/DownOutlined';
|
import DownOutlined from '@ant-design/icons-vue/DownOutlined';
|
||||||
import type { DataNode } from '../../tree';
|
import type { DataNode } from '../../tree';
|
||||||
import { INTERNAL_COL_DEFINE } from '../../vc-table';
|
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 type { GetCheckDisabled } from '../../vc-tree/interface';
|
||||||
import { arrAdd, arrDel } from '../../vc-tree/util';
|
import { arrAdd, arrDel } from '../../vc-tree/util';
|
||||||
import { conductCheck } from '../../vc-tree/utils/conductUtil';
|
import { conductCheck } from '../../vc-tree/utils/conductUtil';
|
||||||
|
@ -423,13 +423,12 @@ export default function useSelection<RecordType>(
|
||||||
}
|
}
|
||||||
|
|
||||||
// Body Cell
|
// Body Cell
|
||||||
let renderCell: (
|
let renderCell: ({ record, index }: { record: RecordType; index: number }) => {
|
||||||
_: RecordType,
|
node: any;
|
||||||
record: RecordType,
|
checked: boolean;
|
||||||
index: number,
|
};
|
||||||
) => { node: any; checked: boolean };
|
|
||||||
if (selectionType === 'radio') {
|
if (selectionType === 'radio') {
|
||||||
renderCell = (_, record, index) => {
|
renderCell = ({ record, index }) => {
|
||||||
const key = getRowKey.value(record, index);
|
const key = getRowKey.value(record, index);
|
||||||
const checked = keySet.has(key);
|
const checked = keySet.has(key);
|
||||||
|
|
||||||
|
@ -450,7 +449,7 @@ export default function useSelection<RecordType>(
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
renderCell = (_, record, index) => {
|
renderCell = ({ record, index }) => {
|
||||||
const key = getRowKey.value(record, index);
|
const key = getRowKey.value(record, index);
|
||||||
const checked = keySet.has(key);
|
const checked = keySet.has(key);
|
||||||
const indeterminate = derivedHalfSelectedKeySet.value.has(key);
|
const indeterminate = derivedHalfSelectedKeySet.value.has(key);
|
||||||
|
@ -572,8 +571,8 @@ export default function useSelection<RecordType>(
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const renderSelectionCell = (_: any, record: RecordType, index: number) => {
|
const renderSelectionCell: ColumnType<RecordType>['customRender'] = ({ record, index }) => {
|
||||||
const { node, checked } = renderCell(_, record, index);
|
const { node, checked } = renderCell({ record, index });
|
||||||
|
|
||||||
if (customizeRenderCell) {
|
if (customizeRenderCell) {
|
||||||
return customizeRenderCell(checked, record, index, node);
|
return customizeRenderCell(checked, record, index, node);
|
||||||
|
@ -587,7 +586,7 @@ export default function useSelection<RecordType>(
|
||||||
width: selectionColWidth,
|
width: selectionColWidth,
|
||||||
className: `${prefixCls.value}-selection-column`,
|
className: `${prefixCls.value}-selection-column`,
|
||||||
title: mergedRowSelection.value.columnTitle || title,
|
title: mergedRowSelection.value.columnTitle || title,
|
||||||
render: renderSelectionCell,
|
customRender: renderSelectionCell,
|
||||||
[INTERNAL_COL_DEFINE]: {
|
[INTERNAL_COL_DEFINE]: {
|
||||||
class: `${prefixCls.value}-selection-col`,
|
class: `${prefixCls.value}-selection-col`,
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue