可用版本
This commit is contained in:
parent
c6a5e00788
commit
af6cf056de
@ -32,9 +32,10 @@ export function useTableData<T extends { id: number }, P = any>({
|
|||||||
...defaultParams,
|
...defaultParams,
|
||||||
...params,
|
...params,
|
||||||
pageNum: state.pagination.current,
|
pageNum: state.pagination.current,
|
||||||
pageSize: state.pagination.pageSize
|
pageSize: state.pagination.pageSize,
|
||||||
},
|
sortOrder: params?.sortOrder === 'ascend' ? 'asc' :
|
||||||
transform: true
|
params?.sortOrder === 'descend' ? 'desc' : undefined
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
setState(prev => ({
|
setState(prev => ({
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import type {UserResponse, Role} from './types';
|
|||||||
import type {DepartmentDTO} from '../Department/types';
|
import type {DepartmentDTO} from '../Department/types';
|
||||||
import {getUsers, createUser, updateUser, deleteUser, resetPassword} from './service';
|
import {getUsers, createUser, updateUser, deleteUser, resetPassword} from './service';
|
||||||
import {useTableData} from '@/hooks/useTableData';
|
import {useTableData} from '@/hooks/useTableData';
|
||||||
import type {FixedType, AlignType} from 'rc-table/lib/interface';
|
import type {FixedType, AlignType, SortOrder} from 'rc-table/lib/interface';
|
||||||
import {Response} from "@/utils/request.ts";
|
import {Response} from "@/utils/request.ts";
|
||||||
|
|
||||||
const UserPage: React.FC = () => {
|
const UserPage: React.FC = () => {
|
||||||
@ -120,6 +120,7 @@ const UserPage: React.FC = () => {
|
|||||||
dataIndex: 'username',
|
dataIndex: 'username',
|
||||||
key: 'username',
|
key: 'username',
|
||||||
width: 100,
|
width: 100,
|
||||||
|
sorter: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '昵称',
|
title: '昵称',
|
||||||
@ -153,6 +154,8 @@ const UserPage: React.FC = () => {
|
|||||||
dataIndex: 'createTime',
|
dataIndex: 'createTime',
|
||||||
key: 'createTime',
|
key: 'createTime',
|
||||||
width: 150,
|
width: 150,
|
||||||
|
sorter: true,
|
||||||
|
defaultSortOrder: 'descend' as SortOrder
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '更新时间',
|
title: '更新时间',
|
||||||
@ -208,6 +211,19 @@ const UserPage: React.FC = () => {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const handleTableChange = (
|
||||||
|
pagination: TablePaginationConfig,
|
||||||
|
filters: Record<string, FilterValue | null>,
|
||||||
|
sorter: SorterResult<UserResponse> | SorterResult<UserResponse>[]
|
||||||
|
) => {
|
||||||
|
const { field, order } = Array.isArray(sorter) ? sorter[0] : sorter;
|
||||||
|
|
||||||
|
fetchUsers({
|
||||||
|
sortField: field as string,
|
||||||
|
sortOrder: order
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div style={{padding: '24px'}}>
|
<div style={{padding: '24px'}}>
|
||||||
<div style={{marginBottom: 16}}>
|
<div style={{marginBottom: 16}}>
|
||||||
@ -222,25 +238,8 @@ const UserPage: React.FC = () => {
|
|||||||
dataSource={users}
|
dataSource={users}
|
||||||
rowKey="id"
|
rowKey="id"
|
||||||
scroll={{x: 1500}}
|
scroll={{x: 1500}}
|
||||||
pagination={{
|
pagination={pagination}
|
||||||
...pagination,
|
onChange={handleTableChange}
|
||||||
showSizeChanger: true,
|
|
||||||
showQuickJumper: true,
|
|
||||||
showTotal: (total) => `共 ${total} 条记录`,
|
|
||||||
onChange: onPageChange,
|
|
||||||
size: 'small'
|
|
||||||
}}
|
|
||||||
rowSelection={{
|
|
||||||
type: 'checkbox',
|
|
||||||
onChange: (selectedRowKeys, selectedRows) => {
|
|
||||||
console.log('selectedRowKeys:', selectedRowKeys);
|
|
||||||
console.log('selectedRows:', selectedRows);
|
|
||||||
},
|
|
||||||
getCheckboxProps: (record) => ({
|
|
||||||
disabled: record.username === 'admin',
|
|
||||||
}),
|
|
||||||
fixed: true,
|
|
||||||
}}
|
|
||||||
size="middle"
|
size="middle"
|
||||||
bordered
|
bordered
|
||||||
/>
|
/>
|
||||||
|
|||||||
@ -2,10 +2,10 @@ import type { BaseResponse } from '@/types/base/response';
|
|||||||
import type { Page } from '@/types/base/page';
|
import type { Page } from '@/types/base/page';
|
||||||
|
|
||||||
export interface UserQuery {
|
export interface UserQuery {
|
||||||
current?: number;
|
pageNum?: number;
|
||||||
pageSize?: number;
|
pageSize?: number;
|
||||||
sortField?: string;
|
sortField?: string;
|
||||||
sortOrder?: string;
|
sortOrder?: 'ascend' | 'descend';
|
||||||
username?: string;
|
username?: string;
|
||||||
nickname?: string;
|
nickname?: string;
|
||||||
email?: string;
|
email?: string;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user