import React, { FC, useEffect, useState } from "react"; import { exceptStr, paginationFun } from "@/utils/common"; import { defaultPage, ILoading, IPage } from "@/common/types/page"; import { Menu, Popover, Table, Typography } from "antd"; import { MoreOutlined } from "@ant-design/icons"; import styles from "@/pages/atdTable/components/index.less"; const { Text } = Typography; interface ITableProps { } const FileTable: FC = (props) => { const [selected, setSelected] = useState>([]); //列表选中的数据 const [pageInfo, setPageInfo] = useState(defaultPage); const [loading, setLoading] = useState({}); const [columns, setColumns] = useState([]); const [dataSource, setDataSource] = useState([]); const [sumRow, setSumRow] = useState>({});//薪资核算总计行数据 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, pageInfo, showOperateBtn, selectedRowKeys, selectedKey } = data; const { current: pageNum, pageSize: size, total } = pageInfo; setColumns(getColumns(columns, selectedKey, showOperateBtn)); setDataSource(_.filter(dataSource, it => !!it.id)); setSelected(selectedRowKeys); // @ts-ignore setSumRow(_.last(dataSource)); setPageInfo({ pageNum, size, total }); } }; const getColumns = (columns: any, selectedKey: string, showOperateBtn: boolean) => { let tmpV = _.map(columns.filter((item: any) => item.display === "TRUE"), (item: any, index: number) => { return { ...item, ellipsis: true, dataIndex: item.column, title: item.text }; }); return tmpV.length > 0 ? [ ...tmpV, { title: "操作", dataIndex: "operate", fixed: "right", width: 120, render: (text: string, record: any) => { return ( record.id ?
handleEditFile(record)} >{(showOperateBtn && selectedKey !== "stop") ? "编辑" : "查看"} { showOperateBtn && selectedKey === "pending" && handleFileMenu(menu, record)}> 增员 删除待办 } title=""> } { showOperateBtn && selectedKey === "suspend" && handleSuspendFileMenu(menu, record)}> 减员 删除待办 } title=""> } { showOperateBtn && selectedKey === "stop" && handleStopFileMenu(menu, record)}> 取消停缴 } title=""> }
:
); } }] : []; }; const handleEditFile = (record: any) => { window.parent.postMessage({ type: "turn", payload: { id: "EDIT", params: { ...record } } }, "*"); }; const handleFileMenu = ({ key }: any, record: any) => { if (key === "addMember") { window.parent.postMessage({ type: "turn", payload: { id: "ADDMEMBER", params: { ...record } } }, "*"); } else { window.parent.postMessage({ type: "turn", payload: { id: "STOPSALARY", params: { ...record } } }, "*"); } }; const handleSuspendFileMenu = ({ key }: any, record: any) => { if (key === "stopSalary") { window.parent.postMessage({ type: "turn", payload: { id: "STOPSUSPENDSALARY", params: { ...record } } }, "*"); } else { window.parent.postMessage({ type: "turn", payload: { id: "STAYDELTOSTOP", params: { ...record } } }, "*"); } }; const handleStopFileMenu = ({ key }: any, record: any) => { if (key === "stopPaying") { window.parent.postMessage({ type: "turn", payload: { id: "STOPPAYING", 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, onChange: (selectedRowKeys: Array) => { setSelected(selectedRowKeys); window.parent.postMessage( { type: "turn", payload: { id: "ROWSELECT", params: { selectedRowKeys } } }, "*" ); } }; return { if (_.isEmpty(columns) || _.isEmpty(sumRow)) return; return ( { _.map(columns, (item: any, index) => { if (index === 0) { return 总计; } return {sumRow[item.dataIndex] || "-"} ; }) } ); }} />; }; export default FileTable;