2018-06-24 16:22:49 +08:00
|
|
|
|
/**
|
2018-07-05 11:01:19 +08:00
|
|
|
|
* @title 根据列进行过滤、拖拽交换列综合使用案例
|
2018-07-05 11:10:05 +08:00
|
|
|
|
* @description 新增属性【checkMinSize 当前表格显示最少列数 】 1. 当所有列都设置了width属性后,需要给table增加checkMinSize属性 2. 所有列不设置width。
|
2018-06-24 16:22:49 +08:00
|
|
|
|
*/
|
|
|
|
|
|
2018-07-05 11:01:19 +08:00
|
|
|
|
/**注:
|
|
|
|
|
* 在使用过滤列的时候,如果每一列都设置了width属性,勾选的时候回出现重复列问题。当表格的宽度小于合计宽度的时候,就会出现此问题。
|
|
|
|
|
* 必须有个别列不设置width属性,即可避免此问题。
|
|
|
|
|
*/
|
2018-06-24 16:22:49 +08:00
|
|
|
|
import React, { Component } from 'react';
|
|
|
|
|
import Table from '../../src';
|
2018-06-25 00:39:18 +08:00
|
|
|
|
import multiSelect from '../../src/lib/newMultiSelect';
|
2018-06-24 16:22:49 +08:00
|
|
|
|
import filterColumn from '../../src/lib/filterColumn';
|
|
|
|
|
import dragColumn from "../../src/lib/dragColumn";
|
|
|
|
|
|
|
|
|
|
import sum from '../../src/lib/sum';
|
|
|
|
|
import Icon from "bee-icon";
|
|
|
|
|
import Checkbox from 'bee-checkbox';
|
|
|
|
|
import Popover from 'bee-popover';
|
|
|
|
|
|
2018-07-05 11:01:19 +08:00
|
|
|
|
//Cloumns1
|
2018-06-25 09:11:12 +08:00
|
|
|
|
function getCloumns(){
|
|
|
|
|
const column = [
|
|
|
|
|
{
|
|
|
|
|
title: "序号",
|
|
|
|
|
dataIndex: "index",
|
|
|
|
|
key: "index",
|
|
|
|
|
width: 100,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "订单编号",
|
|
|
|
|
dataIndex: "orderCode",
|
|
|
|
|
key: "orderCode",
|
2018-07-05 11:01:19 +08:00
|
|
|
|
width: 100,
|
2018-06-25 09:11:12 +08:00
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "供应商名称",
|
|
|
|
|
dataIndex: "supplierName",
|
|
|
|
|
key: "supplierName",
|
2018-07-05 11:01:19 +08:00
|
|
|
|
width: 100
|
2018-06-25 09:11:12 +08:00
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "类型",
|
|
|
|
|
dataIndex: "type_name",
|
|
|
|
|
key: "type_name",
|
|
|
|
|
width: 100
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "采购组织",
|
|
|
|
|
dataIndex: "purchasing",
|
|
|
|
|
key: "purchasing",
|
|
|
|
|
width: 100
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "采购组",
|
|
|
|
|
dataIndex: "purchasingGroup",
|
|
|
|
|
key: "purchasingGroup",
|
2018-07-05 11:01:19 +08:00
|
|
|
|
width: 300
|
2018-06-25 09:11:12 +08:00
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "凭证日期",
|
|
|
|
|
dataIndex: "voucherDate",
|
|
|
|
|
key: "voucherDate",
|
|
|
|
|
width: 100,
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "审批状态",
|
|
|
|
|
dataIndex: "approvalState_name",
|
|
|
|
|
key: "approvalState_name",
|
|
|
|
|
width: 100
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "确认状态",
|
|
|
|
|
dataIndex: "confirmState_name",
|
|
|
|
|
key: "confirmState_name",
|
2018-07-05 11:01:19 +08:00
|
|
|
|
width: 100
|
2018-06-25 09:11:12 +08:00
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "关闭状态",
|
|
|
|
|
dataIndex: "closeState_name",
|
|
|
|
|
key: "closeState_name",
|
|
|
|
|
width: 100
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "操作",
|
|
|
|
|
dataIndex: "d",
|
|
|
|
|
key: "d",
|
|
|
|
|
width:100,
|
|
|
|
|
fixed: "right",
|
|
|
|
|
render(text, record, index) {
|
|
|
|
|
return (
|
|
|
|
|
<div className='operation-btn'>
|
2018-07-03 19:20:47 +08:00
|
|
|
|
<a href="#"
|
|
|
|
|
tooltip={text}
|
|
|
|
|
onClick={() => {
|
|
|
|
|
alert('这是第'+index+'列,内容为:'+text);
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
一些操作
|
|
|
|
|
</a>
|
2018-06-25 09:11:12 +08:00
|
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
];
|
|
|
|
|
return column;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const dataList = [
|
|
|
|
|
{
|
|
|
|
|
index: 1,
|
|
|
|
|
orderCode:"2343",
|
|
|
|
|
supplierName: "xxx",
|
|
|
|
|
type_name: "123",
|
|
|
|
|
purchasing:'内行',
|
|
|
|
|
purchasingGroup:"323",
|
|
|
|
|
voucherDate:"kkkk",
|
|
|
|
|
approvalState_name:"vvvv",
|
|
|
|
|
confirmState_name:"aaaa",
|
2018-10-08 09:58:43 +08:00
|
|
|
|
closeState_name:"vnnnnn",
|
2018-06-25 09:11:12 +08:00
|
|
|
|
d:"操作",
|
2018-07-04 15:55:48 +08:00
|
|
|
|
key: "1"
|
2018-10-08 09:58:43 +08:00
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
index: 2,
|
|
|
|
|
_checked:true,
|
|
|
|
|
orderCode:"222",
|
|
|
|
|
supplierName: "22xxx",
|
|
|
|
|
type_name: "1223",
|
|
|
|
|
purchasing:'内行2',
|
|
|
|
|
purchasingGroup:"3223",
|
|
|
|
|
voucherDate:"222kk",
|
|
|
|
|
approvalState_name:"22vvvv",
|
|
|
|
|
confirmState_name:"2aaaa",
|
|
|
|
|
closeState_name:"2vnnnnn",
|
|
|
|
|
d:"2操作",
|
|
|
|
|
key: "2"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
index: 3,
|
|
|
|
|
orderCode:"222",
|
|
|
|
|
supplierName: "22xxx",
|
|
|
|
|
_disabled:true,
|
|
|
|
|
type_name: "1223",
|
|
|
|
|
purchasing:'内行2',
|
|
|
|
|
purchasingGroup:"3223",
|
|
|
|
|
voucherDate:"222kk",
|
|
|
|
|
approvalState_name:"22vvvv",
|
|
|
|
|
confirmState_name:"2aaaa",
|
|
|
|
|
closeState_name:"2vnnnnn",
|
|
|
|
|
d:"3操作",
|
|
|
|
|
key: "3"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
index: 4,
|
|
|
|
|
orderCode:"222",
|
|
|
|
|
supplierName: "22xxx",
|
|
|
|
|
type_name: "1223",
|
|
|
|
|
purchasing:'内行2',
|
|
|
|
|
purchasingGroup:"3223",
|
|
|
|
|
voucherDate:"222kk",
|
|
|
|
|
approvalState_name:"22vvvv",
|
|
|
|
|
confirmState_name:"2aaaa",
|
|
|
|
|
closeState_name:"2vnnnnn",
|
|
|
|
|
d:"4操作",
|
|
|
|
|
key: "4"
|
|
|
|
|
},
|
2018-06-25 09:11:12 +08:00
|
|
|
|
]
|
|
|
|
|
|
2018-07-05 11:01:19 +08:00
|
|
|
|
const DragColumnTable = filterColumn(dragColumn(multiSelect(Table, Checkbox)),Popover);
|
2018-06-24 16:22:49 +08:00
|
|
|
|
|
|
|
|
|
const defaultProps25 = {
|
|
|
|
|
prefixCls: "bee-table"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class Demo25 extends Component {
|
|
|
|
|
constructor(props) {
|
|
|
|
|
super(props);
|
|
|
|
|
}
|
2018-06-25 09:11:12 +08:00
|
|
|
|
|
|
|
|
|
getSelectedDataFunc=(data)=>{
|
|
|
|
|
console.log("data",data);
|
|
|
|
|
}
|
2018-06-24 16:22:49 +08:00
|
|
|
|
|
2018-06-25 16:10:07 +08:00
|
|
|
|
getCloumnsScroll=(columns)=>{
|
|
|
|
|
let sum = 0;
|
|
|
|
|
columns.forEach((da)=>{
|
|
|
|
|
sum += da.width;
|
|
|
|
|
})
|
|
|
|
|
console.log("sum",sum);
|
|
|
|
|
return (sum);
|
|
|
|
|
}
|
|
|
|
|
|
2018-07-25 21:29:44 +08:00
|
|
|
|
selectedRow=(record, index)=>{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2018-06-24 16:22:49 +08:00
|
|
|
|
render() {
|
2018-06-25 16:10:07 +08:00
|
|
|
|
let columns = getCloumns();
|
2018-07-09 11:26:48 +08:00
|
|
|
|
|
2018-10-08 09:58:43 +08:00
|
|
|
|
return <div className="demo25">
|
|
|
|
|
<DragColumnTable
|
|
|
|
|
columns={columns}
|
|
|
|
|
data={dataList}
|
|
|
|
|
getSelectedDataFunc={this.getSelectedDataFunc}
|
|
|
|
|
bordered
|
|
|
|
|
checkMinSize={7}
|
|
|
|
|
draggable={true}
|
|
|
|
|
multiSelect={{type: "checkbox"}}
|
|
|
|
|
scroll={{x:"130%", y: 100}}
|
|
|
|
|
selectedRow={this.selectedRow}
|
|
|
|
|
// scroll={{x:this.getCloumnsScroll(columns), y: 150}}
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
2018-06-24 16:22:49 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Demo25.defaultProps = defaultProps25;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export default Demo25;
|