import React, { FC, useEffect, useState } from "react"; import { Button, Table, Typography } from "antd"; import { exceptStr, paginationFun } from "@/utils/common"; import { defaultPage, IPage } from "@/common/types"; import styles from "@/pages/atdTable/components/index.less"; const { Text } = Typography; const StandingbookTable: FC = (props) => { const [selected, setSelected] = useState>([]); const [columns, setColumns] = useState>([]); const [dataSource, setDataSource] = useState>([]); const [pageInfo, setPageInfo] = useState(defaultPage); const [sumRow, setSumRow] = useState>({}); useEffect(() => { window.parent.postMessage({ type: "init" }, "*"); window.addEventListener("message", receiveMessageFromIndex, false); return () => { window.removeEventListener("message", receiveMessageFromIndex, false); }; }, []); const receiveMessageFromIndex = async (event: any) => { const data: any = exceptStr(event.data); if (!_.isEmpty(data)) { const { columns, dataSource, pageInfo, showOperates, selectedRowKeys, sumRow } = data; const { current: pageNum, pageSize: size, total } = pageInfo; const conventColumns = _.map( _.filter(columns, (it) => it.dataIndex !== "id"), (item) => { const { dataIndex } = item; if (dataIndex === "employeeId") { return { title: "姓名", dataIndex, fixed: "left", width: 150, render: (_: any, record: Partial) => {record?.userName} }; } return { dataIndex, width: 150, title: }; } ); setDataSource(dataSource); setColumns( !showOperates ? conventColumns : [ ...conventColumns, { title: "操作", dataIndex: "operate", fixed: "right", width: 120, render: (_: any, record: any) => { return ( ); } } ] ); setPageInfo({ pageNum, size, total }); setSelected(selectedRowKeys); setSumRow(sumRow); } }; const handleEdit = (record: any) => { window.parent.postMessage({ type: "turn", payload: { id: "EDIT", params: { ...record } } }, "*"); }; const sizeChange = (pageobj: IPage) => {}; const onChange = (pageobj: IPage) => { setPageInfo({ ...pageInfo, ...pageobj }); window.parent.postMessage({ type: "turn", payload: { id: "PAGEINFO", params: { ...pageInfo, ...pageobj } } }, "*"); }; const rowSelection = { selectedRowKeys: selected, columnWidth: 60, onChange: (selectedRowKeys: Array) => { setSelected(selectedRowKeys); window.parent.postMessage({ type: "turn", payload: { id: "ROWSELECT", params: { selectedRowKeys } } }, "*"); } }; return ( { if (_.isEmpty(sumRow)) return; return ( {_.map([{}, ...columns], (item, index) => { if (index === 0) { return ( 总计 ); } return ( {!_.isNil(sumRow[item.dataIndex]) ? sumRow[item.dataIndex] : "-"} ); })} ); }} /> ); }; export default StandingbookTable;