11
22
33import Emitter from '../mixins/Emitter'
4+ import TreeNodeContent from './TreeNodeContent'
45export default {
56 name : 'TreeNode' ,
67 mixins : [ Emitter ] ,
8+ component : {
9+ TreeNodeContent
10+ } ,
711 props : {
812 node : [ Object ] ,
913 level : {
@@ -23,40 +27,10 @@ export default {
2327 this . tree = this . $parent . tree
2428 }
2529 } ,
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 : {
3931 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 } /> )
5833 }
59-
6034 } ,
6135
6236 render ( ) {
0 commit comments