// utils/tableHelpers.ts import { TableDropdownMenuItem } from "@/components/EnhancedProTable/types"; /** * 构建 TableDropdown 菜单项 */ export const buildTableDropdownMenuItems = ( actions: Array<{ key: string; label: string; icon?: React.ReactNode; danger?: boolean; disabled?: boolean; }> ): TableDropdownMenuItem[] => { return actions.map((action) => ({ key: action.key, name: action.label, icon: action.icon, danger: action.danger, disabled: action.disabled, })); }; /** * 处理 TableDropdown 选择事件 */ export const handleTableDropdownSelect = ( key: string | number, actions: Array<{ key: string; onClick: (record: T, action?: any) => void; }>, record: T, action?: any ) => { const selectedAction = actions.find((item) => item.key === key); if (selectedAction) { selectedAction.onClick(record, action); } }; /** * 格式化分页显示文本 */ export const formatPaginationTotal = ( total: number, range: [number, number] ) => { return `第 ${range[0]}-${range[1]} 条/总共 ${total} 条`; }; /** * 生成唯一的表格键 */ export const generateTableKey = (prefix: string) => { return `${prefix}-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`; };