bee-table7/demo/demolist/Demo0903.js

140 lines
3.3 KiB
JavaScript
Raw Normal View History

2018-12-21 09:58:52 +08:00
/**
2019-03-20 17:44:05 +08:00
*
2019-04-16 13:35:25 +08:00
* @title 多列排序
2019-04-18 10:50:38 +08:00
* @parent 列操作-排序 Sort
2019-04-22 15:44:14 +08:00
* @description 结合多列排序全选功能合计功能的表格示例新增排序后触发的回调函数sorterClick
2019-04-23 20:11:38 +08:00
* demo0903
2019-03-20 17:44:05 +08:00
*/
2018-12-21 09:58:52 +08:00
import React, { Component } from "react";
2019-03-20 17:44:05 +08:00
import {Checkbox,Button,Icon} from "tinper-bee";
2018-12-21 09:58:52 +08:00
import Table from "../../src";
2019-03-20 17:44:05 +08:00
import multiSelect from "../../src/lib/multiSelect.js";
import sort from "../../src/lib/sort.js";
import sum from "../../src/lib/sum.js";
2018-12-21 09:58:52 +08:00
2019-03-20 17:44:05 +08:00
const columns13 = [
{
2019-04-23 20:11:38 +08:00
title: "订单编号",
2019-03-20 17:44:05 +08:00
dataIndex: "a",
key: "a",
className:'dfasd',
width: 200,
sorter: (pre, after) => {return pre.a.localeCompare(after.a)},
sorterClick:(data,type)=>{//排序的回调函数
//type value is up or down
console.log("data",data);
}
2019-03-20 17:44:05 +08:00
},
{
2019-04-23 20:11:38 +08:00
title: "金额",
2019-03-20 17:44:05 +08:00
dataIndex: "b",
key: "b",
width: 200,
sumCol: true,
sorter: (pre, after) => pre.b - after.b,
2019-03-20 17:44:05 +08:00
sorterClick:(data,type)=>{//排序的回调函数
//type value is up or down
console.log("data",data);
}
},
{
2019-04-23 20:11:38 +08:00
title: "整单数量",
2019-03-20 17:44:05 +08:00
dataIndex: "c",
key: "c",
width: 200,
sumCol: true,
sorter: (pre, after) => pre.c - after.c,
2019-03-20 17:44:05 +08:00
sorterClick:(data,type)=>{//排序的回调函数
//type value is up or down
console.log("data",data);
}
},
{
2019-04-23 20:11:38 +08:00
title: "日销售量",
2019-03-20 17:44:05 +08:00
dataIndex: "e",
key: "e",
width: 200,
sumCol: true,
sorter: (pre, after) => pre.e - after.e,
2019-03-20 17:44:05 +08:00
},
{
2019-04-23 20:11:38 +08:00
title: "供应商",
2019-03-20 17:44:05 +08:00
dataIndex: "d",
key: "d",
width: 200
}
2018-12-21 09:58:52 +08:00
];
2019-03-20 17:44:05 +08:00
const data13 = [
2019-04-23 20:11:38 +08:00
{ a: "NU0391001", b: 675, c: 30, d: "xx供应商",e:100, key: "2" },
{ a: "NU0391002", b: 43, c: 41, d: "yy供应商",e:90, key: "1" },
{ a: "NU0391003", b: 43, c: 81, d: "zz供应商", e:120,key: "4" },
{ a: "NU0391004", b: 43, c: 81, d: "aa供应商", e:130,key: "5" },
{ a: "NU0391005", b: 153, c: 25, d: "bb供应商",e:90, key: "3" }
2018-12-21 09:58:52 +08:00
];
2019-03-20 17:44:05 +08:00
//拼接成复杂功能的table组件不能在render中定义需要像此例子声明在组件的外侧不然操作state会导致功能出现异常
let ComplexTable = multiSelect(sort(sum(Table, Icon)), Checkbox);
2019-03-20 17:44:05 +08:00
class Demo13 extends Component {
constructor(props) {
super(props);
this.state = {
data13: data13,
selectedRow: this.selectedRow,
selectDisabled: this.selectDisabled
};
2018-12-21 09:58:52 +08:00
}
2019-03-20 17:44:05 +08:00
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() {}
});
};
2018-12-21 09:58:52 +08:00
render() {
2019-03-20 17:44:05 +08:00
let multiObj = {
type: "checkbox"
};
let sortObj = {
mode:'multiple'
}
2018-12-21 09:58:52 +08:00
return (
2019-03-20 17:44:05 +08:00
<div>
<Button className="editable-add-btn" onClick={this.onClick}>
2019-04-22 14:52:22 +08:00
清空已选
2019-03-20 17:44:05 +08:00
</Button>
<ComplexTable
bordered
2019-03-20 17:44:05 +08:00
selectDisabled={this.state.selectDisabled}
selectedRow={this.state.selectedRow}
columns={columns13}
data={this.state.data13}
multiSelect={multiObj}
sort={sortObj}
getSelectedDataFunc={this.getSelectedDataFunc}
/>
</div>
2018-12-21 09:58:52 +08:00
);
}
}
2019-03-20 17:44:05 +08:00
export default Demo13;