2019-04-15 20:14:02 +08:00
|
|
|
|
/**
|
|
|
|
|
*
|
2019-04-25 16:09:48 +08:00
|
|
|
|
* @title 多选功能
|
2019-04-18 10:50:38 +08:00
|
|
|
|
* @parent 行操作-选择
|
2019-04-23 20:11:38 +08:00
|
|
|
|
* @description 支持多选、全选和禁止选择。getSelectedDataFunc方法是选中行的回调函数,返回当前选中的数据数组。给data数据添加_checked参数可设置当前数据是否选中,添加_disabled参数可禁止选择当前数据。
|
|
|
|
|
* demo1301
|
2019-04-15 20:14:02 +08:00
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import React, { Component } from 'react';
|
|
|
|
|
import {Checkbox} from "tinper-bee";
|
|
|
|
|
|
|
|
|
|
import Table from '../../src';
|
|
|
|
|
import multiSelect from "../../src/lib/multiSelect.js";
|
|
|
|
|
|
2019-04-23 20:11:38 +08:00
|
|
|
|
const columns = [
|
|
|
|
|
{ title: "员工编号", dataIndex: "a", key: "a", width: 300, className: "rowClassName"},
|
|
|
|
|
{ title: "员工姓名", dataIndex: "b", key: "b", width: 500 },
|
|
|
|
|
{ title: "性别", dataIndex: "c", key: "c", width: 500 },
|
|
|
|
|
{ title: "部门", dataIndex: "d", key: "d", width: 200 }
|
2019-04-15 20:14:02 +08:00
|
|
|
|
];
|
|
|
|
|
|
2019-04-23 20:11:38 +08:00
|
|
|
|
const data = [
|
|
|
|
|
{ a: "ASVAL_201903280005", b: "小张", c: "男", d: "财务二科", key: "1",_checked:true },
|
|
|
|
|
{ a: "ASVAL_201903200004", b: "小明", c: "男", d: "财务一科", key: "2",_checked:false },
|
|
|
|
|
{ a: "ASVAL_201903120002", b: "小红", c: "女", d: "财务一科", key: "3",_checked:false },
|
|
|
|
|
{ a: "ASVAL_201903280010", b: "小王", c: "女", d: "财务二科", key: "4",_disabled:true },
|
|
|
|
|
{ a: "ASVAL_201903200021", b: "小李", c: "男", d: "财务一科", key: "5",_checked:false}
|
2019-04-15 20:14:02 +08:00
|
|
|
|
];
|
|
|
|
|
//拼接成复杂功能的table组件不能在render中定义,需要像此例子声明在组件的外侧,不然操作state会导致功能出现异常
|
|
|
|
|
let MultiSelectTable = multiSelect(Table, Checkbox);
|
|
|
|
|
|
|
|
|
|
class Demo12 extends Component {
|
|
|
|
|
constructor(props) {
|
|
|
|
|
super(props);
|
|
|
|
|
this.state = {
|
2019-04-23 20:11:38 +08:00
|
|
|
|
data: data
|
2019-04-15 20:14:02 +08:00
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
*@param selectedList:当前选中的行数据
|
|
|
|
|
*@param record 当前操作行数据
|
|
|
|
|
*@param index 当前操作行索引
|
2019-10-19 11:04:58 +08:00
|
|
|
|
*@param newData 进行多选操作之后的新数据 data
|
2019-04-15 20:14:02 +08:00
|
|
|
|
* @memberof Demo12
|
|
|
|
|
*/
|
2019-10-19 11:04:58 +08:00
|
|
|
|
getSelectedDataFunc = (selectedList,record,index,newData) => {
|
2019-04-15 20:14:02 +08:00
|
|
|
|
console.log("selectedList", selectedList,"index",index);
|
2019-10-19 11:04:58 +08:00
|
|
|
|
// 注意:需要用回调中提供的参数 newData,去更新 state 或 store 中的 data 属性值,否则当表格重新render的时候,已选数据会被冲刷掉。
|
2019-04-15 20:14:02 +08:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
render() {
|
|
|
|
|
let multiObj = {
|
2019-09-09 17:30:16 +08:00
|
|
|
|
inverse: true, //设置选中为红色填充
|
2019-04-15 20:14:02 +08:00
|
|
|
|
};
|
|
|
|
|
return (
|
|
|
|
|
<MultiSelectTable
|
2019-12-24 16:45:37 +08:00
|
|
|
|
bordered
|
2019-04-23 20:11:38 +08:00
|
|
|
|
columns={columns}
|
|
|
|
|
data={data}
|
2019-09-09 17:30:16 +08:00
|
|
|
|
// multiSelectConfig={multiObj} //可以自定义 Checkbox 属性
|
2019-04-15 20:14:02 +08:00
|
|
|
|
getSelectedDataFunc={this.getSelectedDataFunc}/>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2019-03-20 17:44:05 +08:00
|
|
|
|
export default Demo12;
|