diff --git a/src/pages/salaryFileTable/index.tsx b/src/pages/salaryFileTable/index.tsx index 52f96f8..b51cb3e 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["删除档案"], @@ -125,8 +130,13 @@ const Index: FunctionComponent = (props) => { opts = { ...opts, render: (__: any, record: any) => ( - ) + + + + + ) }; break; case "suspend": @@ -138,6 +148,11 @@ const Index: FunctionComponent = (props) => { key: "DeleteTodoList", label: i18n["删除待办"], onClick: () => handleSalaryFileOperate("DEL-SUSPEND-TO-DO", record, [record?.id]) + }, + { + key: "Log", + label: i18n["操作日志"], + onClick: () => handleSalaryFileOperate("log", record) } ]; return ( @@ -156,6 +171,11 @@ const Index: FunctionComponent = (props) => { ...opts, render: (__: any, record: any) => { let stopItems: MenuProps["items"] = [ + { + key: "Log", + label: i18n["操作日志"], + onClick: () => handleSalaryFileOperate("log", record) + }, { key: "CancelSuspension", label: i18n["删除档案"], @@ -184,7 +204,11 @@ const Index: FunctionComponent = (props) => { [..._.filter(columns, o => o.dataIndex !== "operate"), { ...opts, render: (__: any, record: any) => ( - ) + + + + + ) }]; } 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,21 @@ 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 ? + + + + : <> { billStatus === "0" && @@ -88,6 +97,17 @@ export function renderCols(initialState: any[], type: string, i18n?: AnyObject, onClick={() => postMessageToParent("VIEW", record)}>{i18n?.["查看"]} + postMessageToParent("log", record) + } + ] + }} placement="bottomRight"> + : + !extraParams?.permission ? + + + + : <> @@ -168,9 +197,79 @@ 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; + 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" && + + } + + ) + + + + ) }; break; case "3": @@ -133,6 +141,11 @@ const Index: FunctionComponent = (props) => { key: "DeleteTodoList", label: i18n["删除待办"], onClick: () => handleWelfareOperate("DEL-TO-DO-STAY", record, { runStatus: "3" }) + }, + { + key: "Log", + label: i18n["操作日志"], + onClick: () => handleWelfareOperate("log", record) } ]; return ( @@ -155,6 +168,11 @@ const Index: FunctionComponent = (props) => { key: "CancelSuspension", label: i18n["取消停缴"], onClick: () => handleWelfareOperate("CANCEL-STOP", record) + }, + { + key: "Log", + label: i18n["操作日志"], + onClick: () => handleWelfareOperate("log", record) } ]; return ( @@ -174,7 +192,11 @@ const Index: FunctionComponent = (props) => { return showOperateBtn ? [...columns, opts] : [...columns, { ...opts, render: (__: any, record: any) => ( - ) + + + + + ) }]; }, [columns, runStatuses, i18n, showOperateBtn]); return (