From e4fd3679d50a37bd3394dd1e8bd047bc6250a39e Mon Sep 17 00:00:00 2001 From: Katherine Date: Fri, 15 Nov 2024 12:58:57 +0800 Subject: [PATCH] fix: pagination count not updating after deleting data in subtable (#5648) * fix: pagination count not updating after deleting data in subtable * fix: bug * fix: bug --- lerna.json | 4 +--- .../antd/association-field/SubTable.tsx | 2 +- .../src/schema-component/antd/table-v2/Table.tsx | 16 ++++++++-------- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/lerna.json b/lerna.json index 9a30a0ebf6..5496e73585 100644 --- a/lerna.json +++ b/lerna.json @@ -2,9 +2,7 @@ "version": "1.4.0-alpha.11", "npmClient": "yarn", "useWorkspaces": true, - "npmClientArgs": [ - "--ignore-engines" - ], + "npmClientArgs": ["--ignore-engines"], "command": { "version": { "forcePublish": true, diff --git a/packages/core/client/src/schema-component/antd/association-field/SubTable.tsx b/packages/core/client/src/schema-component/antd/association-field/SubTable.tsx index 0abb554a1d..f77bcc1dd1 100644 --- a/packages/core/client/src/schema-component/antd/association-field/SubTable.tsx +++ b/packages/core/client/src/schema-component/antd/association-field/SubTable.tsx @@ -181,7 +181,7 @@ export const SubTable: any = observer( return { current: currentPage > page ? page : currentPage, pageSize: pageSize || 10, - total: field?.value?.length, + total: field?.value, onChange: (page, pageSize) => { setCurrentPage(page); setPageSize(pageSize); diff --git a/packages/core/client/src/schema-component/antd/table-v2/Table.tsx b/packages/core/client/src/schema-component/antd/table-v2/Table.tsx index b92067f05b..50911ad7de 100644 --- a/packages/core/client/src/schema-component/antd/table-v2/Table.tsx +++ b/packages/core/client/src/schema-component/antd/table-v2/Table.tsx @@ -200,23 +200,23 @@ const useTableColumns = (props: { showDel?: any; isSubTable?: boolean }, paginat render: (v, record, index) => { if (props.showDel(record)) { return ( - { return action(() => { const fieldIndex = (current - 1) * pageSize + index; + const deleteCount = field.value[fieldIndex] ? 1 : 2; spliceArrayState(field, { startIndex: fieldIndex, - deleteCount: 1, - }); - field.value.splice(fieldIndex, 1); - setTimeout(() => { - field.value[field.value.length] = null; + deleteCount: deleteCount, }); + field.value.splice(fieldIndex, deleteCount); + field.setInitialValue(field.value); return field.onInput(field.value); }); }} - /> + > + + ); } return;