diff --git a/src/pages/salaryFileTable/index.tsx b/src/pages/salaryFileTable/index.tsx index 52f96f8..30dd86c 100644 --- a/src/pages/salaryFileTable/index.tsx +++ b/src/pages/salaryFileTable/index.tsx @@ -102,6 +102,11 @@ const Index: FunctionComponent = (props) => { label: i18n["删除待办"], onClick: () => handleSalaryFileOperate("DEL-PENDITNG-TO-DO", record, [record?.id]) }, + { + key: "Log", + label: i18n["操作日志"], + onClick: () => handleSalaryFileOperate("log", record) + }, { key: "DeleteFiles", label: i18n["删除档案"], @@ -124,9 +129,24 @@ const Index: FunctionComponent = (props) => { case "ext": opts = { ...opts, - render: (__: any, record: any) => ( - ) + render: (__: any, record: any) => { + let items: MenuProps["items"] = [ + { + key: "Log", + label: i18n["操作日志"], + onClick: () => handleSalaryFileOperate("log", record) + } + ]; + return ( + + + + ) + + + + + ) }]; } else { return []; diff --git a/src/pages/unitTable/index.tsx b/src/pages/unitTable/index.tsx index d283602..a9a3f8f 100644 --- a/src/pages/unitTable/index.tsx +++ b/src/pages/unitTable/index.tsx @@ -5,14 +5,20 @@ import { exceptStr, paginationAction } from "@/utils/common"; import { renderCols } from "@/pages/unitTable/renderColsOpts"; import styles from "./index.less"; +export type extraType = { + selectedKey: string; + selectedRowKeys: string[] | number[]; + permission: boolean; + scrollHeight: number; + rowKey: string +} const UnitTable: FC = (props) => { const [unitTableType, setUnitTableType] = useState(""); const [columns, setColumns] = useState>([]); const [dataSource, setDataSource] = useState>([]); const [pageInfo, setPageInfo] = useState>({}); const [i18n, setI18n] = useState({}); - const [permission, setPermission] = useState(false); - const [scrollHeight, setScrollHeight] = useState(undefined); + const [extraParams, setExtraParams] = useState>({});//额外参数 useEffect(() => { window.parent.postMessage({ type: "init" }, "*"); @@ -25,16 +31,15 @@ const UnitTable: FC = (props) => { const data: any = exceptStr(event.data); if (!_.isEmpty(data)) { const { - columns, dataSource, pageInfo, scrollHeight, i18n, - showOperateBtn, unitTableType = "welfareRecord" + columns, dataSource, pageInfo, scrollHeight, i18n, showOperateBtn: permission, unitTableType = "welfareRecord", + selectedRowKeys, selectedKey, rowKey } = data; setI18n(i18n); - setScrollHeight(scrollHeight); - setUnitTableType(unitTableType); setColumns(columns); setDataSource(dataSource); setPageInfo(pageInfo); - setPermission(showOperateBtn); + setUnitTableType(unitTableType); + setExtraParams({ selectedKey, selectedRowKeys, scrollHeight, permission, rowKey }); } }; const onChange = (current: number, pageSize: number) => { @@ -50,9 +55,21 @@ const UnitTable: FC = (props) => { return { ...pageInfo, current: size === pageSize ? current : 1, pageSize }; }); }; - return { + // @ts-ignore + setExtraParams({ ...extraParams, selectedRowKeys: selectedRowKeys }); + window.parent.postMessage( + { type: "turn", payload: { id: "CHECKBOX", params: { selectedRowKeys } } }, "*" + ); + } + }; + return
) { return React.useMemo(() => { if (type === "welfareRecord") { return [..._.map(_.filter(initialState, o => o.dataIndex !== "id"), g => { @@ -61,13 +62,29 @@ export function renderCols(initialState: any[], type: string, i18n?: AnyObject, key: "DeleteList", label: i18n?.["删除"], onClick: () => postMessageToParent("DELRC", record) + }, + { + key: "Log", + label: i18n?.["操作日志"], + onClick: () => postMessageToParent("log", record) } ]; return ( { - !permission ? - : + !extraParams?.permission ? + + + postMessageToParent("log", record) + }] + }} placement="bottomRight"> + + postMessageToParent("log", record) + } + ] + }} placement="bottomRight"> + : + !extraParams?.permission ? + + + + @@ -168,9 +206,98 @@ export function renderCols(initialState: any[], type: string, i18n?: AnyObject, ); } }]; + } else if (type === "bonusStrategy") { + const { selectedKey } = extraParams as { selectedKey: string }; + return [..._.map(initialState, g => { + let col = { ...g, ellipsis: true, fixed: false, width: 120 }; + switch (g.dataIndex) { + case "username": + col = { ...col, fixed: "left" }; + break; + case "taxAgentName": + col = { ...col, width: 200, fixed: "left" }; + break; + case "idNo": + col = { ...col, width: 150 }; + break; + case "originalTaxTypeDesc": + case "originalBonus": + case "originalTax": + case "originalIncome": + col = { + ...col, + render: (text: string) => (
{text}
) + }; + break; + case "optimizedTaxTypeDesc": + case "optimizedBonus": + case "optimizedTax": + case "optimizedIncome": + col = { ...col, render: (text: string) => ({text}) }; + break; + case "companySave": + case "employeeGain": + col = { ...col, render: (text: string) => ({text}) }; + break; + default: + col = { ...col }; + break; + } + return col; + }), { + dataIndex: "operate", title: i18n?.["操作"], width: 185, fixed: "right", + render: (__: string, record: any) => { + let items: MenuProps["items"] = [ + { + key: "DeleteList", + label: i18n?.["删除"], + onClick: () => postMessageToParent("DEL", record) + }, + { + key: "Log", + label: i18n?.["操作日志"], + onClick: () => postMessageToParent("log", record) + } + ]; + selectedKey === "getAnnualbonusaddupList" && items.shift(); + return ( + + { + !extraParams?.permission ? + + { + selectedKey === "getAnnualbonusstrategyList" && + + } + + : + <> + + { + selectedKey === "getAnnualbonusstrategyList" && + + } + { + selectedKey === "getAnnualbonusaddupList" && + + } + + ) + render: (__: any, record: any) => { + const items: MenuProps["items"] = [ + { + key: "Log", + label: i18n["操作日志"], + onClick: () => handleWelfareOperate("log", record) + } + ]; + return ( + + + + ) + + + + + ) }]; }, [columns, runStatuses, i18n, showOperateBtn]); return (