in src/routes/System/AppAuth/TableTransfer.js [60:140]
render() {
const { authName } = this.props;
const { dataSource, pagination } = this.state;
return (
<Transfer
titles={["ALL", authName]}
{...this.props}
dataSource={dataSource}
rowKey={(record) => record.path}
>
{({
direction, // 渲染列表的方向
filteredItems,
onItemSelectAll, // 勾选一组条目
onItemSelect, // 勾选条目
selectedKeys: listSelectedKeys, // 选中的条目
disabled: listDisabled, // 是否禁用列表
}) => {
const rowSelection = {
getCheckboxProps: (item) => ({
disabled: listDisabled || item.disabled,
}),
onSelectAll(selected, selectedRows) {
const treeSelectedKeys = selectedRows
.filter((item) => !item.disabled)
.map(({ path }) => path);
const diffKeys = selected
? difference(treeSelectedKeys, listSelectedKeys)
: difference(listSelectedKeys, treeSelectedKeys);
onItemSelectAll(diffKeys, selected);
},
onSelect({ path }, selected) {
onItemSelect(path, selected);
},
selectedRowKeys: listSelectedKeys,
};
const handleTableChange = (paginationObj) => {
if (direction === "left") {
// eslint-disable-next-line react/no-access-state-in-setstate
const pager = { ...this.state.pagination };
pager.current = paginationObj.current;
this.setState({
pagination: pager,
});
// this.fetch(paginationObj);
}
};
// const rightDataSource = this.props.auth
// const rightDataSource = dataSource.filter(item=>targetKeys.includes(item.path))
// const judgeArr = rightDataSource.map(it=>it.path)
// const leftDataSource = dataSource.map(item => ({
// ...item,
// disabled: judgeArr.includes(item.path) ,
// }));
return (
<Table
rowSelection={rowSelection}
columns={columns}
rowKey={(record) => record.path}
style={{ pointerEvents: listDisabled ? "none" : null }}
dataSource={filteredItems}
// dataSource={direction === 'left' ? leftDataSource : rightDataSource}
size="small"
onChange={handleTableChange}
onRow={({ path, disabled: itemDisabled }) => ({
onClick: () => {
if (itemDisabled || listDisabled) return;
onItemSelect(path, !listSelectedKeys.includes(path));
},
})}
pagination={direction === "left" ? pagination : true}
/>
);
}}
</Transfer>
);
}