From 304daf4ac0846acbe7b4d0f2e208186f2ebb9ff0 Mon Sep 17 00:00:00 2001 From: wjh Date: Tue, 2 Jul 2024 21:00:39 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=9B=BE=E8=A1=A8?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E8=AE=BE=E7=BD=AE=E5=88=86=E9=A1=B5=E6=97=A0?= =?UTF-8?q?=E6=95=88=20(#1257)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: sealday Reviewed-on: https://git.daoyoucloud.com/daoyoucloud/tachybase/pulls/1257 Reviewed-by: sealday Co-authored-by: wjh Co-committed-by: wjh --- .../src/client/chart/antd/table.ts | 7 +++++-- .../src/client/renderer/ChartRendererProvider.tsx | 6 ++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/plugins/@tachybase/plugin-data-visualization/src/client/chart/antd/table.ts b/packages/plugins/@tachybase/plugin-data-visualization/src/client/chart/antd/table.ts index a9f17a659..05dc0bdfa 100644 --- a/packages/plugins/@tachybase/plugin-data-visualization/src/client/chart/antd/table.ts +++ b/packages/plugins/@tachybase/plugin-data-visualization/src/client/chart/antd/table.ts @@ -8,7 +8,7 @@ export class Table extends AntdChart { super({ name: 'table', title: 'Table', Component: AntdTable }); } - getProps({ data, fieldProps, general, advanced }: RenderProps) { + getProps({ data, fieldProps, general, advanced, ctx }: RenderProps) { const columns = data.length ? Object.keys(data[0]).map((item) => ({ title: fieldProps[item]?.label || item, @@ -33,7 +33,7 @@ export class Table extends AntdChart { item._key = index; return item; }); - const pageSize = advanced?.pagination?.pageSize || 10; + const pageSize = ctx.config?.pageSize || advanced?.pagination?.pageSize || 10; return { // bordered: true, size: 'middle', @@ -42,6 +42,9 @@ export class Table extends AntdChart { ? false : { pageSize, + onShowSizeChange: (curr, size) => { + ctx.config.setPageSize(size); + }, }, dataSource, columns, diff --git a/packages/plugins/@tachybase/plugin-data-visualization/src/client/renderer/ChartRendererProvider.tsx b/packages/plugins/@tachybase/plugin-data-visualization/src/client/renderer/ChartRendererProvider.tsx index 1b5a7fe1f..16f291ed1 100644 --- a/packages/plugins/@tachybase/plugin-data-visualization/src/client/renderer/ChartRendererProvider.tsx +++ b/packages/plugins/@tachybase/plugin-data-visualization/src/client/renderer/ChartRendererProvider.tsx @@ -1,4 +1,4 @@ -import React, { createContext, useContext } from 'react'; +import React, { createContext, useContext, useState } from 'react'; import { CollectionManagerProvider, DEFAULT_DATA_SOURCE_KEY, @@ -72,12 +72,14 @@ export const ChartRendererContext = createContext< ChartRendererContext.displayName = 'ChartRendererContext'; export const ChartRendererProvider: React.FC = (props) => { - const { query, config, collection, transform, dataSource = DEFAULT_DATA_SOURCE_KEY } = props; + const { query, config: propsConfig, collection, transform, dataSource = DEFAULT_DATA_SOURCE_KEY } = props; const { addChart } = useContext(ChartDataContext); const { ready, form, enabled } = useContext(ChartFilterContext); const { getFilter, hasFilter, appendFilter } = useChartFilter(); const schema = useFieldSchema(); const api = useAPIClient(); + const [pageSize, setPageSize] = useState(10); + const config = { pageSize, setPageSize, ...propsConfig }; const service = useRequest( (dataSource, collection, query, manual) => new Promise((resolve, reject) => {