UNPKG

2.62 kBJavaScriptView Raw
1import React,{Component} from 'react';
2import RcTree from './Tree';
3import TreeNode from './TreeNode';
4import animation from './openAnimation';
5import PropTypes from 'prop-types';
6
7const TreeProps ={
8 showLine: PropTypes.bool,
9 className: PropTypes.string,
10 /** 是否支持多选 */
11 multiple: PropTypes.bool,
12 /** 是否自动展开父节点 */
13 autoExpandParent: PropTypes.bool,
14 /** checkable状态下节点选择完全受控(父子节点选中状态不再关联)*/
15 checkStrictly: PropTypes.bool,
16 /** 是否支持选中 */
17 checkable: PropTypes.bool,
18 /** 默认展开所有树节点 */
19 defaultExpandAll: PropTypes.bool,
20 /** 默认展开指定的树节点 */
21 defaultExpandedKeys: PropTypes.array,
22 /** (受控)展开指定的树节点 */
23 expandedKeys: PropTypes.array,
24 /** (受控)选中复选框的树节点 */
25 checkedKeys: PropTypes.oneOfType([
26 PropTypes.array,
27 PropTypes.object
28 ]),
29 /** 默认选中复选框的树节点 */
30 defaultCheckedKeys: PropTypes.array,
31 /** (受控)设置选中的树节点 */
32 selectedKeys: PropTypes.array,
33 /** 默认选中的树节点 */
34 defaultSelectedKeys: PropTypes.array,
35 /** 展开/收起节点时触发 */
36 onExpand: PropTypes.func,
37 /** 点击复选框触发 */
38 onCheck: PropTypes.func,
39 /** 点击树节点触发 */
40 onSelect: PropTypes.func,
41 /** filter some AntTreeNodes as you need. it should return true */
42 filterAntTreeNode: PropTypes.func,
43 /** 异步加载数据 */
44 loadData: PropTypes.func,
45 /** 响应右键点击 */
46 onRightClick: PropTypes.func,
47 /** 设置节点可拖拽(IE>8)*/
48 draggable: PropTypes.bool,
49 /** 开始拖拽时调用 */
50 onDragStart: PropTypes.func,
51 /** dragenter 触发时调用 */
52 onDragEnter: PropTypes.func,
53 /** dragover 触发时调用 */
54 onDragOver: PropTypes.func,
55 /** dragleave 触发时调用 */
56 onDragLeave: PropTypes.func,
57 /** drop 触发时调用 */
58 onDrop: PropTypes.func,
59 style: React.CSSProperties,
60 prefixCls: PropTypes.string,
61 filterTreeNode: PropTypes.func
62}
63
64const defaultProps = {
65 prefixCls: 'u-tree',
66 checkable: false,
67 showIcon: false,
68 openAnimation: animation,
69}
70
71class Tree extends Component{
72
73 render() {
74 const props = this.props;
75 let checkable = props.checkable;
76 return (
77 <RcTree
78 {...props}
79 checkable={checkable ? (<span className={`${props.prefixCls}-checkbox-inner`} />) : checkable }
80 >
81 {this.props.children}
82 </RcTree>
83 );
84 }
85}
86
87Tree.TreeNode = TreeNode;
88Tree.TreeProps = TreeProps;
89Tree.defaultProps = defaultProps;
90export default Tree;