// REQ-USR-003: 用户列表表格(受控分页 / 单选 rowSelection / 行双击 / 空态,BR1/BR6/BR11/BR12/BR14/D8) import { Empty, Table } from 'antd'; import type { TablePaginationConfig } from 'antd'; import type { UserVO } from '../../../api/types'; import { buildUserColumns } from './columns'; import { PAGE_SIZE_OPTIONS, TEXT_EMPTY, totalText } from './constants'; import styles from './UserList.module.css'; export interface UserTableProps { rows: UserVO[]; loading: boolean; total: number; pageNum: number; pageSize: number; onChangePage(pageNum: number, pageSize: number): void; onRowDoubleClick(row: UserVO): void; selectedRowKey?: number | null; onSelectRow?(key: number | null): void; } export default function UserTable({ rows, loading, total, pageNum, pageSize, onChangePage, onRowDoubleClick, selectedRowKey, onSelectRow, }: UserTableProps) { const pagination: TablePaginationConfig = { current: pageNum, pageSize, total, showSizeChanger: true, pageSizeOptions: PAGE_SIZE_OPTIONS.map(String), showTotal: (t) => totalText(t), }; return (