ssc-grid
Version:
React grid component for SSC 3.0
80 lines (69 loc) • 1.94 kB
JavaScript
import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';
import _classCallCheck from 'babel-runtime/helpers/classCallCheck';
import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';
import _inherits from 'babel-runtime/helpers/inherits';
import React, { Component } from 'react';
import PropTypes from 'prop-types';
// 将rc-tree封装起来
import * as RcTree from 'rc-tree';
/**
* Tree控件
*/
var Tree = function (_Component) {
_inherits(Tree, _Component);
function Tree(props) {
_classCallCheck(this, Tree);
var _this = _possibleConstructorReturn(this, _Component.call(this, props));
_this.state = {};
return _this;
}
Tree.prototype.render = function render() {
var _props = this.props,
treeData = _props.treeData,
rcTreeProps = _objectWithoutProperties(_props, ['treeData']);
var loop = function loop(data) {
return data.map(function (item) {
if (item.children) {
return React.createElement(
RcTree.TreeNode,
{
key: item.key, title: item.title,
disableCheckbox: item.key === '0-0-0-key'
},
loop(item.children)
);
}
return React.createElement(RcTree.TreeNode, { key: item.key, title: item.title });
});
};
return React.createElement(
RcTree['default'],
rcTreeProps,
loop(treeData)
);
};
return Tree;
}(Component);
Tree.displayName = 'Tree';
Tree.defaultProps = {};
Tree.propTypes = {
/**
* 生成树所需要的JSON数据
* ```
* [
* {
* "title": "0-0-label",
* "key": "0-0-key",
* "children": [
* {
* "title": "0-0-0-label",
* "key": "0-0-0-key"
* }
* ]
* }
* ]
* ```
*/
treeData: PropTypes.array.isRequired
};
export default Tree;