Table: fix load bug in lazy mode (#15101)

pull/15111/head
hetech 2019-04-12 19:06:29 +08:00 committed by GitHub
parent b49d84e182
commit c6dbd286e1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 12 deletions

View File

@ -35,7 +35,7 @@ export default {
prev.push(item); prev.push(item);
const rowKey = this.store.table.getRowKey(item); const rowKey = this.store.table.getRowKey(item);
const parent = this.store.states.treeData[rowKey]; const parent = this.store.states.treeData[rowKey];
if (parent && parent.children) { if (parent && parent.children && parent.hasChildren) {
const tmp = []; const tmp = [];
const traverse = (children) => { const traverse = (children) => {
if (!children) return; if (!children) return;

View File

@ -1,4 +1,4 @@
import { createVue, triggerEvent, destroyVM } from '../util'; import { createVue, triggerEvent, destroyVM, waitImmediate } from '../util';
const DELAY = 10; const DELAY = 10;
const testDataArr = []; const testDataArr = [];
@ -1956,7 +1956,7 @@ describe('Table', () => {
}, DELAY); }, DELAY);
}); });
it('load substree row data', (done) => { it('load substree row data', async() => {
const vm = createVue({ const vm = createVue({
template: ` template: `
<el-table :data="testData" row-key="release" lazy :load="load"> <el-table :data="testData" row-key="release" lazy :load="load">
@ -1968,6 +1968,11 @@ describe('Table', () => {
`, `,
data() { data() {
const testData = getTestData(); const testData = getTestData();
testData[testData.length - 1].children = [
{
name: 'A Bug\'s Life copy 1', release: '2008-1-25-1', director: 'John Lasseter', runtime: 95
}
];
testData[1].hasChildren = true; testData[1].hasChildren = true;
return { return {
testData: testData testData: testData
@ -1986,14 +1991,15 @@ describe('Table', () => {
} }
} }
}, true); }, true);
setTimeout(() => {
await waitImmediate();
const expandIcon = vm.$el.querySelector('.el-table__expand-icon'); const expandIcon = vm.$el.querySelector('.el-table__expand-icon');
expandIcon.click(); expandIcon.click();
setTimeout(() => {
await waitImmediate();
expect(expandIcon.classList.contains('el-table__expand-icon--expanded')).to.be.true; expect(expandIcon.classList.contains('el-table__expand-icon--expanded')).to.be.true;
expect(vm.$el.querySelectorAll('.el-table__row').length).to.equal(7); expect(vm.$el.querySelectorAll('.el-table__row').length).to.equal(8);
done();
}, DELAY);
}, DELAY);
}); });
}); });