From 10f537f26a798c05a1d85d616eca23f22747d17b Mon Sep 17 00:00:00 2001 From: Gweesin Chan <42909374+gweesin@users.noreply.github.com> Date: Tue, 4 Mar 2025 09:37:29 +0800 Subject: [PATCH] feat(grid): [grid] expose getTreeExpandeds function (#2996) * feat(grid): expose getTreeExpandeds function * docs: fix description error --- examples/sites/demos/apis/grid.js | 14 ++ ...table-tree-grid-expand-composition-api.vue | 149 +++++++++++++++++ .../tree-table-tree-grid-expand.spec.js | 9 + .../tree-table-tree-grid-expand.vue | 158 ++++++++++++++++++ .../pc/app/grid/webdoc/grid-tree-table.js | 9 + packages/vue/src/grid/src/tree/src/methods.ts | 3 + 6 files changed, 342 insertions(+) create mode 100644 examples/sites/demos/pc/app/grid/tree-table/tree-table-tree-grid-expand-composition-api.vue create mode 100644 examples/sites/demos/pc/app/grid/tree-table/tree-table-tree-grid-expand.spec.js create mode 100644 examples/sites/demos/pc/app/grid/tree-table/tree-table-tree-grid-expand.vue diff --git a/examples/sites/demos/apis/grid.js b/examples/sites/demos/apis/grid.js index f766a1016..ac6346d40 100644 --- a/examples/sites/demos/apis/grid.js +++ b/examples/sites/demos/apis/grid.js @@ -1692,6 +1692,20 @@ export default { mode: ['pc', 'mobile-first'], pcDemo: 'grid-tree-table#tree-table-tree-grid-insert-delete-update' }, + { + name: 'getTreeExpandeds', + type: '() => IRow[]', + defaultValue: '', + meta: { + stable: '3.22.0' + }, + desc: { + 'zh-CN': '获取展开的行数据', + 'en-US': 'Get the expanded row data' + }, + mode: ['pc', 'mobile-first'], + pcDemo: 'grid-tree-table#tree-table-tree-grid-expand' + }, { name: 'closeFilter', type: '() => void', diff --git a/examples/sites/demos/pc/app/grid/tree-table/tree-table-tree-grid-expand-composition-api.vue b/examples/sites/demos/pc/app/grid/tree-table/tree-table-tree-grid-expand-composition-api.vue new file mode 100644 index 000000000..210fce183 --- /dev/null +++ b/examples/sites/demos/pc/app/grid/tree-table/tree-table-tree-grid-expand-composition-api.vue @@ -0,0 +1,149 @@ + + + diff --git a/examples/sites/demos/pc/app/grid/tree-table/tree-table-tree-grid-expand.spec.js b/examples/sites/demos/pc/app/grid/tree-table/tree-table-tree-grid-expand.spec.js new file mode 100644 index 000000000..e7b05b34f --- /dev/null +++ b/examples/sites/demos/pc/app/grid/tree-table/tree-table-tree-grid-expand.spec.js @@ -0,0 +1,9 @@ +import { test, expect } from '@playwright/test' + +test('检查树节点展开行数', async ({ page }) => { + page.on('pageerror', (exception) => expect(exception).toBeNull()) + await page.goto('grid-tree-table#tree-table-tree-grid-expand') + await page.getByRole('cell', { name: '1' }).getByRole('img').click() + + await expect(page.getByText('展开行数:1')).toBeVisible() +}) diff --git a/examples/sites/demos/pc/app/grid/tree-table/tree-table-tree-grid-expand.vue b/examples/sites/demos/pc/app/grid/tree-table/tree-table-tree-grid-expand.vue new file mode 100644 index 000000000..11b94d1be --- /dev/null +++ b/examples/sites/demos/pc/app/grid/tree-table/tree-table-tree-grid-expand.vue @@ -0,0 +1,158 @@ + + + diff --git a/examples/sites/demos/pc/app/grid/webdoc/grid-tree-table.js b/examples/sites/demos/pc/app/grid/webdoc/grid-tree-table.js index 2835bdcdc..84f92a3ef 100644 --- a/examples/sites/demos/pc/app/grid/webdoc/grid-tree-table.js +++ b/examples/sites/demos/pc/app/grid/webdoc/grid-tree-table.js @@ -96,6 +96,15 @@ export default { }, 'codeFiles': ['tree-table/has-tree-expand.vue'] }, + { + 'demoId': 'tree-table-tree-grid-expand', + 'name': { 'zh-CN': '获取展开的行数据', 'en-US': 'Get the expanded row data' }, + 'desc': { + 'zh-CN': '

通过 getTreeExpandeds 方法可以获取展开的行数据

', + 'en-US': '

You can use the getTreeExpandeds method to get the expanded row data

' + }, + 'codeFiles': ['tree-table/tree-table-tree-grid-expand.vue'] + }, { 'demoId': 'tree-table-tree-grid-index', 'name': { 'zh-CN': '树表展开序号列配置', 'en-US': 'Expand Row No. Column Configuration' }, diff --git a/packages/vue/src/grid/src/tree/src/methods.ts b/packages/vue/src/grid/src/tree/src/methods.ts index 6c3b581a5..d6f182525 100644 --- a/packages/vue/src/grid/src/tree/src/methods.ts +++ b/packages/vue/src/grid/src/tree/src/methods.ts @@ -122,5 +122,8 @@ export default { this.treeExpandeds = [] setTreeScrollYCache(this) return this.$nextTick().then(() => (hasExpand ? this.recalculate() : 0)) + }, + getTreeExpandeds() { + return this.treeExpandeds } }