2018-01-21 21:47:49 +08:00
|
|
|
|
import {Col, Row} from 'bee-layout';
|
|
|
|
|
import {Panel} from 'bee-panel';
|
2016-12-30 15:43:08 +08:00
|
|
|
|
import Button from 'bee-button';
|
2018-01-21 21:47:49 +08:00
|
|
|
|
import React, {Component} from 'react';
|
2016-12-30 15:43:08 +08:00
|
|
|
|
import ReactDOM from 'react-dom';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const CARET = <i className="uf uf-arrow-down"></i>;
|
|
|
|
|
|
|
|
|
|
const CARETUP = <i className="uf uf-arrow-up"></i>;
|
|
|
|
|
|
|
|
|
|
|
2019-03-19 16:24:35 +08:00
|
|
|
|
var Demo1 = require("./demolist/Demo1");var Demo2 = require("./demolist/Demo2");var Demo3 = require("./demolist/Demo3");var Demo4 = require("./demolist/Demo4");var Demo5 = require("./demolist/Demo5");var Demo6 = require("./demolist/Demo6");var Demo7 = require("./demolist/Demo7");var Demo8 = require("./demolist/Demo8");var Demo9 = require("./demolist/Demo9");var Demo10 = require("./demolist/Demo10");var DemoArray = [{"example":<Demo1 />,"title":" Tree基本使用示例","code":"/**\r\n *\r\n * @title Tree基本使用示例\r\n * @description 示例涵盖 checkbox如何选择,disable状态和部分选择状态。checkStrictly为true时,子节点与父节点的选择情况都不会影响到对方\r\n *\r\n */\r\n\r\n\r\nimport React, {\r\n\tComponent\r\n} from 'react';\r\nimport { Tree, Icon } from 'tinper-bee';\r\n\nconst TreeNode = Tree.TreeNode;\r\n\r\nconst defaultProps = {\r\n\tkeys: ['0-0-0', '0-0-1']\r\n}\r\nclass Demo1 extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tconst keys = this.props.keys;\r\n\t\tthis.state = {\r\n\t\t\tdefaultExpandedKeys: keys,\r\n\t\t\tdefaultSelectedKeys: keys,\r\n\t\t\tdefaultCheckedKeys:keys,\r\n\t\t\tcheckedKeys: {checked:keys},\r\n\t\t};\r\n\t}\r\n\tonSelect(info) {\r\n\t\tconsole.log('selected', info);\r\n\t}\r\n\tonCheck = (checkedKeys,newst) => {\r\n\t\t//用户可以自定义当前选中和半选中的节点。\r\n\t\tconsole.log('onCheck', checkedKeys);\r\n\t\tconst cks = {\r\n\t\t\tchecked: checkedKeys.checked || checkedKeys,\r\n\t\t\thalfChecked:checkedKeys.halfChecked\r\n\t\t};\r\n\t\tthis.setState({checkedKeys:cks});\r\n\t}\r\n\r\n\tonDoubleClick=(key,treeNode)=>{\r\n\t\tconsole.log('---onDblClick---'+key+'--treeNode--'+treeNode);\r\n\t}\r\n\trender() {\r\n\t\r\n\t\treturn (\r\n\t\t\t<Tree className=\"myCls\" showLine checkable\r\n\t defaultExpandedKeys={this.state.defaultExpandedKeys}\r\n\t\t\t\t\tdefaultSelectedKeys={this.state.defaultSelectedKeys}\r\n\t\t\t\t\tdefaultCheckedKeys = {this.state.defaultCheckedKeys}\r\n\t\t\t\t\tcheckStrictly\r\n\t\t\t\t\tshowIcon\r\n\t\t\t\t\tcancelUnSelect={true}\r\n\t\t\t\t\tonSelect={this.onSelect} onCheck={this.onCheck}\r\n\t\t\t\t\tonDoubleClick={this.onDoubleClick}\r\n\t >\r\n\t <TreeNode title=\"parent 1\" key=\"0-0\" icon={<Icon type=\"uf-treefolder\" />}>\r\n\t <TreeNode title=\"parent 1-0\" key=\"0-0-0\" disabled icon={<Icon type=\"uf-treefolder\" />}>\r\n\t <TreeNode title=\"leaf\" key=\"0-0-0-0\" disableCheckbox icon={<Icon type=\"uf-list-s-o\" />}/>\r\n\t <TreeNode title=\"leaf\" key=\"0-0-0-1\" icon={<Icon type=\"uf-list-s-o\" />}/>\r\n\t </TreeNode>\r\n\t <TreeNode title=\"parent 1-1\" key=\"0-0-1\" icon={<Icon type=\"uf-treefolder\" />}>\r\n\t <TreeNode title={<span>sss</span>} key=\"0-0-1-0\" icon={<Icon type=\"uf-list-s-o\" />}/>\r\n\t </TreeNode>\r\n\t </TreeNode>\r\n\t </Tree>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nDemo1.defaultProps = defaultProps;\r\n\r\n\r\n","desc":" 示例涵盖 checkbox如何选择,disable状态和部分选择状态。checkStrictly为true时,子节点与父节点的选择情况都不会影响到对方"},{"example":<Demo2 />,"title":" Tree数据可控示例","code":"/**\r\n*\r\n* @title Tree数据可控示例\r\n* @description\r\n* \b\r\n*/\r\n\r\nimport React, { Component } from 'react';\r\nimport { Tree } from 'tinper-bee';\r\n\r\nconst x = 6;\r\nconst y = 5;\r\nconst z = 2;\r\nconst gData = [];\r\n\r\nconst generateData = (_level, _preKey, _tns) => {\r\n const preKey = _preKey || '0';\r\n const tns = _tns || gData;\r\n\r\n const children = [];\r\n for (let i = 0; i < x; i++) {\r\n const key = `${preKey}-${i}`;\r\n tns.push({ title: key, key });\r\n if (i < y) {\r\n children.push(key);\r\n }\r\n }\r\n if (_level < 0) {\r\n return tns;\r\n }\r\n const level = _level - 1;\r\n children.forEach((key, index) => {\r\n tns[index].children = [];\r\n return generateData(level, key, tns[index].childr
|
2016-12-30 15:43:08 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Demo extends Component {
|
2018-01-21 21:47:49 +08:00
|
|
|
|
constructor(props) {
|
2016-12-30 15:43:08 +08:00
|
|
|
|
super(props);
|
|
|
|
|
this.state = {
|
|
|
|
|
open: false
|
|
|
|
|
}
|
|
|
|
|
this.handleClick = this.handleClick.bind(this);
|
|
|
|
|
}
|
2018-01-21 21:47:49 +08:00
|
|
|
|
|
2016-12-30 15:43:08 +08:00
|
|
|
|
handleClick() {
|
2018-01-21 21:47:49 +08:00
|
|
|
|
this.setState({open: !this.state.open})
|
2016-12-30 15:43:08 +08:00
|
|
|
|
}
|
|
|
|
|
|
2018-01-21 21:47:49 +08:00
|
|
|
|
render() {
|
|
|
|
|
const {title, example, code, desc, scss_code} = this.props;
|
2016-12-30 15:43:08 +08:00
|
|
|
|
let caret = this.state.open ? CARETUP : CARET;
|
|
|
|
|
let text = this.state.open ? "隐藏代码" : "查看代码";
|
|
|
|
|
|
|
|
|
|
const header = (
|
2018-01-21 21:47:49 +08:00
|
|
|
|
<div>
|
|
|
|
|
{example}
|
|
|
|
|
<Button style={{"marginTop": "10px"}} shape="block" onClick={this.handleClick}>
|
|
|
|
|
{caret}
|
|
|
|
|
{text}
|
2016-12-30 15:43:08 +08:00
|
|
|
|
</Button>
|
2018-01-21 21:47:49 +08:00
|
|
|
|
</div>
|
2016-12-30 15:43:08 +08:00
|
|
|
|
);
|
|
|
|
|
return (
|
2019-03-18 17:26:19 +08:00
|
|
|
|
<Col md={12} id={title.trim()} >
|
2018-01-21 21:47:49 +08:00
|
|
|
|
<h3>{title}</h3>
|
|
|
|
|
<p>{desc}</p>
|
|
|
|
|
<Panel collapsible headerContent expanded={this.state.open} colors='bordered' header={header}
|
|
|
|
|
footerStyle={{padding: 0}}>
|
|
|
|
|
<pre><code className="hljs javascript">{code}</code></pre>
|
|
|
|
|
{!!scss_code ? <pre><code className="hljs css">{scss_code}</code></pre> : null}
|
2016-12-30 15:43:08 +08:00
|
|
|
|
</Panel>
|
|
|
|
|
</Col>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class DemoGroup extends Component {
|
2018-01-21 21:47:49 +08:00
|
|
|
|
constructor(props) {
|
2016-12-30 15:43:08 +08:00
|
|
|
|
super(props)
|
|
|
|
|
}
|
2018-01-21 21:47:49 +08:00
|
|
|
|
|
|
|
|
|
render() {
|
2016-12-30 15:43:08 +08:00
|
|
|
|
return (
|
2018-01-21 21:47:49 +08:00
|
|
|
|
<Row>
|
|
|
|
|
{DemoArray.map((child, index) => {
|
2016-12-30 15:43:08 +08:00
|
|
|
|
|
2018-01-21 21:47:49 +08:00
|
|
|
|
return (
|
|
|
|
|
<Demo example={child.example} title={child.title} code={child.code} scss_code={child.scss_code}
|
|
|
|
|
desc={child.desc} key={index}/>
|
|
|
|
|
)
|
2016-12-30 15:43:08 +08:00
|
|
|
|
|
2018-01-21 21:47:49 +08:00
|
|
|
|
})}
|
|
|
|
|
</Row>
|
2016-12-30 15:43:08 +08:00
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ReactDOM.render(<DemoGroup/>, document.getElementById('tinperBeeDemo'));
|