111 lines
3.5 KiB
React
111 lines
3.5 KiB
React
|
/* 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>)
|
||
|
},
|
||
|
}
|
||
|
|