2019-04-18 10:50:38 +08:00
|
|
|
/**
|
|
|
|
* @title 层级树大数据场景
|
|
|
|
* @parent 无限滚动 Infinite-scroll
|
|
|
|
* @description
|
2019-04-23 20:11:38 +08:00
|
|
|
* demo1404
|
2019-04-18 10:50:38 +08:00
|
|
|
*/
|
2018-12-18 13:59:48 +08:00
|
|
|
import React, { Component } from "react";
|
2019-09-11 21:08:18 +08:00
|
|
|
import {Button} from "tinper-bee";
|
2019-03-20 17:44:05 +08:00
|
|
|
|
2018-12-18 13:59:48 +08:00
|
|
|
import Table from "../../src";
|
|
|
|
import BigData from "../../src/lib/bigData";
|
|
|
|
const BigDataTable = BigData(Table);
|
2019-01-22 11:05:42 +08:00
|
|
|
const columns = [
|
|
|
|
{
|
|
|
|
title:'序号',
|
|
|
|
dataIndex:'index',
|
2019-03-20 17:44:05 +08:00
|
|
|
width:'150',
|
2019-03-19 19:37:59 +08:00
|
|
|
key:'index',
|
2019-01-22 11:05:42 +08:00
|
|
|
render:(text,record,index)=>{
|
2019-09-11 21:08:18 +08:00
|
|
|
return record.index ? record.index : index
|
2019-02-26 17:06:52 +08:00
|
|
|
}
|
2019-01-22 11:05:42 +08:00
|
|
|
},
|
2019-09-11 21:08:18 +08:00
|
|
|
{title: "用户名", dataIndex: "a", key: "a", width: 580, className: "rowClassName"},
|
|
|
|
{ id: "123", title: "性别", dataIndex: "b", key: "b", width: 80},
|
|
|
|
{ title: "年龄", dataIndex: "c", key: "c", width: 200 }
|
2019-01-22 11:05:42 +08:00
|
|
|
];
|
2018-12-18 13:59:48 +08:00
|
|
|
|
2019-09-11 21:08:18 +08:00
|
|
|
const data = [ ...new Array(10) ].map((e, i) => {
|
|
|
|
const rs = { a: i + 'a', b: i + 'b', c: i + 'c', d: i + 'd', key: i };
|
|
|
|
if(i%3==0){
|
|
|
|
rs.b = '女';
|
2019-03-20 17:44:05 +08:00
|
|
|
rs.children = [];
|
2019-09-11 21:08:18 +08:00
|
|
|
for(let subi=0;subi<3;subi++){
|
|
|
|
rs.children.push({a: i +subi + 'asub', b: i +subi + 'bsub', c: i + subi +'csub', d: i + subi +'dsub', key: i+ `${subi} sub`});
|
|
|
|
rs.children[subi].children = []
|
|
|
|
for(let subj=0;subj<100;subj++){
|
|
|
|
rs.children[subi].children.push({a: 333+' '+subj, b: 333+' '+subj, c: 333+' '+subj, d: 333+' '+subj, key: i+ `${subj} sub1`});
|
2019-03-20 17:44:05 +08:00
|
|
|
}
|
2019-09-11 21:08:18 +08:00
|
|
|
}
|
|
|
|
}else{
|
|
|
|
rs.children = [];
|
|
|
|
for(let subi=0;subi<3;subi++){
|
|
|
|
rs.children.push({a: i +subi + 'asub', b: i +subi + 'bsub', c: i + subi +'csub', d: i + subi +'dsub', key: i+ `${subi} sub`});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return rs;
|
|
|
|
})
|
2018-12-18 13:59:48 +08:00
|
|
|
|
2019-09-11 21:08:18 +08:00
|
|
|
const data2 = [ ...new Array(10000) ].map((e, i) => {
|
|
|
|
const rs = { a: i + 'a', b: i + 'b', c: i + 'c', d: i + 'd', key: i };
|
|
|
|
if(i%3==0){
|
|
|
|
rs.b = '女';
|
|
|
|
}
|
|
|
|
return rs;
|
|
|
|
})
|
2018-12-18 13:59:48 +08:00
|
|
|
|
2019-03-20 17:44:05 +08:00
|
|
|
class Demo34 extends Component {
|
2019-01-22 11:05:42 +08:00
|
|
|
|
2018-12-18 13:59:48 +08:00
|
|
|
constructor(props) {
|
|
|
|
super(props);
|
|
|
|
this.state = {
|
|
|
|
data: data,
|
2019-01-22 11:05:42 +08:00
|
|
|
selectedRowIndex: 0
|
2018-12-18 13:59:48 +08:00
|
|
|
}
|
|
|
|
}
|
2019-05-14 18:14:13 +08:00
|
|
|
onExpandedRowsChange = (expandedRowKeys)=>{
|
|
|
|
console.log('expandedRowKeys',expandedRowKeys);
|
2019-03-20 17:44:05 +08:00
|
|
|
}
|
|
|
|
onExpand = (expandKeys)=>{
|
|
|
|
console.log('expand---'+expandKeys);
|
|
|
|
}
|
2019-09-11 21:08:18 +08:00
|
|
|
handleClick = () => {
|
|
|
|
this.setState({
|
|
|
|
data: data2
|
|
|
|
})
|
|
|
|
}
|
2018-12-18 13:59:48 +08:00
|
|
|
render() {
|
|
|
|
return (
|
2019-09-11 21:08:18 +08:00
|
|
|
<div>
|
|
|
|
<Button onClick={this.handleClick} colors="secondary" style={{marginBottom:'8px'}}>改变数据源</Button>
|
2018-12-18 13:59:48 +08:00
|
|
|
<BigDataTable
|
2019-01-22 11:05:42 +08:00
|
|
|
columns={columns}
|
2019-09-11 21:08:18 +08:00
|
|
|
data={this.state.data}
|
2019-03-20 17:44:05 +08:00
|
|
|
parentNodeId='parent'
|
2018-12-22 12:04:03 +08:00
|
|
|
scroll={{y:300}}
|
2019-04-17 15:26:27 +08:00
|
|
|
onExpand={this.onExpand}
|
2018-12-18 13:59:48 +08:00
|
|
|
onRowClick={(record, index, indent) => {
|
2018-12-26 16:55:06 +08:00
|
|
|
console.log('currentIndex--'+index);
|
2018-12-18 13:59:48 +08:00
|
|
|
}}
|
2019-05-14 18:14:13 +08:00
|
|
|
onExpandedRowsChange={this.onExpandedRowsChange}
|
2018-12-18 13:59:48 +08:00
|
|
|
/>
|
2019-09-11 21:08:18 +08:00
|
|
|
</div>
|
2018-12-18 13:59:48 +08:00
|
|
|
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-04-17 15:26:27 +08:00
|
|
|
export default Demo34;
|