1
1
2
2
3
3
import Emitter from '../mixins/Emitter'
4
+ import TreeNodeContent from './TreeNodeContent'
4
5
export default {
5
6
name : 'TreeNode' ,
6
7
mixins : [ Emitter ] ,
8
+ component : {
9
+ TreeNodeContent
10
+ } ,
7
11
props : {
8
12
node : [ Object ] ,
9
13
level : {
@@ -23,40 +27,10 @@ export default {
23
27
this . tree = this . $parent . tree
24
28
}
25
29
} ,
26
- methods : {
27
- selectToggle ( node ) {
28
- Object . assign ( node . data , { selected : ! node . isSelected ( ) , partialSelected : false } )
29
- if ( ! this . tree . checkStrictly ) {
30
- this . tree . refreshUp ( node )
31
- this . tree . refreshDown ( node )
32
- } else {
33
- this . tree . getCheckedValue ( node )
34
- }
35
-
36
- this . tree . $emit ( 'on-checkbox-change' , this . tree . checkedNodes , this . tree . checkedNodeKeys )
37
- this . tree . $emit ( 'on-checked-item' , node . data )
38
- } ,
30
+ methods : {
39
31
nodeView ( node , level ) {
40
- const { name, selected, disabled, partialSelected, expanded} = node ?. data ?? { }
41
- const { renderTreeNode, $scopedSlots : { default : defaultSlot } } = this . tree
42
-
43
- return ( name && < div
44
- class = "tree-node-content"
45
- style = { `margin-left: ${ level * 10 } px; display: inline-block;` }
46
- >
47
- { < span class = { [ 'icon' , 'sh__expand-icon' , expanded ? 'rotate180-enter icon-expand' : 'rotate180-leave icon-unexpand' ] } onClick = { ( ) => this . foldToggle ( node ) } style = { { padding : 1 , background : '#eee' , cursor : 'pointer' , visibility : node . children && node . children . length ? 'visible' : 'hidden' } } > ▲</ span > }
48
- { partialSelected && `-` }
49
- { this . tree . showCheckbox && < input type = 'checkbox' disabled = { disabled } checked = { selected } onClick = { ( ) => this . selectToggle ( node ) } /> }
50
- < div class = 'tree-node-name' > { renderTreeNode ? renderTreeNode ( node ) : defaultSlot ? defaultSlot ( { node} ) : < span > { name } </ span > } </ div >
51
- </ div > )
52
- } ,
53
- foldToggle ( node ) {
54
- Object . assign ( node . data , { expanded : ! node . data . expanded } )
55
- if ( ! node . data . expanded ) {
56
- this . tree . refreshExpandedDown ( node )
57
- }
32
+ return ( < TreeNodeContent node = { node } level = { level } tree = { this . tree } /> )
58
33
}
59
-
60
34
} ,
61
35
62
36
render ( ) {
0 commit comments