mirror of https://github.com/ElemeFE/element
Tree: render when node expand
parent
4348420277
commit
54e5cd2340
|
@ -3,7 +3,7 @@
|
||||||
@click.stop="handleClick"
|
@click.stop="handleClick"
|
||||||
v-show="node.visible"
|
v-show="node.visible"
|
||||||
:class="{
|
:class="{
|
||||||
'is-expanded': childNodeRendered && expanded,
|
'is-expanded': expanded,
|
||||||
'is-current': tree.store.currentNode === node,
|
'is-current': tree.store.currentNode === node,
|
||||||
'is-hidden': !node.visible
|
'is-hidden': !node.visible
|
||||||
}">
|
}">
|
||||||
|
@ -31,6 +31,7 @@
|
||||||
<el-collapse-transition>
|
<el-collapse-transition>
|
||||||
<div
|
<div
|
||||||
class="el-tree-node__children"
|
class="el-tree-node__children"
|
||||||
|
v-if="childNodeRendered"
|
||||||
v-show="expanded">
|
v-show="expanded">
|
||||||
<el-tree-node
|
<el-tree-node
|
||||||
:render-content="renderContent"
|
:render-content="renderContent"
|
||||||
|
@ -110,7 +111,7 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
'node.expanded'(val) {
|
'node.expanded'(val) {
|
||||||
this.expanded = val;
|
this.$nextTick(() => this.expanded = val);
|
||||||
if (val) {
|
if (val) {
|
||||||
this.childNodeRendered = true;
|
this.childNodeRendered = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -119,7 +119,7 @@ describe('Tree', () => {
|
||||||
const ALL_NODE_COUNT = 9;
|
const ALL_NODE_COUNT = 9;
|
||||||
|
|
||||||
it('create', () => {
|
it('create', () => {
|
||||||
vm = getTreeVm(':props="defaultProps"');
|
vm = getTreeVm(':props="defaultProps" default-expand-all');
|
||||||
expect(document.querySelector('.el-tree')).to.exist;
|
expect(document.querySelector('.el-tree')).to.exist;
|
||||||
expect(document.querySelectorAll('.el-tree > .el-tree-node').length).to.equal(3);
|
expect(document.querySelectorAll('.el-tree > .el-tree-node').length).to.equal(3);
|
||||||
expect(document.querySelectorAll('.el-tree .el-tree-node').length).to.equal(ALL_NODE_COUNT);
|
expect(document.querySelectorAll('.el-tree .el-tree-node').length).to.equal(ALL_NODE_COUNT);
|
||||||
|
@ -245,7 +245,7 @@ describe('Tree', () => {
|
||||||
tree.filter('2-1');
|
tree.filter('2-1');
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
expect(tree.$el.querySelectorAll('.el-tree-node.is-hidden').length).to.equal(7);
|
expect(tree.$el.querySelectorAll('.el-tree-node.is-hidden').length).to.equal(3);
|
||||||
done();
|
done();
|
||||||
}, 100);
|
}, 100);
|
||||||
});
|
});
|
||||||
|
@ -259,13 +259,19 @@ describe('Tree', () => {
|
||||||
expect(vm.$el.querySelectorAll('.el-tree-node.is-expanded').length).to.equal(3);
|
expect(vm.$el.querySelectorAll('.el-tree-node.is-expanded').length).to.equal(3);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('autoExpandParent = false', () => {
|
it('autoExpandParent = false', (done) => {
|
||||||
vm = getTreeVm(':props="defaultProps" :default-expanded-keys="defaultExpandedKeys" node-key="id" :auto-expand-parent="false"', {
|
vm = getTreeVm(':props="defaultProps" :default-expanded-keys="defaultExpandedKeys" node-key="id" :auto-expand-parent="false"', {
|
||||||
created() {
|
created() {
|
||||||
this.defaultExpandedKeys = [111];
|
this.defaultExpandedKeys = [11];
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
expect(vm.$el.querySelectorAll('.el-tree-node.is-expanded').length).to.equal(1);
|
expect(vm.$el.querySelectorAll('.el-tree-node.is-expanded').length).to.equal(0);
|
||||||
|
const firstNode = document.querySelector('.el-tree-node__content');
|
||||||
|
firstNode.querySelector('.el-tree-node__expand-icon').click();
|
||||||
|
setTimeout(() => {
|
||||||
|
expect(document.querySelectorAll('.el-tree-node.is-expanded').length).to.equal(2);
|
||||||
|
done();
|
||||||
|
}, 100);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('defaultCheckedKeys & check-strictly = false', () => {
|
it('defaultCheckedKeys & check-strictly = false', () => {
|
||||||
|
@ -289,25 +295,26 @@ describe('Tree', () => {
|
||||||
it('show checkbox', done => {
|
it('show checkbox', done => {
|
||||||
vm = getTreeVm(':props="defaultProps" show-checkbox');
|
vm = getTreeVm(':props="defaultProps" show-checkbox');
|
||||||
const tree = vm.$children[0];
|
const tree = vm.$children[0];
|
||||||
const secondNode = document.querySelectorAll('.el-tree-node__content')[3];
|
const secondNode = document.querySelectorAll('.el-tree-node__content')[1];
|
||||||
const nodeCheckbox = secondNode.querySelector('.el-checkbox');
|
const nodeCheckbox = secondNode.querySelector('.el-checkbox');
|
||||||
expect(nodeCheckbox).to.be.exist;
|
expect(nodeCheckbox).to.be.exist;
|
||||||
nodeCheckbox.click();
|
nodeCheckbox.click();
|
||||||
expect(tree.getCheckedNodes().length).to.equal(3);
|
expect(tree.getCheckedNodes().length).to.equal(3);
|
||||||
expect(tree.getCheckedNodes(true).length).to.equal(2);
|
expect(tree.getCheckedNodes(true).length).to.equal(2);
|
||||||
const firstLeaf = secondNode.nextElementSibling.querySelector('.el-tree-node__content');
|
secondNode.querySelector('.el-tree-node__expand-icon').click();
|
||||||
const leafCheckbox = firstLeaf.querySelector('.el-checkbox');
|
setTimeout(() => {
|
||||||
vm.$nextTick(() => {
|
const firstLeaf = secondNode.nextElementSibling.querySelector('.el-tree-node__content');
|
||||||
|
const leafCheckbox = firstLeaf.querySelector('.el-checkbox');
|
||||||
leafCheckbox.click();
|
leafCheckbox.click();
|
||||||
expect(tree.getCheckedNodes().length).to.equal(1);
|
expect(tree.getCheckedNodes().length).to.equal(1);
|
||||||
done();
|
done();
|
||||||
});
|
}, 100);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('setCheckedNodes', (done) => {
|
it('setCheckedNodes', (done) => {
|
||||||
vm = getTreeVm(':props="defaultProps" show-checkbox node-key="id"');
|
vm = getTreeVm(':props="defaultProps" show-checkbox node-key="id"');
|
||||||
const tree = vm.$children[0];
|
const tree = vm.$children[0];
|
||||||
const secondNode = document.querySelectorAll('.el-tree-node__content')[3];
|
const secondNode = document.querySelectorAll('.el-tree-node__content')[1];
|
||||||
const nodeCheckbox = secondNode.querySelector('.el-checkbox');
|
const nodeCheckbox = secondNode.querySelector('.el-checkbox');
|
||||||
nodeCheckbox.click();
|
nodeCheckbox.click();
|
||||||
expect(tree.getCheckedNodes().length).to.equal(3);
|
expect(tree.getCheckedNodes().length).to.equal(3);
|
||||||
|
@ -443,7 +450,7 @@ describe('Tree', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('set disabled checkbox', done => {
|
it('set disabled checkbox', done => {
|
||||||
vm = getDisableTreeVm(':props="defaultProps" show-checkbox node-key="id"');
|
vm = getDisableTreeVm(':props="defaultProps" show-checkbox node-key="id" default-expand-all');
|
||||||
const node = document.querySelectorAll('.el-tree-node__content')[2];
|
const node = document.querySelectorAll('.el-tree-node__content')[2];
|
||||||
const nodeCheckbox = node.querySelector('.el-checkbox input');
|
const nodeCheckbox = node.querySelector('.el-checkbox input');
|
||||||
vm.$nextTick(() => {
|
vm.$nextTick(() => {
|
||||||
|
@ -453,7 +460,7 @@ describe('Tree', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('check strictly', (done) => {
|
it('check strictly', (done) => {
|
||||||
vm = getTreeVm(':props="defaultProps" show-checkbox check-strictly');
|
vm = getTreeVm(':props="defaultProps" show-checkbox check-strictly default-expand-all');
|
||||||
const tree = vm.$children[0];
|
const tree = vm.$children[0];
|
||||||
const secondNode = document.querySelectorAll('.el-tree-node__content')[3];
|
const secondNode = document.querySelectorAll('.el-tree-node__content')[3];
|
||||||
const nodeCheckbox = secondNode.querySelector('.el-checkbox');
|
const nodeCheckbox = secondNode.querySelector('.el-checkbox');
|
||||||
|
@ -506,11 +513,11 @@ describe('Tree', () => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
const firstNode = document.querySelector('.el-tree-node__content');
|
const nodes = document.querySelectorAll('.el-tree-node__content');
|
||||||
expect(firstNode.nextElementSibling.childNodes.length).to.equal(0);
|
expect(nodes.length).to.equal(2);
|
||||||
firstNode.click();
|
nodes[0].click();
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
expect(firstNode.nextElementSibling.childNodes.length).to.equal(2);
|
expect(document.querySelectorAll('.el-tree-node__content').length).to.equal(4);
|
||||||
done();
|
done();
|
||||||
}, 100);
|
}, 100);
|
||||||
});
|
});
|
||||||
|
@ -557,7 +564,7 @@ describe('Tree', () => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
const firstNode = document.querySelector('.el-tree-node__content');
|
const firstNode = document.querySelector('.el-tree-node__content');
|
||||||
expect(firstNode.nextElementSibling.childNodes.length).to.equal(0);
|
expect(firstNode.nextElementSibling).to.not.exist;
|
||||||
firstNode.click();
|
firstNode.click();
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
expect(vm.nodeExpended).to.equal(true);
|
expect(vm.nodeExpended).to.equal(true);
|
||||||
|
@ -572,7 +579,7 @@ describe('Tree', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('updateKeyChildren', (done) => {
|
it('updateKeyChildren', (done) => {
|
||||||
vm = getTreeVm(':props="defaultProps" show-checkbox node-key="id"');
|
vm = getTreeVm(':props="defaultProps" show-checkbox node-key="id" default-expand-all');
|
||||||
const tree = vm.$children[0];
|
const tree = vm.$children[0];
|
||||||
tree.updateKeyChildren(1, [{
|
tree.updateKeyChildren(1, [{
|
||||||
id: 111,
|
id: 111,
|
||||||
|
|
Loading…
Reference in New Issue