bee-table/demo/demolist/Demo13.js

135 lines
3.1 KiB
JavaScript
Raw Normal View History

2018-12-21 09:58:52 +08:00
/**
*
* @title 多列排序全选功能合计
* @description 多列排序全选功能合计通过使用的封装好的功能方法实现复杂功能简单易用新增回调函数(sorterClick)
*
*/
import React, { Component } from "react";
import Table from "../../src";
import Checkbox from "bee-checkbox";
import Button from "bee-button";
import Icon from "bee-icon";
import multiSelect from "../../src/lib/multiSelect.js";
import sort from "../../src/lib/sort.js";
import sum from "../../src/lib/sum.js";
2018-12-24 10:56:36 +08:00
const columns13 = [
2018-12-22 12:04:03 +08:00
{
2018-12-24 10:56:36 +08:00
title: "名字",
dataIndex: "a",
key: "a",
className:'dfasd',
width: 200
},
{
title: "功力指数",
dataIndex: "b",
key: "b",
width: 200,
sumCol: true,
sorter: (a, b) => a.c - b.c,
sorterClick:(data,type)=>{//排序的回调函数
//type value is up or down
console.log("data",data);
}
2018-12-22 12:04:03 +08:00
},
{
2018-12-24 10:56:36 +08:00
title: "年龄",
dataIndex: "c",
key: "c",
width: 200,
sumCol: true,
sorter: (a, b) => a.c - b.c,
sorterClick:(data,type)=>{//排序的回调函数
//type value is up or down
console.log("data",data);
}
2018-12-22 12:04:03 +08:00
},
{
2018-12-24 10:56:36 +08:00
title: "成绩",
dataIndex: "e",
key: "e",
width: 200,
sumCol: true,
sorter: (a, b) => a.c - b.c,
2018-12-22 12:04:03 +08:00
},
{
2018-12-24 10:56:36 +08:00
title: "武功级别",
dataIndex: "d",
key: "d",
width: 200
2018-12-22 12:04:03 +08:00
}
2018-12-21 09:58:52 +08:00
];
2018-12-24 10:56:36 +08:00
const data13 = [
{ a: "杨过", b: 675, c: 30, d: "内行",e:100, key: "2" },
{ a: "令狐冲", b: 43, c: 41, d: "大侠",e:90, key: "1" },
{ a: "令狐冲1", b: 43, c: 81, d: "大侠", e:120,key: "4" },
{ a: "令狐冲2", b: 43, c: 81, d: "大侠", e:130,key: "5" },
{ a: "郭靖", b: 153, c: 25, d: "大侠",e:90, key: "3" }
];
2018-12-22 12:07:20 +08:00
2018-12-21 09:58:52 +08:00
//拼接成复杂功能的table组件不能在render中定义需要像此例子声明在组件的外侧不然操作state会导致功能出现异常
2018-12-24 10:56:36 +08:00
let ComplexTable = multiSelect(sum(sort(Table, Icon)), Checkbox);
2018-12-21 09:58:52 +08:00
class Demo13 extends Component {
constructor(props) {
super(props);
this.state = {
data13: data13,
selectedRow: this.selectedRow,
selectDisabled: this.selectDisabled
};
}
getSelectedDataFunc = data => {
console.log(data);
};
selectDisabled = (record, index) => {
// console.log(record);
if (index === 1) {
return true;
}
return false;
};
selectedRow = (record, index) => {
// console.log(record);
if (index === 0) {
return true;
}
return false;
};
onClick = () => {
this.setState({
selectedRow: function() {}
});
};
render() {
let multiObj = {
type: "checkbox"
};
let sortObj = {
mode:'multiple'
}
return (
<div>
<Button className="editable-add-btn" onClick={this.onClick}>
change selectedRow
</Button>
<ComplexTable
selectDisabled={this.state.selectDisabled}
selectedRow={this.state.selectedRow}
columns={columns13}
data={this.state.data13}
multiSelect={multiObj}
2018-12-24 10:56:36 +08:00
sort={sortObj}
2018-12-21 09:58:52 +08:00
getSelectedDataFunc={this.getSelectedDataFunc}
/>
</div>
);
}
}
2018-12-24 10:56:36 +08:00
export default Demo13;