111 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
| /* eslint no-console:0 */
 | |
| /* eslint no-alert:0 */
 | |
| import PropTypes from '../../_util/vue-types'
 | |
| import Tree, { TreeNode } from '../index'
 | |
| import '../assets/index.less'
 | |
| import './basic.less'
 | |
| 
 | |
| export default {
 | |
|   props: {
 | |
|     keys: PropTypes.array.def(['0-0-0-0']),
 | |
|   },
 | |
|   data () {
 | |
|     const keys = this.keys
 | |
|     return {
 | |
|       defaultExpandedKeys: keys,
 | |
|       defaultSelectedKeys: keys,
 | |
|       defaultCheckedKeys: keys,
 | |
|       switchIt: true,
 | |
|       showMore: false,
 | |
|     }
 | |
|   },
 | |
|   methods: {
 | |
|     onExpand (expandedKeys) {
 | |
|       console.log('onExpand', expandedKeys, arguments)
 | |
|     },
 | |
|     onSelect (selectedKeys, info) {
 | |
|       console.log('selected', selectedKeys, info)
 | |
|       this.selKey = info.node.$options.propsData.eventKey
 | |
|     },
 | |
|     onCheck (checkedKeys, info) {
 | |
|       console.log('onCheck', checkedKeys, info)
 | |
|     },
 | |
|     onEdit  () {
 | |
|       setTimeout(() => {
 | |
|         console.log('current key: ', this.selKey)
 | |
|       }, 0)
 | |
|     },
 | |
|     onDel  (e) {
 | |
|       if (!window.confirm('sure to delete?')) {
 | |
|         return
 | |
|       }
 | |
|       e.stopPropagation()
 | |
|     },
 | |
|     toggleChildren () {
 | |
|       this.showMore = !this.showMore
 | |
|     },
 | |
|   },
 | |
| 
 | |
|   render () {
 | |
|     const customLabel = (<span class='cus-label'>
 | |
|       <span>operations: </span>
 | |
|       <span style={{ color: 'blue' }} onClick={this.onEdit}>Edit</span> 
 | |
|       <label onClick={(e) => e.stopPropagation()}><input type='checkbox' /> checked</label>  
 | |
|       <span style={{ color: 'red' }} onClick={this.onDel}>Delete</span>
 | |
|     </span>)
 | |
|     return (<div style={{ margin: '0 20px' }}>
 | |
|       <h2>simple</h2>
 | |
|       {/* <Tree
 | |
|         class='myCls' showLine checkable defaultExpandAll
 | |
|         defaultExpandedKeys={this.defaultExpandedKeys}
 | |
|         onExpand={this.onExpand}
 | |
|         defaultSelectedKeys={this.defaultSelectedKeys}
 | |
|         defaultCheckedKeys={this.defaultCheckedKeys}
 | |
|         onSelect={this.onSelect} onCheck={this.onCheck}
 | |
|       >
 | |
|         <TreeNode title='parent 1' key='0-0'>
 | |
|           <TreeNode title={customLabel} key='0-0-0'>
 | |
|             <TreeNode title='leaf' key='0-0-0-0' />
 | |
|             <TreeNode title='leaf' key='0-0-0-1' />
 | |
|           </TreeNode>
 | |
|           <TreeNode title='parent 1-1' key='0-0-1'>
 | |
|             <TreeNode title='parent 1-1-0' key='0-0-1-0' disableCheckbox />
 | |
|             <TreeNode title='parent 1-1-1' key='0-0-1-1' />
 | |
|           </TreeNode>
 | |
|           <TreeNode title='parent 1-2' key='0-0-2' disabled>
 | |
|             <TreeNode title='parent 1-2-0' key='0-0-2-0' disabled />
 | |
|             <TreeNode title='parent 1-2-1' key='0-0-2-1' />
 | |
|           </TreeNode>
 | |
|         </TreeNode>
 | |
|       </Tree> */}
 | |
| 
 | |
|       <h2>Check on Click TreeNode</h2>
 | |
|       <button onClick={this.toggleChildren}>toggle children</button>
 | |
|       <Tree
 | |
|         class='myCls'
 | |
|         showLine
 | |
|         checkable
 | |
|         selectable={ false }
 | |
|         defaultExpandAll
 | |
|         onExpand={this.onExpand}
 | |
|         defaultSelectedKeys={this.defaultSelectedKeys}
 | |
|         defaultCheckedKeys={this.defaultCheckedKeys}
 | |
|         onSelect={this.onSelect}
 | |
|         onCheck={this.onCheck}
 | |
|       >
 | |
|         <TreeNode title='parent 1' key='0-0'>
 | |
|           <TreeNode title='parent 1-1' key='0-0-1'>
 | |
|             <TreeNode title='parent 1-1-0' key='0-0-1-0' disableCheckbox />
 | |
|             <TreeNode title='parent 1-1-1' key='0-0-1-1' />
 | |
|           </TreeNode>
 | |
|           {this.showMore ? <TreeNode title='parent 2-1' key='0-0-2'>
 | |
|             <TreeNode title='parent 2-1-0' key='0-0-2-0' disableCheckbox />
 | |
|             <TreeNode title='parent 2-1-1' key='0-0-2-1' />
 | |
|           </TreeNode> : null}
 | |
|         </TreeNode>
 | |
|       </Tree>
 | |
|     </div>)
 | |
|   },
 | |
| }
 | |
| 
 |