import React from 'react'; import { RowRendererParams } from './interface'; import styles from './Table.less'; import _ from 'lodash'; import Cell from './Cell'; const renderBodyCell = ({ column, columnIndex, rowData, rowIndex, key }) => { const columnData: any = rowData.rowData[columnIndex]; // 列数据 const cellData: any = columnData.cellValueList; // 列数据 let text = ''; if (Array.isArray(cellData) && cellData.length > 0) { text = cellData[0].text; } const { width = 200, fixed } = column; const style: any = { display: 'inline-block', width: '200px', }; if (fixed) { style.position = 'sticky'; style.left = 0; } return (
{text}
); }; export default function defaultRowRenderer({ rowClassName, columns, rowIndex, key, onRowClick, onRowDoubleClick, onRowMouseOut, onRowMouseOver, onRowRightClick, rowData, rowStyle, }: RowRendererParams) { const a11yProps: any = { 'aria-rowindex': rowIndex + 1 }; if (onRowClick || onRowDoubleClick || onRowMouseOut || onRowMouseOver || onRowRightClick) { a11yProps['aria-label'] = 'row'; a11yProps.tabIndex = 0; if (onRowClick) { a11yProps.onClick = (event) => onRowClick({ event, rowIndex, rowData }); } if (onRowDoubleClick) { a11yProps.onDoubleClick = (event) => onRowDoubleClick({ event, rowIndex, rowData }); } if (onRowMouseOut) { a11yProps.onMouseOut = (event) => onRowMouseOut({ event, rowIndex, rowData }); } if (onRowMouseOver) { a11yProps.onMouseOver = (event) => onRowMouseOver({ event, rowIndex, rowData }); } if (onRowRightClick) { a11yProps.onContextMenu = (event) => onRowRightClick({ event, rowIndex, rowData }); } } return (
{columns.map((column, columnIndex) => renderBodyCell({ column, columnIndex, rowData, rowIndex, key, }), )}
); }