Skip to content

Commit 5f56845

Browse files
committed
[dev] 为expand增加事件#140
1 parent 2bf3749 commit 5f56845

File tree

4 files changed

+13
-9
lines changed

4 files changed

+13
-9
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,8 @@ Vue.use (VSelectTree)
101101
| async-load-nodes | event used to implement asynchronous loading | node: Object |
102102
| drag-node-end | drag node end trigger the event | {dragNode: Object, targetNode: Object} |
103103
| del-node | after delete a node | { parentNode: Object || null, delNode: Object } |
104+
| node-expand | click the expand to trigger the event | node: Object, expand: boolean, position: {level, index}|
105+
104106
### How to use
105107

106108
Step1: install plugins

README_CN.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,11 +95,12 @@ Vue.use (VSelectTree)
9595
|---------- |-------- |---------- |
9696
| node-click | 单击节点触发的事件 | node: Object |
9797
| node-select | 选择节点后触发的事件(和node-click是一样的);position: 位置信息level:层级 | node: Object, selected: boolean, position: {level, index}|
98-
| node-check | click the checkbox to trigger the event | node: Object, checked: boolean, position: {level, index} |
98+
| node-check | 点击checkbox触发事件 | node: Object, checked: boolean, position: {level, index} |
9999
| node-mouse-over | 鼠标滑过节点触发事件 | node: Object, index: Number, parentNode: node, position: {level, index} |
100100
| async-load-nodes | 用于实现异步加载 | node: Object |
101101
| drag-node-end | 节点拖拽结束后触发事件 | {dragNode: Object, targetNode: Object} |
102102
| del-node | 删除节点后触发事件 | { parentNode: Object || null, delNode: Object } |
103+
| node-expand | expand触发事件 | node: Object, expand: boolean, position: {level, index} |
103104

104105
### 如何使用
105106

src/components/tree.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,6 @@ export default {
123123
if (!eventName) return
124124
// 为了让接口更清晰
125125
if('node-mouse-over' != eventName)
126-
console.log('args', args)
127126
switch (eventName) {
128127
case 'node-mouse-over':
129128
case 'node-check':
@@ -132,6 +131,7 @@ export default {
132131
case 'node-click':
133132
case 'node-select': // 和 'node-click'一样,为了更好的语义化
134133
case 'async-load-nodes':
134+
case 'node-expand':
135135
this.$emit(eventName, ...args)
136136
break
137137
default:

src/components/treeLi.vue

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,7 @@ export default {
9999
inject:['isLeaf', 'childChecked', 'parentChecked', 'nodeSelected', 'emitEventToTree', 'setAttr'],
100100
computed: {
101101
itemVisible() {
102-
let {visible = true} = this.item
103-
// visible = visible === false ? false : true
102+
const {visible = true} = this.item
104103
return visible
105104
},
106105
hasExpended() { // 已经展开过
@@ -134,6 +133,9 @@ export default {
134133
},
135134
showNextUl () {
136135
return !this.isLeaf(this.item) && this.maxLevel > this.level && this.hasExpended
136+
},
137+
position () {
138+
return {level: this.level, index: this.index}
137139
}
138140
},
139141
watch: {
@@ -167,11 +169,10 @@ export default {
167169
const expended = !node.expanded
168170
this.setAttr(node, 'expanded', expended)
169171
this.setAttr(node, 'hasExpended', true)
170-
if(node.children || node.async) {
171-
if (node.async && !node.children) {
172-
this.emitEventToTree('async-load-nodes', node)
173-
}
172+
if (node.async && !node.children) {
173+
this.emitEventToTree('async-load-nodes', node)
174174
}
175+
this.emitEventToTree('node-expand', node, expended, this.position)
175176
},
176177
/* @event passing the node-check event to the parent component
177178
* @param node clicked node
@@ -202,7 +203,7 @@ export default {
202203
changeNodeCheckStatus (node, $event) {
203204
const checked = $event.target.checked
204205
this.nodeCheck(node, checked)
205-
this.emitEventToTree('node-check', node, checked, {level: this.level, index: this.index})
206+
this.emitEventToTree('node-check', node, checked, this.position)
206207
},
207208
theParentChecked(checked, halfcheck){
208209
const parentNode = this.parent

0 commit comments

Comments
 (0)