提交 01a36087 作者: 郁骅焌

tijiao

上级 c5229864
...@@ -44,6 +44,11 @@ const SageTable = React.forwardRef((props, ref) => { ...@@ -44,6 +44,11 @@ const SageTable = React.forwardRef((props, ref) => {
// 展开keys // 展开keys
const [expandedRowKeys, setExpandedRowKeys] = useState([]); const [expandedRowKeys, setExpandedRowKeys] = useState([]);
// 列设置
const [columns, setColumns] = useState([]);
const [allColumns, setAllColumns] = useState([]);
const { const {
request, request,
hasNumber = false, hasNumber = false,
...@@ -211,6 +216,16 @@ const SageTable = React.forwardRef((props, ref) => { ...@@ -211,6 +216,16 @@ const SageTable = React.forwardRef((props, ref) => {
const tableToolProps = { const tableToolProps = {
toolBarRender: toolBarRenderProps, toolBarRender: toolBarRenderProps,
toolOptionConfig: toolOptionConfigProps, toolOptionConfig: toolOptionConfigProps,
onChangeColumnsHidden: (key, checked) => {
const columnsTemp = allColumns.slice();
for (let i = 0; i < columnsTemp.length; i++) {
if (columnsTemp[i].key === key) {
columnsTemp[i].hidden = !checked;
break;
}
}
setAllColumns(columnsTemp);
},
// 刷新表格 // 刷新表格
onRefreshTable: () => { onRefreshTable: () => {
queryTable(tableState.searchParams); queryTable(tableState.searchParams);
...@@ -231,10 +246,6 @@ const SageTable = React.forwardRef((props, ref) => { ...@@ -231,10 +246,6 @@ const SageTable = React.forwardRef((props, ref) => {
exitFull: () => exitFull(), exitFull: () => exitFull(),
}; };
useEffect(() => {
queryTable();
}, []);
const tableSizeState = tableSizeProps !== undefined ? tableSizeProps : tableSize; const tableSizeState = tableSizeProps !== undefined ? tableSizeProps : tableSize;
const dataSourceState = const dataSourceState =
dataSourceProps !== undefined ? dataSourceProps.slice() : tableState.dataSource; dataSourceProps !== undefined ? dataSourceProps.slice() : tableState.dataSource;
...@@ -243,12 +254,12 @@ const SageTable = React.forwardRef((props, ref) => { ...@@ -243,12 +254,12 @@ const SageTable = React.forwardRef((props, ref) => {
// 是否有序号 // 是否有序号
// const columnsState = columnsProps !== undefined ? columnsProps.slice() : []; // const columnsState = columnsProps !== undefined ? columnsProps.slice() : [];
const getLatestColumnsState = () => { useEffect(() => {
let columnsState = columnsProps !== undefined ? columnsProps.slice() : []; let columnsTemp = allColumns ? allColumns.slice() : [];
// 处理列配置
if (hasNumber) { if (hasNumber) {
columnsState.unshift({ columnsTemp.unshift({
title: '序号', title: '序号',
key: 'serialNumber',
render: (text, record, index) => { render: (text, record, index) => {
let serialNumber = 0; let serialNumber = 0;
if (paginationState) { if (paginationState) {
...@@ -265,10 +276,14 @@ const SageTable = React.forwardRef((props, ref) => { ...@@ -265,10 +276,14 @@ const SageTable = React.forwardRef((props, ref) => {
}); });
} }
// 隐藏hidden属性列 // 隐藏hidden属性列
columnsState = columnsState.filter((item) => !item.hidden); columnsTemp = columnsTemp.filter((item) => !item.hidden);
return columnsState; setColumns(columnsTemp);
}; }, [columnsProps, tableState, allColumns]);
const latestColumnsState = useMemo(() => getLatestColumnsState(), [props.columns, tableState]);
useEffect(() => {
queryTable();
setAllColumns(columnsProps ? columnsProps.slice() : []);
}, []);
const tableSearchFormProps = { const tableSearchFormProps = {
searchFields: searchFieldsProps, searchFields: searchFieldsProps,
...@@ -413,12 +428,17 @@ const SageTable = React.forwardRef((props, ref) => { ...@@ -413,12 +428,17 @@ const SageTable = React.forwardRef((props, ref) => {
)} )}
{!hiddeTool ? ( {!hiddeTool ? (
<TableTool tableSize={tableSizeState} isFullscreen={isFullscreen} columns={latestColumnsState} {...tableToolProps} /> <TableTool
tableSize={tableSizeState}
isFullscreen={isFullscreen}
columns={allColumns}
{...tableToolProps}
/>
) : null} ) : null}
<Table <Table
size={tableSizeState} size={tableSizeState}
columns={latestColumnsState} columns={columns}
dataSource={dataSourceState} dataSource={dataSourceState}
pagination={paginationState} pagination={paginationState}
loading={loadingState} loading={loadingState}
......
...@@ -29,16 +29,21 @@ const ColumnSetting = (props) => { ...@@ -29,16 +29,21 @@ const ColumnSetting = (props) => {
}) })
}) })
setPlainOptions(allOptions) setPlainOptions(allOptions)
}, []) }, [props.columns])
const content = ( const content = (
<div className="sage-table-column-setting-list"> <div className="sage-table-column-setting-list">
{ {
plainOptions.map((item, index) => { props.columns.map((item, index) => {
return ( return (
<span className="sage-table-column-setting-list-item" key={`columnKey_${item.key}`}> <span className="sage-table-column-setting-list-item" key={`columnKey_${item.key}`}>
<Checkbox <Checkbox
onChange={(e) => { onChange={(e) => {
if (e.target.checked) {
props.onChangeColumnsHidden(item.key, true)
} else {
props.onChangeColumnsHidden(item.key, false)
}
// if (columnKey) { // if (columnKey) {
// const tempConfig = columnsMap[columnKey || ''] || {}; // const tempConfig = columnsMap[columnKey || ''] || {};
// const newSetting = { ...tempConfig }; // const newSetting = { ...tempConfig };
...@@ -54,7 +59,7 @@ const ColumnSetting = (props) => { ...@@ -54,7 +59,7 @@ const ColumnSetting = (props) => {
// setColumnsMap(columnKeyMap); // setColumnsMap(columnKeyMap);
// } // }
}} }}
//checked={config.show !== false} checked={!item.hidden}
> >
{item.title} {item.title}
</Checkbox> </Checkbox>
......
...@@ -22,6 +22,7 @@ const SageTableTool = (props) => { ...@@ -22,6 +22,7 @@ const SageTableTool = (props) => {
onRefreshTable, onRefreshTable,
onChangeSize, onChangeSize,
onHiddeSearch, onHiddeSearch,
onChangeColumnsHidden,
setFull, setFull,
exitFull, exitFull,
columns columns
...@@ -77,7 +78,7 @@ const SageTableTool = (props) => { ...@@ -77,7 +78,7 @@ const SageTableTool = (props) => {
eachDom = ( eachDom = (
<span className="sage-table-toolbar-item" key={`sage-table-toolbar-item-${item}`}> <span className="sage-table-toolbar-item" key={`sage-table-toolbar-item-${item}`}>
<Tooltip title="列设置"> <Tooltip title="列设置">
<ColumnSetting columns={columns} /> <ColumnSetting onChangeColumnsHidden={onChangeColumnsHidden} columns={columns} />
</Tooltip> </Tooltip>
</span> </span>
) )
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论