master-新增年终奖计税
This commit is contained in:
parent
e56123201f
commit
174d36ffa2
|
|
@ -102,6 +102,11 @@ const Index: FunctionComponent<Props> = (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> = (props) => {
|
|||
opts = {
|
||||
...opts,
|
||||
render: (__: any, record: any) => (
|
||||
<Button type="link"
|
||||
onClick={() => handleSalaryFileOperate("CHANGE-SALARY", record)}>{i18n["调薪"]}</Button>)
|
||||
<Space>
|
||||
<Button type="link"
|
||||
onClick={() => handleSalaryFileOperate("CHANGE-SALARY", record)}>{i18n["调薪"]}</Button>
|
||||
<Button type="link"
|
||||
onClick={() => handleSalaryFileOperate("log", record)}>{i18n["操作日志"]}</Button>
|
||||
</Space>
|
||||
)
|
||||
};
|
||||
break;
|
||||
case "suspend":
|
||||
|
|
@ -138,6 +148,11 @@ const Index: FunctionComponent<Props> = (props) => {
|
|||
key: "DeleteTodoList",
|
||||
label: i18n["删除待办"],
|
||||
onClick: () => handleSalaryFileOperate("DEL-SUSPEND-TO-DO", record, [record?.id])
|
||||
},
|
||||
{
|
||||
key: "Log",
|
||||
label: i18n["操作日志"],
|
||||
onClick: () => handleSalaryFileOperate("log", record)
|
||||
}
|
||||
];
|
||||
return (<Space>
|
||||
|
|
@ -156,6 +171,11 @@ const Index: FunctionComponent<Props> = (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> = (props) => {
|
|||
[..._.filter(columns, o => o.dataIndex !== "operate"), {
|
||||
...opts,
|
||||
render: (__: any, record: any) => (
|
||||
<Button type="link" onClick={() => handleSalaryFileOperate("VIEW", record)}>{i18n["查看"]}</Button>)
|
||||
<Space>
|
||||
<Button type="link" onClick={() => handleSalaryFileOperate("VIEW", record)}>{i18n["查看"]}</Button>
|
||||
<Button type="link" onClick={() => handleSalaryFileOperate("log", record)}>{i18n["操作日志"]}</Button>
|
||||
</Space>
|
||||
)
|
||||
}];
|
||||
} else {
|
||||
return [];
|
||||
|
|
|
|||
|
|
@ -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<string>("");
|
||||
const [columns, setColumns] = useState<Array<any>>([]);
|
||||
const [dataSource, setDataSource] = useState<Array<any>>([]);
|
||||
const [pageInfo, setPageInfo] = useState<Partial<PaginationData>>({});
|
||||
const [i18n, setI18n] = useState<any>({});
|
||||
const [permission, setPermission] = useState<boolean>(false);
|
||||
const [scrollHeight, setScrollHeight] = useState<number | undefined>(undefined);
|
||||
const [extraParams, setExtraParams] = useState<Partial<extraType>>({});//额外参数
|
||||
|
||||
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 <Table rowKey="id" className={styles.multi_fun_table} dataSource={dataSource} size="middle"
|
||||
columns={renderCols(columns, unitTableType, i18n, permission)}
|
||||
scroll={{ x: 1200, y: `calc(100vh - ${scrollHeight || 109}px)` }}
|
||||
const rowSelection = {
|
||||
columnWidth: 60,
|
||||
selectedRowKeys: extraParams.selectedRowKeys,
|
||||
onChange: (selectedRowKeys: React.Key[]) => {
|
||||
// @ts-ignore
|
||||
setExtraParams({ ...extraParams, selectedRowKeys: selectedRowKeys });
|
||||
window.parent.postMessage(
|
||||
{ type: "turn", payload: { id: "CHECKBOX", params: { selectedRowKeys } } }, "*"
|
||||
);
|
||||
}
|
||||
};
|
||||
return <Table rowKey={extraParams.rowKey || "id"} className={styles.multi_fun_table} dataSource={dataSource}
|
||||
size="middle" columns={renderCols(columns, unitTableType, i18n, extraParams)}
|
||||
scroll={{ x: 1200, y: `calc(100vh - ${extraParams?.scrollHeight || 109}px)` }}
|
||||
rowSelection={!_.isNil(extraParams?.selectedRowKeys) ? rowSelection : undefined}
|
||||
pagination={!_.isNil(pageInfo) ? {
|
||||
...paginationAction(pageInfo, i18n, onChange),
|
||||
size: "default"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import React from "react";
|
||||
import { Button, Dropdown, MenuProps, Space, Tooltip, Typography } from "antd";
|
||||
import { MoreOutlined, QuestionCircleFilled } from "@ant-design/icons";
|
||||
import { extraType } from "@/pages/unitTable/index";
|
||||
|
||||
const { Text } = Typography;
|
||||
|
||||
|
|
@ -10,7 +11,7 @@ const { Text } = Typography;
|
|||
* Params:
|
||||
* Date: 2024/1/23
|
||||
*/
|
||||
export function renderCols(initialState: any[], type: string, i18n?: AnyObject, permission?: boolean) {
|
||||
export function renderCols(initialState: any[], type: string, i18n?: AnyObject, extraParams?: Partial<extraType>) {
|
||||
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 (
|
||||
<Space>
|
||||
{
|
||||
!permission ?
|
||||
<Button type="link" onClick={() => postMessageToParent("VIEW", record)}>{i18n?.["查看"]}</Button> :
|
||||
!extraParams?.permission ?
|
||||
<Space>
|
||||
<Button type="link" onClick={() => postMessageToParent("VIEW", record)}>{i18n?.["查看"]}</Button>
|
||||
<Button type="link" onClick={() => postMessageToParent("log", record)}>{i18n?.["操作日志"]}</Button>
|
||||
</Space> :
|
||||
<>
|
||||
{
|
||||
billStatus === "0" &&
|
||||
|
|
@ -88,6 +97,17 @@ export function renderCols(initialState: any[], type: string, i18n?: AnyObject,
|
|||
onClick={() => postMessageToParent("VIEW", record)}>{i18n?.["查看"]}</Button>
|
||||
<Button type="link"
|
||||
onClick={() => postMessageToParent("RECALC", record)}>{i18n?.["重新核算"]}</Button>
|
||||
<Dropdown menu={{
|
||||
items: [
|
||||
{
|
||||
key: "Log",
|
||||
label: i18n?.["操作日志"],
|
||||
onClick: () => postMessageToParent("log", record)
|
||||
}
|
||||
]
|
||||
}} placement="bottomRight">
|
||||
<Button type="link" icon={<MoreOutlined/>}/>
|
||||
</Dropdown>
|
||||
</>
|
||||
}
|
||||
</>
|
||||
|
|
@ -146,14 +166,23 @@ export function renderCols(initialState: any[], type: string, i18n?: AnyObject,
|
|||
key: "DeleteList",
|
||||
label: i18n?.["删除"],
|
||||
onClick: () => postMessageToParent("DEL", record)
|
||||
},
|
||||
{
|
||||
key: "Log",
|
||||
label: i18n?.["操作日志"],
|
||||
onClick: () => postMessageToParent("log", record)
|
||||
}
|
||||
];
|
||||
return (
|
||||
<Space>
|
||||
{
|
||||
!permission ?
|
||||
<Button type="link"
|
||||
onClick={() => postMessageToParent("VIEW", record)}>{i18n?.["查看详情"]}</Button> :
|
||||
!extraParams?.permission ?
|
||||
<Space>
|
||||
<Button type="link"
|
||||
onClick={() => postMessageToParent("VIEW", record)}>{i18n?.["查看详情"]}</Button>
|
||||
<Button type="link"
|
||||
onClick={() => postMessageToParent("log", record)}>{i18n?.["操作日志"]}</Button>
|
||||
</Space> :
|
||||
<>
|
||||
<Button type="link"
|
||||
onClick={() => postMessageToParent("VIEW", record)}>{i18n?.["查看详情"]}</Button>
|
||||
|
|
@ -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 (
|
||||
<Space>
|
||||
{
|
||||
!extraParams?.permission ?
|
||||
<Space>
|
||||
{
|
||||
selectedKey === "getAnnualbonusstrategyList" &&
|
||||
<Button type="link"
|
||||
onClick={() => postMessageToParent("VIEW", record)}>{i18n?.["查看详情"]}</Button>
|
||||
}
|
||||
<Button type="link"
|
||||
onClick={() => postMessageToParent("log", record)}>{i18n?.["操作日志"]}</Button>
|
||||
</Space> :
|
||||
<>
|
||||
<Button type="link"
|
||||
onClick={() => postMessageToParent("EDIT", record)}>{i18n?.["编辑"]}</Button>
|
||||
{
|
||||
selectedKey === "getAnnualbonusstrategyList" &&
|
||||
<Button type="link"
|
||||
onClick={() => postMessageToParent("VIEW", record)}>{i18n?.["查看详情"]}</Button>
|
||||
}
|
||||
{
|
||||
selectedKey === "getAnnualbonusaddupList" &&
|
||||
<Button type="link"
|
||||
onClick={() => postMessageToParent("DEL", record)}>{i18n?.["删除"]}</Button>
|
||||
}
|
||||
<Dropdown menu={{ items }} placement="bottomRight">
|
||||
<Button type="link" icon={<MoreOutlined/>}/>
|
||||
</Dropdown>
|
||||
</>
|
||||
}
|
||||
</Space>
|
||||
);
|
||||
}
|
||||
}];
|
||||
}
|
||||
return [];
|
||||
}, [initialState, type, i18n, permission]);
|
||||
}, [initialState, type, i18n, extraParams]);
|
||||
}
|
||||
|
||||
const postMessageToParent = (type: string, params: any) => {
|
||||
|
|
|
|||
|
|
@ -104,6 +104,11 @@ const Index: FunctionComponent<Props> = (props) => {
|
|||
key: "DeleteTodoList",
|
||||
label: i18n["删除待办"],
|
||||
onClick: () => handleWelfareOperate("DEL-TO-DO", record, { runStatus: "4" })
|
||||
},
|
||||
{
|
||||
key: "Log",
|
||||
label: i18n["操作日志"],
|
||||
onClick: () => handleWelfareOperate("log", record)
|
||||
}
|
||||
];
|
||||
return (<Space>
|
||||
|
|
@ -121,7 +126,10 @@ const Index: FunctionComponent<Props> = (props) => {
|
|||
opts = {
|
||||
...opts,
|
||||
render: (__: any, record: any) => (
|
||||
<Button type="link" onClick={() => handleWelfareOperate("EDIT", record)}>{i18n["编辑"]}</Button>)
|
||||
<Space>
|
||||
<Button type="link" onClick={() => handleWelfareOperate("EDIT", record)}>{i18n["编辑"]}</Button>
|
||||
<Button type="link" onClick={() => handleWelfareOperate("log", record)}>{i18n["操作日志"]}</Button>
|
||||
</Space>)
|
||||
};
|
||||
break;
|
||||
case "3":
|
||||
|
|
@ -133,6 +141,11 @@ const Index: FunctionComponent<Props> = (props) => {
|
|||
key: "DeleteTodoList",
|
||||
label: i18n["删除待办"],
|
||||
onClick: () => handleWelfareOperate("DEL-TO-DO-STAY", record, { runStatus: "3" })
|
||||
},
|
||||
{
|
||||
key: "Log",
|
||||
label: i18n["操作日志"],
|
||||
onClick: () => handleWelfareOperate("log", record)
|
||||
}
|
||||
];
|
||||
return (<Space>
|
||||
|
|
@ -155,6 +168,11 @@ const Index: FunctionComponent<Props> = (props) => {
|
|||
key: "CancelSuspension",
|
||||
label: i18n["取消停缴"],
|
||||
onClick: () => handleWelfareOperate("CANCEL-STOP", record)
|
||||
},
|
||||
{
|
||||
key: "Log",
|
||||
label: i18n["操作日志"],
|
||||
onClick: () => handleWelfareOperate("log", record)
|
||||
}
|
||||
];
|
||||
return (<Space>
|
||||
|
|
@ -174,7 +192,11 @@ const Index: FunctionComponent<Props> = (props) => {
|
|||
return showOperateBtn ? [...columns, opts] : [...columns, {
|
||||
...opts,
|
||||
render: (__: any, record: any) => (
|
||||
<Button type="link" onClick={() => handleWelfareOperate("VIEW", record)}>{i18n["查看"]}</Button>)
|
||||
<Space>
|
||||
<Button type="link" onClick={() => handleWelfareOperate("VIEW", record)}>{i18n["查看"]}</Button>
|
||||
<Button type="link" onClick={() => handleWelfareOperate("log", record)}>{i18n["操作日志"]}</Button>
|
||||
</Space>
|
||||
)
|
||||
}];
|
||||
}, [columns, runStatuses, i18n, showOperateBtn]);
|
||||
return (<Table
|
||||
|
|
|
|||
Loading…
Reference in New Issue