/** * Copyright (c) OpenSpug Organization. https://github.com/openspug/spug * Copyright (c) * Released under the AGPL-3.0 License. */ import React, { useState, useEffect, useRef } from 'react'; import { Table, Space, Divider, Popover, Checkbox, Button } from 'antd'; import { ReloadOutlined, SettingOutlined, FullscreenOutlined } from '@ant-design/icons'; import styles from './index.module.less'; function Footer(props) { const actions = props.actions || []; const length = props.selected.length; return length > 0 ? (
已选择 {length}
{actions.map((item, index) => ( {item} ))}
) : null } function Header(props) { const columns = props.columns || []; const actions = props.actions || []; const fields = props.fields || []; const onFieldsChange = props.onFieldsChange; const Fields = () => { return ( {columns.map((item, index) => ( {item.title} ))} ) } function handleCheckAll(e) { if (e.target.checked) { onFieldsChange(columns.map((_, index) => index)) } else { onFieldsChange([]) } } function handleFullscreen() { if (props.rootRef.current && document.fullscreenEnabled) { if (document.fullscreenElement) { document.exitFullscreen() } else { props.rootRef.current.requestFullscreen() } } } return (
{props.title}
{actions.map((item, index) => ( {item} ))} {actions.length ? : null} 列展示, ]} overlayClassName={styles.tableFields} trigger="click" placement="bottomRight" content={}>
) } function TableCard(props) { const rootRef = useRef(); const batchActions = props.batchActions || []; const selected = props.selected || []; const [fields, setFields] = useState([]); const [defaultFields, setDefaultFields] = useState([]); const [columns, setColumns] = useState([]); useEffect(() => { let [_columns, _fields] = [props.columns, []]; if (props.children) { if (Array.isArray(props.children)) { _columns = props.children.filter(x => x.props).map(x => x.props) } else { _columns = [props.children.props] } } for (let [index, item] of _columns.entries()) { if (!item.hide) _fields.push(index) } setFields(_fields); setColumns(_columns); setDefaultFields(_fields); }, [props.columns, props.children]) return (
fields.includes(index))} dataSource={props.dataSource} rowSelection={props.rowSelection} expandable={props.expandable} pagination={props.pagination}/> {selected.length ?
: null} ) } export default TableCard