import React, { FC, useEffect, useState } from "react"; import { Table, Typography } from "antd"; import { exceptStr } from "@/utils/common"; import styles from "@/pages/atdTable/components/index.less"; const { Text } = Typography; const PreviewTable: FC = (props) => { const [columns, setColumns] = useState>([]); const [sumRow, setSumRow] = useState>({}); const [dataSource, setDataSource] = useState>([]); const [showSumrow, setShowSumrow] = useState(false); useEffect(() => { window.parent.postMessage({ type: "init" }, "*"); window.addEventListener("message", receiveMessageFromIndex, false); return () => { window.removeEventListener("message", receiveMessageFromIndex, false); }; }, []); const receiveMessageFromIndex = (event: any) => { const data: any = exceptStr(event.data); if (!_.isEmpty(data)) { const { columns, dataSource, countResult, showSum } = data; setDataSource(dataSource); setColumns(columns); setShowSumrow(showSum); setSumRow(countResult); } }; return { if (!showSumrow) return; let totalColumns: any[] = []; _.forEach(columns, it => { if (!it.children) { totalColumns.push(it); } else { totalColumns = [...totalColumns, ...it.children]; } }); return ( { _.map([{}, ...totalColumns], (item, index) => { if (index === 0) { return 总计; } return {!_.isNil(sumRow[item.dataIndex]) ? sumRow[item.dataIndex] : "-"} ; }) } ); }} />; }; export default PreviewTable;