diff --git a/packages/components/table/EditableCell.tsx b/packages/components/table/EditableCell.tsx index 0fa23c02ea..561c2c146f 100644 --- a/packages/components/table/EditableCell.tsx +++ b/packages/components/table/EditableCell.tsx @@ -1,22 +1,24 @@ -import React, { useEffect, useMemo, useRef, useState, MouseEvent } from 'react'; -import { get, set, isFunction, cloneDeep } from 'lodash-es'; +import React, { useEffect, useMemo, useRef, useState } from 'react'; import { Edit1Icon as TdEdit1Icon } from 'tdesign-icons-react'; import classNames from 'classnames'; +import { cloneDeep, get, isFunction, set } from 'lodash-es'; + import log from '@tdesign/common-js/log/index'; -import { - TableRowData, +import { validate } from '../form/formModel'; +import useConfig from '../hooks/useConfig'; +import useGlobalIcon from '../hooks/useGlobalIcon'; +import { renderCell } from './Cell'; +import { TableClassName } from './hooks/useClassName'; + +import type { AllValidateResult } from '../form/type'; +import type { + PrimaryTableCellParams, PrimaryTableCol, PrimaryTableRowEditContext, PrimaryTableRowValidateContext, + TableRowData, TdBaseTableProps, - PrimaryTableCellParams, } from './type'; -import useGlobalIcon from '../hooks/useGlobalIcon'; -import { TableClassName } from './hooks/useClassName'; -import { renderCell } from './Cell'; -import { validate } from '../form/formModel'; -import { AllValidateResult } from '../form/type'; -import useConfig from '../hooks/useConfig'; export interface EditableCellProps { row: TableRowData; @@ -213,10 +215,11 @@ const EditableCell = (props: EditableCellProps) => { const onEditChange = (val: any, ...args: any) => { setEditValue(val); + const editedRow = getCurrentRow(props.row, props.col.colKey, val); const params = { ...cellParams, value: val, - editedRow: set({ ...props.row }, props.col.colKey, val), + editedRow, }; props.onChange?.(params); props.onRuleChange?.(params); @@ -231,7 +234,7 @@ const EditableCell = (props: EditableCellProps) => { { value: val, trigger: 'onChange', - newRowData: getCurrentRow(currentRow, col.colKey, val), + newRowData: editedRow, rowIndex: props.rowIndex, }, ...args, @@ -310,7 +313,7 @@ const EditableCell = (props: EditableCellProps) => { return (
) => { + onClick={(e) => { setIsEdit(true); e.stopPropagation(); e.nativeEvent.stopImmediatePropagation(); diff --git a/packages/components/table/hooks/useFilter.tsx b/packages/components/table/hooks/useFilter.tsx index a5b69dc650..8aee96d6b3 100644 --- a/packages/components/table/hooks/useFilter.tsx +++ b/packages/components/table/hooks/useFilter.tsx @@ -1,10 +1,13 @@ import React, { useEffect, useState } from 'react'; -import { getColumnsResetValue } from '@tdesign/common-js/table/utils'; import { isFunction } from 'lodash-es'; +import { getColumnsResetValue } from '@tdesign/common-js/table/utils'; + import TButton from '../../button'; import useControlled from '../../hooks/useControlled'; import { useLocaleReceiver } from '../../locale/LocalReceiver'; import TableFilterController from '../FilterController'; +import useClassName from './useClassName'; + import type { PrimaryTableRef } from '../interface'; import type { FilterValue, @@ -13,7 +16,6 @@ import type { TableRowData, TdPrimaryTableProps, } from '../type'; -import useClassName from './useClassName'; function isFilterValueExist(value: any) { const isArrayTrue = value instanceof Array && value.length; @@ -123,7 +125,7 @@ export default function useFilter( column?: PrimaryTableCol, ) { setTFilterValue(filterValue, { col: column, trigger }); - props.onChange?.({ filter: filterValue }, { trigger: 'filter' }); + props.onChange?.({ filter: filterValue }, { trigger: 'filter', currentData: props.data }); // 重置表格滚动位置 requestAnimationFrame(() => { primaryTableRef.current?.scrollToElement({