fix(components): [table] default-expand-all invalid (#20715)

* fix(components): [table] `default-expand-all` invalid

* test: dynamic data case

* test: update
This commit is contained in:
btea
2025-05-13 16:49:17 +08:00
committed by GitHub
parent 9d9d71a32c
commit 317307aa2a
2 changed files with 87 additions and 0 deletions

View File

@@ -1722,6 +1722,92 @@ describe('Table.vue', () => {
expect(spy.mock.calls[0][1]).toBeTruthy()
})
it('tree-props & default-expand-all with dynamic data', async () => {
wrapper = mount({
components: {
ElTable,
ElTableColumn,
},
template: `
<el-table
:data="testData" default-expand-all row-key="id"
>
<el-table-column prop="name" label="片名" />
<el-table-column prop="release" label="发行日期" />
<el-table-column prop="director" label="导演" />
<el-table-column prop="runtime" label="时长(分)" />
</el-table>
`,
data() {
return {
testData: [],
}
},
methods: {
setData() {
this.testData = [
{
id: 1,
name: 'Toy Story',
release: '1995-11-22',
director: 'John Lasseter',
runtime: 80,
children: [
{
id: 11,
name: 'Toy Story',
release: '1995-11-22',
director: 'John Lasseter',
runtime: 80,
},
{
id: 12,
name: 'Toy Story',
release: '1995-11-22',
director: 'John Lasseter',
runtime: 80,
},
],
},
{
id: 2,
name: "A Bug's Life",
release: '1998-11-25',
director: 'John Lasseter',
runtime: 95,
children: [
{
id: 21,
name: "A Bug's Life",
release: '1998-11-25',
director: 'John Lasseter',
runtime: 95,
},
{
id: 22,
name: "A Bug's Life",
release: '1998-11-25',
director: 'John Lasseter',
runtime: 95,
},
],
},
]
},
},
})
await doubleWait()
let childRows = wrapper.findAll('.el-table__row--level-1')
expect(childRows.length).toEqual(0)
wrapper.vm.setData()
await doubleWait()
childRows = wrapper.findAll('.el-table__row--level-1')
childRows.forEach((item) => {
expect(item.attributes('style')).toBeUndefined()
})
})
it('tree-props & default-expand-all & shrink & edit-value', async () => {
wrapper = mount({
components: {

View File

@@ -148,6 +148,7 @@ function useTree<T>(watcherData: WatcherPropsData<T>) {
watch(
() => normalizedData.value,
() => {
isInitTree = true
updateTreeData()
}
)