diff --git a/packages/core/client/src/block-provider/TableBlockProvider.tsx b/packages/core/client/src/block-provider/TableBlockProvider.tsx index 23e2f7e092..5d5f234d4f 100644 --- a/packages/core/client/src/block-provider/TableBlockProvider.tsx +++ b/packages/core/client/src/block-provider/TableBlockProvider.tsx @@ -50,7 +50,7 @@ const InternalTableBlockProvider = (props: Props) => { const allIncludesChildren = useMemo(() => { const { treeTable } = fieldSchema?.['x-decorator-props'] || {}; const data = service?.data?.data; - if (treeTable !== false) { + if (treeTable) { const keys = getIdsWithChildren(data); return keys; } @@ -120,13 +120,14 @@ export const TableBlockProvider = withDynamicSchemaProps((props) => { const params = useTableBlockParamsCompat(props); let childrenColumnName = 'children'; - if (collection?.tree && treeTable !== false) { + + if (treeTable) { if (resourceName?.includes('.')) { const f = getCollectionField(resourceName); if (f?.treeChildren) { childrenColumnName = f.name; - params['tree'] = true; } + params['tree'] = true; } else { const f = collection.fields.find((f) => f.treeChildren); if (f) { diff --git a/packages/core/client/src/block-provider/TableSelectorProvider.tsx b/packages/core/client/src/block-provider/TableSelectorProvider.tsx index 02f62c89c9..1559cebf40 100644 --- a/packages/core/client/src/block-provider/TableSelectorProvider.tsx +++ b/packages/core/client/src/block-provider/TableSelectorProvider.tsx @@ -161,7 +161,7 @@ export const TableSelectorProvider = withDynamicSchemaProps((props: TableSelecto if (props.dragSort) { params['sort'] = ['sort']; } - if (collectionField?.target === collectionField?.collectionName && collection?.tree && treeTable !== false) { + if (collectionField?.target === collectionField?.collectionName && collection?.tree && treeTable) { params['tree'] = true; if (collectionFieldSchema.name === 'parent') { params.filter = { diff --git a/packages/core/client/src/modules/blocks/data-blocks/table-selector/tableSelectorBlockSettings.ts b/packages/core/client/src/modules/blocks/data-blocks/table-selector/tableSelectorBlockSettings.ts index 4e0f95a87a..7b183f3736 100644 --- a/packages/core/client/src/modules/blocks/data-blocks/table-selector/tableSelectorBlockSettings.ts +++ b/packages/core/client/src/modules/blocks/data-blocks/table-selector/tableSelectorBlockSettings.ts @@ -77,7 +77,7 @@ export const tableSelectorBlockSettings = new SchemaSettings({ return { title: t('Tree table'), defaultChecked: true, - checked: field.decoratorProps.treeTable !== false, + checked: field.decoratorProps.treeTable, onChange: (flag) => { field.form.clearFormGraph(`${field.address}.*`); field.decoratorProps.treeTable = flag; diff --git a/packages/core/client/src/modules/blocks/data-blocks/table/TableActionColumnInitializers.tsx b/packages/core/client/src/modules/blocks/data-blocks/table/TableActionColumnInitializers.tsx index f6487aef91..714adc186e 100644 --- a/packages/core/client/src/modules/blocks/data-blocks/table/TableActionColumnInitializers.tsx +++ b/packages/core/client/src/modules/blocks/data-blocks/table/TableActionColumnInitializers.tsx @@ -188,7 +188,7 @@ const commonOptions = { const fieldSchema = useFieldSchema(); const collection = useCollection_deprecated(); const { treeTable } = fieldSchema?.parent?.parent['x-decorator-props'] || {}; - return collection.tree && treeTable !== false; + return collection.tree && treeTable; }, }, ], diff --git a/packages/core/client/src/modules/blocks/data-blocks/table/TableActionInitializers.tsx b/packages/core/client/src/modules/blocks/data-blocks/table/TableActionInitializers.tsx index 03ab6b26d6..59398b951f 100644 --- a/packages/core/client/src/modules/blocks/data-blocks/table/TableActionInitializers.tsx +++ b/packages/core/client/src/modules/blocks/data-blocks/table/TableActionInitializers.tsx @@ -80,7 +80,7 @@ export const tableActionInitializers_deprecated = new CompatibleSchemaInitialize const schema = useFieldSchema(); const collection = useCollection_deprecated(); const { treeTable } = schema?.parent?.['x-decorator-props'] || {}; - return collection.tree && treeTable !== false; + return collection.tree && treeTable; }, }, ], @@ -195,7 +195,7 @@ export const tableActionInitializers = new CompatibleSchemaInitializer( const schema = useFieldSchema(); const collection = useCollection_deprecated(); const { treeTable } = schema?.parent?.['x-decorator-props'] || {}; - return collection.tree && treeTable !== false; + return collection.tree && treeTable; }, }, ], diff --git a/packages/core/client/src/modules/blocks/data-blocks/table/__e2e__/schemaSettings.test.ts b/packages/core/client/src/modules/blocks/data-blocks/table/__e2e__/schemaSettings.test.ts index 1afffa2291..e00de1008d 100644 --- a/packages/core/client/src/modules/blocks/data-blocks/table/__e2e__/schemaSettings.test.ts +++ b/packages/core/client/src/modules/blocks/data-blocks/table/__e2e__/schemaSettings.test.ts @@ -760,6 +760,7 @@ test.describe('actions schema settings', () => { test('supported options', async ({ page, mockPage, mockRecord }) => { const nocoPage = await mockPage(oneEmptyTableWithTreeCollection).waitForInit(); await nocoPage.goto(); + await page.getByLabel('block-item-CardItem-treeCollection-table').hover(); // 添加一行数据 // TODO: 使用 mockRecord 为 tree 表添加一行数据无效 @@ -774,6 +775,9 @@ test.describe('actions schema settings', () => { await page.mouse.move(300, 0); await page.getByRole('button', { name: 'Submit' }).click(); + await page.getByLabel('designer-schema-settings-CardItem-TableBlockDesigner-treeCollection').hover(); + await page.getByRole('menuitem', { name: 'Tree table' }).click(); + // 添加 add child 按钮 await page.getByRole('button', { name: 'Actions', exact: true }).hover(); await page.getByLabel('designer-schema-settings-TableV2.Column-TableV2.ActionColumnDesigner-tree').hover(); diff --git a/packages/core/client/src/modules/blocks/data-blocks/table/__e2e__/tree/schemaSettings.test.ts b/packages/core/client/src/modules/blocks/data-blocks/table/__e2e__/tree/schemaSettings.test.ts index afadd771cd..8f35b34a13 100644 --- a/packages/core/client/src/modules/blocks/data-blocks/table/__e2e__/tree/schemaSettings.test.ts +++ b/packages/core/client/src/modules/blocks/data-blocks/table/__e2e__/tree/schemaSettings.test.ts @@ -32,9 +32,10 @@ test.describe('tree table block schema settings', () => { // await expect(page.getByLabel('Expand row').first()).toBeVisible({ timeout: 1000 * 60 }); await showSettingsMenu(page); - await expect(page.getByRole('menuitem', { name: 'Tree table' }).getByRole('switch')).toBeChecked(); - await page.getByRole('menuitem', { name: 'Tree table' }).click(); + //默认不启用 await expect(page.getByRole('menuitem', { name: 'Tree table' }).getByRole('switch')).not.toBeChecked(); + await page.getByRole('menuitem', { name: 'Tree table' }).click(); + await expect(page.getByRole('menuitem', { name: 'Tree table' }).getByRole('switch')).toBeChecked(); // await expect(page.getByLabel('Expand row')).toBeHidden(); }); }); diff --git a/packages/core/client/src/modules/blocks/data-blocks/table/tableBlockSettings.tsx b/packages/core/client/src/modules/blocks/data-blocks/table/tableBlockSettings.tsx index 5e64cbce3d..f1f67bd497 100644 --- a/packages/core/client/src/modules/blocks/data-blocks/table/tableBlockSettings.tsx +++ b/packages/core/client/src/modules/blocks/data-blocks/table/tableBlockSettings.tsx @@ -50,7 +50,7 @@ export const tableBlockSettings = new SchemaSettings({ return { title: t('Tree table'), defaultChecked: true, - checked: treeCollection ? field.decoratorProps.treeTable !== false : false, + checked: treeCollection ? field.decoratorProps.treeTable : false, onChange: (flag) => { field.decoratorProps.treeTable = flag; fieldSchema['x-decorator-props'].treeTable = flag; diff --git a/packages/core/client/src/schema-component/antd/table-v2/TableBlockDesigner.tsx b/packages/core/client/src/schema-component/antd/table-v2/TableBlockDesigner.tsx index c823057da6..4f24b5bb3c 100644 --- a/packages/core/client/src/schema-component/antd/table-v2/TableBlockDesigner.tsx +++ b/packages/core/client/src/schema-component/antd/table-v2/TableBlockDesigner.tsx @@ -126,7 +126,7 @@ export const TableBlockDesigner = () => { { field.decoratorProps.treeTable = flag; fieldSchema['x-decorator-props'].treeTable = flag; diff --git a/packages/core/client/src/schema-component/antd/table-v2/TableSelectorDesigner.tsx b/packages/core/client/src/schema-component/antd/table-v2/TableSelectorDesigner.tsx index b325a5fb38..0935ffa73e 100644 --- a/packages/core/client/src/schema-component/antd/table-v2/TableSelectorDesigner.tsx +++ b/packages/core/client/src/schema-component/antd/table-v2/TableSelectorDesigner.tsx @@ -110,7 +110,7 @@ export const TableSelectorDesigner = () => { { field.form.clearFormGraph(`${field.address}.*`); field.decoratorProps.treeTable = flag; diff --git a/packages/plugins/@nocobase/plugin-gantt/src/client/GanttActionInitializers.tsx b/packages/plugins/@nocobase/plugin-gantt/src/client/GanttActionInitializers.tsx index 1c0d193496..d381c102db 100644 --- a/packages/plugins/@nocobase/plugin-gantt/src/client/GanttActionInitializers.tsx +++ b/packages/plugins/@nocobase/plugin-gantt/src/client/GanttActionInitializers.tsx @@ -78,7 +78,7 @@ export const GanttActionInitializers_deprecated = new CompatibleSchemaInitialize const schema = useFieldSchema(); const collection = useCollection_deprecated(); const { treeTable } = schema?.parent?.['x-decorator-props'] || {}; - return collection.tree && treeTable !== false; + return collection.tree && treeTable; }, }, ], @@ -193,7 +193,7 @@ export const ganttActionInitializers = new CompatibleSchemaInitializer( const schema = useFieldSchema(); const collection = useCollection_deprecated(); const { treeTable } = schema?.parent?.['x-decorator-props'] || {}; - return collection.tree && treeTable !== false; + return collection.tree && treeTable; }, }, ],