mirror of https://github.com/ElemeFE/element
[tree]添加node-open与node-close事件,共三个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、节点对应的 Node、节点组件本身。
parent
b137274a61
commit
7d09486968
|
@ -146,8 +146,10 @@
|
||||||
|
|
||||||
handleExpandIconClick() {
|
handleExpandIconClick() {
|
||||||
if (this.expanded) {
|
if (this.expanded) {
|
||||||
|
this.tree.$emit('node-close', this.node.data, this.node, this);
|
||||||
this.node.collapse();
|
this.node.collapse();
|
||||||
} else {
|
} else {
|
||||||
|
this.tree.$emit('node-open', this.node.data, this.node, this);
|
||||||
this.node.expand();
|
this.node.expand();
|
||||||
this.$emit('node-expand', this.node.data, this.node, this);
|
this.$emit('node-expand', this.node.data, this.node, this);
|
||||||
}
|
}
|
||||||
|
|
|
@ -369,4 +369,45 @@ describe('Tree', () => {
|
||||||
}, DELAY);
|
}, DELAY);
|
||||||
}, DELAY);
|
}, DELAY);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('handleNodeOpen & handleNodeClose', (done) => {
|
||||||
|
vm = getTreeVm(':props="defaultProps" lazy :load="loadNode" @node-open="handleNodeOpen" @node-close="handleNodeClose"', {
|
||||||
|
methods: {
|
||||||
|
loadNode(node, resolve) {
|
||||||
|
if (node.level === 0) {
|
||||||
|
return resolve([{label: 'region1'}, {label: 'region2'}]);
|
||||||
|
}
|
||||||
|
if (node.level > 4) return resolve([]);
|
||||||
|
setTimeout(() => {
|
||||||
|
resolve([{
|
||||||
|
label: 'zone' + this.count++
|
||||||
|
}, {
|
||||||
|
label: 'zone' + this.count++
|
||||||
|
}]);
|
||||||
|
}, 50);
|
||||||
|
},
|
||||||
|
handleNodeOpen(data, node, vm) {
|
||||||
|
this.currentNode = data;
|
||||||
|
this.nodeExpended = true;
|
||||||
|
},
|
||||||
|
handleNodeClose(data, node, vm) {
|
||||||
|
this.currentNode = data;
|
||||||
|
this.nodeExpended = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const firstNode = document.querySelector('.el-tree-node__content');
|
||||||
|
expect(firstNode.nextElementSibling.childNodes.length).to.equal(0);
|
||||||
|
firstNode.click();
|
||||||
|
setTimeout(() => {
|
||||||
|
expect(vm.nodeExpended).to.equal(true);
|
||||||
|
expect(vm.currentNode.label).to.equal('region1');
|
||||||
|
firstNode.click();
|
||||||
|
setTimeout(() => {
|
||||||
|
expect(vm.nodeExpended).to.equal(false);
|
||||||
|
expect(vm.currentNode.label).to.equal('region1');
|
||||||
|
done();
|
||||||
|
}, 100);
|
||||||
|
}, 100);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue