bee-tree/demo/index.js

79 lines
28 KiB
JavaScript
Raw Normal View History

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>;
2018-04-08 15:23:17 +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 DemoArray = [{"example":<Demo1 />,"title":" Tree基本使用事例","code":"/**\n *\n * @title Tree基本使用事例\n * @description 事例涵盖 checkbox如何选择disable状态和部分选择状态。checkStrictly为true时子节点与父节点的选择情况都不会影响到对方\n *\n */\n\n\nimport React, {\n\tComponent\n} from 'react';\nimport { Tree } from 'tinper-bee';\n\nconst TreeNode = Tree.TreeNode;\n\nconst defaultProps = {\n\tkeys: ['0-0-0', '0-0-1']\n}\nconsole.log(Tree);\nclass Demo1 extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tconst keys = this.props.keys;\n\t\tthis.state = {\n\t\t\tdefaultExpandedKeys: keys,\n\t\t\tdefaultSelectedKeys: keys,\n\t\t\tdefaultCheckedKeys:keys\n\t\t\t// checkedKeys: {checked:keys},\n\t\t};\n\t}\n\tonSelect(info) {\n\t\tconsole.log('selected', info);\n\t}\n\tonCheck = (checkedKeys) => {\n\t\tlet self = this;\n\t\tconsole.log('onCheck', checkedKeys);\n\t\tconst cks = {\n\t\t\tchecked: checkedKeys.checked || checkedKeys,\n\t\t};\n\t\t// this.setState({checkedKeys:cks});\n\t}\n\n\tonDoubleClick=(key,treeNode)=>{\n\t\tconsole.log('---onDblClick---'+key+'--treeNode--'+treeNode);\n\t}\n\trender() {\n\t\n\t\treturn (\n\t\t\t<Tree className=\"myCls\" showLine checkable\n\t defaultExpandedKeys={this.state.defaultExpandedKeys}\n\t\t\t\t\tdefaultSelectedKeys={this.state.defaultSelectedKeys}\n\t\t\t\t\tdefaultCheckedKeys = {this.state.defaultCheckedKeys}\n\t\t\t\t\tcheckStrictly\n\t\t\t\t\tonSelect={this.onSelect} onCheck={this.onCheck}\n\t\t\t\t\tonDoubleClick={this.onDoubleClick}\n\t >\n\t <TreeNode title=\"parent 1\" key=\"0-0\" onDoubleClick={this.onDoubleClick}>\n\t <TreeNode title=\"parent 1-0\" key=\"0-0-0\" disabled>\n\t <TreeNode title=\"leaf\" key=\"0-0-0-0\" disableCheckbox />\n\t <TreeNode title=\"leaf\" key=\"0-0-0-1\" />\n\t </TreeNode>\n\t <TreeNode title=\"parent 1-1\" key=\"0-0-1\">\n\t <TreeNode title={<span style={{ color: '#08c' }}>sss</span>} key=\"0-0-1-0\" />\n\t </TreeNode>\n\t </TreeNode>\n\t </Tree>\n\t\t);\n\t}\n}\n\nDemo1.defaultProps = defaultProps;\n\n\n","desc":" 事例涵盖 checkbox如何选择disable状态和部分选择状态。checkStrictly为true时子节点与父节点的选择情况都不会影响到对方"},{"example":<Demo2 />,"title":" Tree数据可控事例","code":"/**\n*\n* @title Tree数据可控事例\n* @description\n*\n*/\n/*\nconst x = 3;\nconst y = 2;\nconst z = 1;\nconst gData = [];\n\nconst generateData = (_level, _preKey, _tns) => {\n const preKey = _preKey || '0';\n const tns = _tns || gData;\n\n const children = [];\n for (let i = 0; i < x; i++) {\n const key = `${preKey}-${i}`;\n tns.push({ title: key, key });\n if (i < y) {\n children.push(key);\n }\n }\n if (_level < 0) {\n return tns;\n }\n const level = _level - 1;\n children.forEach((key, index) => {\n tns[index].children = [];\n return generateData(level, key, tns[index].children);\n });\n};\ngenerateData(z);\n*/\n\n\nimport React, { Component } from 'react';\nimport { Tree } from 'tinper-bee';\n\nconst x = 3;\nconst y = 2;\nconst z = 1;\nconst gData = [];\n\nconst generateData = (_level, _preKey, _tns) => {\n const preKey = _preKey || '0';\n const tns = _tns || gData;\n\n const children = [];\n for (let i = 0; i < x; i++) {\n const key = `${preKey}-${i}`;\n tns.push({ title: key, key });\n if (i < y) {\n children.push(key);\n }\n }\n if (_level < 0) {\n return tns;\n }\n const level = _level - 1;\n children.forEach((key, index) => {\n tns[index].children = [];\n
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 (
2018-01-21 21:47:49 +08:00
<Col md={12}>
<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'));