diff --git a/src/components/Table/src/components/editable/EditableCell.vue b/src/components/Table/src/components/editable/EditableCell.vue index b878dbe84a3ce5700631517c929428aa59308a72..1f978e898d1dfb281b506295a8307e1aaa5afa12 100644 --- a/src/components/Table/src/components/editable/EditableCell.vue +++ b/src/components/Table/src/components/editable/EditableCell.vue @@ -242,15 +242,16 @@ return false; } if (isFunction(editRule)) { - const res = await editRule(currentValue, record as Recordable); - if (!!res) { - ruleMessage.value = res; - ruleVisible.value = true; - return false; - } else { + editRule(currentValue, record as Recordable) + .then(() => { ruleMessage.value = ''; return true; - } + }) + .catch((msg) => { + ruleMessage.value = msg; + ruleVisible.value = true; + return false; + }); } } ruleMessage.value = ''; diff --git a/src/components/Table/src/hooks/useColumns.ts b/src/components/Table/src/hooks/useColumns.ts index 9b1da22b7e0a1f70f464010e8fb4c499f9505b5b..5a549b05953381876ab6c72ae25d1491f8c2fc28 100644 --- a/src/components/Table/src/hooks/useColumns.ts +++ b/src/components/Table/src/hooks/useColumns.ts @@ -298,7 +298,9 @@ export function useColumns( const column: BasicColumn[] = []; updateData.forEach((item) => { columnsRef.value.forEach((val) => { - if (val.dataIndex === item.dataIndex) { + const dataIndexStr = isArray(val.dataIndex) ? val.dataIndex.join('.') : val.dataIndex; + if (dataIndexStr === item.dataIndex) { + item.dataIndex = val.dataIndex; const newColumn = deepMerge(val, item); column.push(newColumn as BasicColumn); } else { diff --git a/src/components/Table/src/types/table.ts b/src/components/Table/src/types/table.ts index 5366e2aa5cc8991fd17c17127097f5268b86ec8b..ac47f849416e9a2fb7697e5a0144f1af514e5929 100644 --- a/src/components/Table/src/types/table.ts +++ b/src/components/Table/src/types/table.ts @@ -461,7 +461,7 @@ export interface BasicColumn extends ColumnProps { index: number; }) => Recordable) | Recordable; - editRule?: boolean | ((text: string, record: Recordable) => Promise); + editRule?: boolean | ((text: any, record: Recordable) => Promise); // editValueMap?: (value: any) => string; onEditRow?: () => void;