| | |
| | | * DataTable 样式常量 |
| | | */ |
| | | const tableStyles = { |
| | | '& .RaBulkActionsToolbar-toolbar': { |
| | | top: 0, |
| | | zIndex: 6, |
| | | }, |
| | | '& .MuiTableCell-head': { |
| | | zIndex: 4, |
| | | borderBottom: 'none' |
| | |
| | | * - label: 显示的标签,支持翻译 key 或直接显示的文本 |
| | | * - render: 可选,自定义渲染函数 (value, data) => ReactNode |
| | | * @param {string} props.footerLabel - footer 第一列标签,默认'合计' |
| | | * @param {number} props.bulkActionsOffsetY - 批量操作栏展开时向下偏移(px) |
| | | */ |
| | | export const StickyDataTable = ({ |
| | | stickyLeft = [], |
| | | stickyRight = [], |
| | | footerConfig, |
| | | footerLabel = '合计', |
| | | bulkActionsOffsetY = 0, |
| | | children, |
| | | ...props |
| | | }) => { |
| | |
| | | return () => <StickyTableFooter footerConfig={footerConfig} footerLabel={footerLabel} />; |
| | | }, [footerConfig, footerLabel]); |
| | | |
| | | const dataTableStyles = useMemo(() => { |
| | | return { |
| | | ...tableStyles, |
| | | '& .RaBulkActionsToolbar-toolbar:not(.RaBulkActionsToolbar-collapsed)': { |
| | | transform: `translateY(${bulkActionsOffsetY}px)`, |
| | | zIndex: 10, |
| | | }, |
| | | }; |
| | | }, [bulkActionsOffsetY]); |
| | | |
| | | return ( |
| | | <DataTable {...props} foot={footerComponent} sx={tableStyles}> |
| | | <DataTable {...props} foot={footerComponent} sx={dataTableStyles}> |
| | | {/* {processedChildren} */} |
| | | {processedChildren |
| | | .map((column) => ( |