泛微薪资核算iframe表格

feature/V2-系统多语言
黎永顺 2 years ago
parent 3835fcf8e3
commit 8c3d981602

@ -5,6 +5,7 @@ import { DndProvider } from "react-dnd";
import moment from "moment";
import { Provider } from "mobx-react";
import zhCN from "antd/lib/locale/zh_CN";
import enUS from "antd/lib/locale/en_US";
import { HTML5Backend } from "react-dnd-html5-backend";
import { connect, IRouteComponentProps, useModel } from "umi";
import BaseLayout from "./BaseLayout";
@ -15,6 +16,7 @@ import { layoutConfig } from "@/layouts/config";
import stores from "@/store";
import "moment/locale/zh-cn";
import "antd/dist/antd.variable.min.css";
import { Storage } from "@/utils";
moment.locale("zh-cn");
@ -67,12 +69,13 @@ const Layout = ({ children, location, route, history, match }: IRouteComponentPr
layout = <BaseLayout {...props} />;
}
}
const langText = Storage.local.get("login") ? Storage.local.get("login").langText : "Chinese";
return (
<Provider {...stores}>
<DndProvider backend={HTML5Backend}>
<RouterContext.Provider value={routerProps}>
<ConfigProvider locale={zhCN}>{layout}</ConfigProvider>
<ConfigProvider
locale={langText === "English" ? enUS : zhCN}>{layout}</ConfigProvider>
</RouterContext.Provider>
</DndProvider>
</Provider>

@ -19,6 +19,7 @@ const AntdTable: FC<ITableProps> = (props) => {
const [loading, setLoading] = useState<ILoading>({});
const [columns, setColumns] = useState<any[]>([]);
const [dataSource, setDataSource] = useState<any[]>([]);
const [i18n, setI18n] = useState<Partial<{}>>({});
const [sumRow, setSumRow] = useState<Partial<{}>>({});//薪资核算总计行数据
const [showSumrow, setShowSumrow] = useState<boolean>(false);//薪资核算总计行是否隐藏
useEffect(() => {
@ -83,7 +84,7 @@ const AntdTable: FC<ITableProps> = (props) => {
const getUserListColumns = (acctemployeeListColumns: any) => {
let tmpColumns = [...acctemployeeListColumns, {
key: "cz",
title: "操作",
title: i18n["操作"],
render: (text: string, record: any) => {
return (
<Button type="link" style={{ padding: "0" }}
@ -97,7 +98,7 @@ const AntdTable: FC<ITableProps> = (props) => {
);
}}
>
{i18n["删除"]}
</Button>
);
}
@ -147,7 +148,7 @@ const AntdTable: FC<ITableProps> = (props) => {
item.lockStatus && <span className={styles.titleIcon}>
{
item.lockStatus === "UNLOCK" && <LockOutlined
title="点击锁定所有解锁的项目值"
title={i18n["点击锁定所有解锁的项目值"]}
onClick={() => {
window.parent.postMessage(
{
@ -161,7 +162,7 @@ const AntdTable: FC<ITableProps> = (props) => {
}
{
item.lockStatus !== "UNLOCK" && <UnlockOutlined
title="点击解锁所有锁定的项目值"
title={i18n["点击解锁所有锁定的项目值"]}
onClick={() => {
window.parent.postMessage(
{
@ -196,7 +197,7 @@ const AntdTable: FC<ITableProps> = (props) => {
return <span className={styles.contentSpan}>
<span title={text} className={styles.contentTitle}>{text}</span>
{
result.lockStatus === "LOCK" ? <LockOutlined title="锁定的项目值"/> : null
result.lockStatus === "LOCK" ? <LockOutlined title={i18n["锁定的项目值"]}/> : null
}
</span>;
};
@ -219,7 +220,7 @@ const AntdTable: FC<ITableProps> = (props) => {
{
child.lockStatus === "UNLOCK" &&
<LockOutlined
title="点击锁定所有解锁的项目值"
title={i18n["点击锁定所有解锁的项目值"]}
onClick={() => {
window.parent.postMessage(
{
@ -234,7 +235,7 @@ const AntdTable: FC<ITableProps> = (props) => {
{
child.lockStatus !== "UNLOCK" &&
<UnlockOutlined
title="点击解锁所有锁定的项目值"
title={i18n["点击解锁所有锁定的项目值"]}
onClick={() => {
window.parent.postMessage(
{
@ -256,7 +257,7 @@ const AntdTable: FC<ITableProps> = (props) => {
return <span className={styles.contentSpan}>
<span title={text} className={styles.contentTitle}>{text}</span>
{
child.lockStatus === "LOCK" ? <LockOutlined title="锁定的项目值"/> : null
child.lockStatus === "LOCK" ? <LockOutlined title={i18n["锁定的项目值"]}/> : null
}
</span>;
};
@ -273,7 +274,7 @@ const AntdTable: FC<ITableProps> = (props) => {
return result;
});
hasOperate && tmpColumns.push({
title: "操作",
title: i18n["操作"],
key: "cz",
width: "100px",
fixed: "right",
@ -286,7 +287,7 @@ const AntdTable: FC<ITableProps> = (props) => {
},
"*"
);
}}></Button>;
}}>{i18n["编辑"]}</Button>;
}
});
return tmpColumns;
@ -295,7 +296,8 @@ const AntdTable: FC<ITableProps> = (props) => {
setDataSource([]);
const data: any = exceptStr(event.data);
if (!_.isEmpty(data)) {
const { selectedRowKeys, ...extraData } = data;
const { selectedRowKeys, i18n, ...extraData } = data;
setI18n(i18n);
getPCDataList({ ...extraData, ...pageParams });
if (selectedRowKeys) setSelected(selectedRowKeys);
}
@ -337,7 +339,7 @@ const AntdTable: FC<ITableProps> = (props) => {
// rowSelection={tab === "PC" && usertab === "SA" ? rowSelection : undefined}
rowSelection={rowSelection}
pagination={{
...paginationFun(pageParams, sizeChange, onChange),
...paginationFun(pageParams, sizeChange, onChange, i18n),
size: "default"
}}
scroll={{
@ -358,10 +360,11 @@ const AntdTable: FC<ITableProps> = (props) => {
<Table.Summary fixed>
<Table.Summary.Row>
{
_.isEmpty(sumRow) ? <Spin tip="加载中"/> :
_.isEmpty(sumRow) ? <Spin tip={i18n["加载中"]}/> :
_.map([{}, ...totalColumns], (item, index) => {
if (index === 0) {
return <Table.Summary.Cell index={0} align="center"><Text type="danger"></Text></Table.Summary.Cell>;
return <Table.Summary.Cell index={0} align="center"><Text
type="danger">{i18n["总计"]}</Text></Table.Summary.Cell>;
}
return <Table.Summary.Cell index={index} key={index}>
<Text type="danger">{sumRow[item.dataIndex] || "-"}</Text>

@ -11,6 +11,7 @@ const CommonTable: FC = (props) => {
const [pageInfo, setPageInfo] = useState<IPage>(defaultPage);
const [dataSource, setDataSource] = useState<Array<any>>([]);
const [showSumrow, setShowSumrow] = useState<boolean>(false);
const [i18n, setI18n] = useState<Partial<{}>>({});
useEffect(() => {
window.parent.postMessage({ type: "init" }, "*");
@ -22,9 +23,10 @@ const CommonTable: FC = (props) => {
const receiveMessageFromIndex = (event: any) => {
const data: any = exceptStr(event.data);
if (!_.isEmpty(data)) {
const { columns, dataSource, countResult, showSum, pageInfo } = data;
const { columns, dataSource, countResult, showSum, pageInfo, i18n } = data;
const { current: pageNum, pageSize: size, total } = pageInfo;
setDataSource(dataSource);
setI18n(i18n);
setColumns(_.map(columns, item => {
if (item.dataIndex === "salarySob") {
return {
@ -32,7 +34,7 @@ const CommonTable: FC = (props) => {
render: (text: string, r: { acctTimes?: number }) => {
return <div className={styles.customSpan} title={text}>
<span className={styles.title}>{text}</span>
<Tag color="#4d7ad8">{`${r?.acctTimes}`}</Tag>
<Tag color="#4d7ad8">{`${i18n["第"]}${r?.acctTimes}${i18n["次"]}`}</Tag>
</div>;
}
};
@ -65,7 +67,7 @@ const CommonTable: FC = (props) => {
size="small"
scroll={{ x: 1200, y: `calc(100vh - 109px)` }}
pagination={{
...paginationFun(pageInfo, sizeChange, onChange),
...paginationFun(pageInfo, sizeChange, onChange, i18n),
size: "default"
}}
summary={() => {
@ -85,7 +87,7 @@ const CommonTable: FC = (props) => {
_.map([...totalColumns], (item, index) => {
if (index === 0) {
return <Table.Summary.Cell index={0} key={index} align="center"><Text
type="danger"></Text></Table.Summary.Cell>;
type="danger">{i18n["总计"]}</Text></Table.Summary.Cell>;
}
return <Table.Summary.Cell index={index} key={index}>
<Text type="danger">{!_.isNil(sumRow[item.dataIndex]) ? sumRow[item.dataIndex] : "-"}</Text>

@ -14,6 +14,7 @@ const payrollFilesTable: FC = (props) => {
const [dataSource, setDataSource] = useState<Array<any>>([]);
const [showSumrow, setShowSumrow] = useState<boolean>(false);
const [selected, setSelected] = useState<Array<string>>([]);
const [i18n, setI18n] = useState<Partial<{}>>({});
useEffect(() => {
window.parent.postMessage({ type: "init" }, "*");
@ -33,10 +34,12 @@ const payrollFilesTable: FC = (props) => {
pageInfo,
showOperateBtn,
selectedKey,
selectedRowKeys
selectedRowKeys,
i18n
} = data;
const { current: pageNum, pageSize: size, total } = pageInfo;
setDataSource(dataSource);
setI18n(i18n);
setColumns(_.map(columns, item => {
if (item.dataIndex === "operate") {
return {
@ -53,7 +56,7 @@ const payrollFilesTable: FC = (props) => {
"*"
)}
>
{i18n["查看"]}
</Button>;
} else {
if (selectedKey === "pending") {
@ -67,7 +70,7 @@ const payrollFilesTable: FC = (props) => {
"*"
)}
>
{i18n["编辑"]}
</Button>
<Dropdown
overlayClassName={styles.moreIconWrapper}
@ -77,19 +80,19 @@ const payrollFilesTable: FC = (props) => {
<Button type="link" style={{ padding: "0", fontSize: 12 }}
onClick={() => handleMenuClick({ key: "payroll" }, r?.id)}
>
{i18n["设为发薪人员"]}
</Button>
</Menu.Item>
<Menu.Item key="deletePendingTodo">
<Button type="link" style={{ padding: "0", fontSize: 12 }}
onClick={() => handleMenuClick({ key: "deletePendingTodo" }, r?.id)}>
{i18n["删除待办"]}
</Button>
</Menu.Item>
</Menu>
}
>
<a><DownOutlined/></a>
<a>{i18n["更多"]}<DownOutlined/></a>
</Dropdown>
</Space>;
} else if (selectedKey === "fixed") {
@ -100,7 +103,7 @@ const payrollFilesTable: FC = (props) => {
},
"*"
)}>
{i18n["调薪"]}
</Button>;
} else if (selectedKey === "suspend") {
dom = <Space>
@ -111,7 +114,7 @@ const payrollFilesTable: FC = (props) => {
},
"*"
)}>
{i18n["编辑"]}
</Button>
<Dropdown
overlayClassName={styles.moreIconWrapper}
@ -121,19 +124,19 @@ const payrollFilesTable: FC = (props) => {
<Button type="link" style={{ padding: "0", fontSize: 12 }}
onClick={() => handleMenuClick({ key: "stopSalary" }, r?.id)}
>
{i18n["停薪"]}
</Button>
</Menu.Item>
<Menu.Item key="deletePendingTodo">
<Button type="link" style={{ padding: "0", fontSize: 12 }}
onClick={() => handleMenuClick({ key: "deleteSuspendTodo" }, r?.id)}>
{i18n["删除待办"]}
</Button>
</Menu.Item>
</Menu>
}
>
<a><DownOutlined/></a>
<a>{i18n["更多"]}<DownOutlined/></a>
</Dropdown>
</Space>;
} else {
@ -145,11 +148,11 @@ const payrollFilesTable: FC = (props) => {
},
"*"
)}>
{i18n["取消停薪"]}
</Button>
<Button type="link" style={{ padding: "0" }}
onClick={() => handleMenuClick({ key: "view" }, r as string)}>
{i18n["查看"]}
</Button>
</Space>;
}
@ -231,11 +234,11 @@ const payrollFilesTable: FC = (props) => {
<Table.Summary fixed>
<Table.Summary.Row>
{
sumRow.loading ? <Spin tip="加载中"/> :
sumRow.loading ? <Spin tip={i18n["加载中"]}/> :
_.map([{}, ...totalColumns], (item, index) => {
if (index === 0) {
return <Table.Summary.Cell index={0} key={index} align="center"><Text
type="danger"></Text></Table.Summary.Cell>;
type="danger">{i18n["总计"]}</Text></Table.Summary.Cell>;
}
return <Table.Summary.Cell index={index} key={index}>
<Text type="danger">{!_.isNil(sumRow[item.dataIndex]) ? sumRow[item.dataIndex] : "-"}</Text>

@ -12,6 +12,7 @@ const PreviewTable: FC = (props) => {
const [pageInfo, setPageInfo] = useState<IPage>(defaultPage);
const [sumRow, setSumRow] = useState<Partial<{}>>({});
const [showSumrow, setShowSumrow] = useState<boolean>(false);
const [i18n, setI18n] = useState<Partial<{}>>({});
useEffect(() => {
window.parent.postMessage({ type: "init" }, "*");
@ -23,8 +24,9 @@ const PreviewTable: FC = (props) => {
const receiveMessageFromIndex = async (event: any) => {
const data: any = exceptStr(event.data);
if (!_.isEmpty(data)) {
const { columns, dataSource, pageInfo, sumpayload } = data;
const { columns, dataSource, pageInfo, sumpayload, i18n } = data;
const { current: pageNum, pageSize: size, total } = pageInfo;
setI18n(i18n);
setDataSource(dataSource);
setColumns(columns);
setPageInfo({ pageNum, size, total });
@ -34,7 +36,7 @@ const PreviewTable: FC = (props) => {
const sumRowlist: any = await API.CalculateService.salaryBillSendSum(sumpayload);
if (sumRowlist.data.status) {
if (!_.isEmpty(sumRowlist.data.data.sumRow)) {
const tmpVSumRow= _.reduce(_.keys(sumRowlist.data.data.sumRow), (pre, cur) => (_.assign(pre, { [`${cur}_salaryItem`]: sumRowlist.data.data.sumRow[cur] })), {})
const tmpVSumRow = _.reduce(_.keys(sumRowlist.data.data.sumRow), (pre, cur) => (_.assign(pre, { [`${cur}_salaryItem`]: sumRowlist.data.data.sumRow[cur] })), {});
setSumRow(tmpVSumRow);
} else {
setSumRow({ [new Date().getTime()]: new Date().getTime() });
@ -65,7 +67,7 @@ const PreviewTable: FC = (props) => {
dataSource={dataSource}
size="small"
pagination={{
...paginationFun(pageInfo, sizeChange, onChange),
...paginationFun(pageInfo, sizeChange, onChange, i18n),
size: "default"
}}
scroll={{ x: 1200, y: "calc(100vh - 193px)" }}
@ -75,11 +77,11 @@ const PreviewTable: FC = (props) => {
<Table.Summary fixed>
<Table.Summary.Row>
{
_.isEmpty(sumRow) ? <Spin tip="加载中"/> :
_.isEmpty(sumRow) ? <Spin tip={i18n["加载中"]}/> :
_.map(columns, (item, index) => {
if (index === 0) {
return <Table.Summary.Cell index={0} key={index}><Text
type="danger"></Text></Table.Summary.Cell>;
type="danger">{i18n["总计"]}</Text></Table.Summary.Cell>;
}
return <Table.Summary.Cell index={index} key={index}>
<Text type="danger">{!_.isNil(sumRow[item.dataIndex]) ? sumRow[item.dataIndex] : "-"}</Text>

@ -9,6 +9,7 @@ const ReportTable: FC = (props) => {
const [sumRow, setSumRow] = useState<Partial<{}>>({});
const [dataSource, setDataSource] = useState<Array<any>>([]);
const [showSumrow, setShowSumrow] = useState<boolean>(false);
const [i18n, setI18n] = useState<Partial<{}>>({});
useEffect(() => {
window.parent.postMessage({ type: "init" }, "*");
@ -20,11 +21,12 @@ const ReportTable: FC = (props) => {
const receiveMessageFromIndex = (event: any) => {
const data: any = exceptStr(event.data);
if (!_.isEmpty(data)) {
const { columns, dataSource, countResult, showSum } = data;
const { columns, dataSource, countResult, showSum, i18n } = data;
setDataSource(dataSource);
setColumns(columns);
setShowSumrow(showSum);
setSumRow(countResult);
setI18n(i18n);
}
};
return <Table
@ -53,7 +55,7 @@ const ReportTable: FC = (props) => {
_.map([{}, ...totalColumns], (item, index) => {
if (index === 0) {
return <Table.Summary.Cell index={0} key={index} align="center"><Text
type="danger"></Text></Table.Summary.Cell>;
type="danger">{i18n["总计"]}</Text></Table.Summary.Cell>;
}
return <Table.Summary.Cell index={index} key={index} align="center">
<Text type="danger">{!_.isNil(sumRow[item.dataIndex]) ? sumRow[item.dataIndex] : "-"}</Text>

@ -11,6 +11,7 @@ const StandingbookTable: FC = (props) => {
const [columns, setColumns] = useState<Array<any>>([]);
const [dataSource, setDataSource] = useState<Array<any>>([]);
const [pageInfo, setPageInfo] = useState<IPage>(defaultPage);
const [i18n, setI18n] = useState<Partial<{}>>({});
const [sumRow, setSumRow] = useState<Partial<{}>>({});
const [showSumrow, setShowSumrow] = useState<boolean>(false);
@ -26,14 +27,14 @@ const StandingbookTable: FC = (props) => {
if (!_.isEmpty(data)) {
const {
columns, dataSource, pageInfo, showOperates, selectedRowKeys,
sumpayload, selectedKey
sumpayload, selectedKey, i18n
} = data;
const { current: pageNum, pageSize: size, total } = pageInfo;
const conventColumns = _.map(_.filter(columns, it => it.dataIndex !== "id"), item => {
const { dataIndex } = item;
if (dataIndex === "employeeId") {
return {
title: "姓名", dataIndex, fixed: "left", width: 150,
title: i18n["姓名"], dataIndex, fixed: "left", width: 150,
render: (_: any, record: Partial<any>) => (
<span>{record?.userName}</span>
)
@ -50,13 +51,13 @@ const StandingbookTable: FC = (props) => {
[
...conventColumns,
{
title: "操作",
title: i18n["操作"],
dataIndex: "operate",
fixed: "right",
width: 120,
render: (_: any, record: any) => {
return (
<Button type="link" onClick={() => handleEdit(record)}></Button>
<Button type="link" onClick={() => handleEdit(record)}>{i18n["编辑"]}</Button>
);
}
}
@ -64,6 +65,7 @@ const StandingbookTable: FC = (props) => {
);
setPageInfo({ pageNum, size, total });
setSelected(selectedRowKeys);
setI18n(i18n);
const confCode: any = await API.CalculateService.getSysconfcode({ code: "OPEN_ACCT_RESULT_SUM" });
setShowSumrow(confCode.data.status && confCode.data.data === "1");
if (confCode.data.status && confCode.data.data === "1") {
@ -126,7 +128,7 @@ const StandingbookTable: FC = (props) => {
size="small"
rowSelection={rowSelection}
pagination={{
...paginationFun(pageInfo, sizeChange, onChange),
...paginationFun(pageInfo, sizeChange, onChange, i18n),
size: "default"
}}
scroll={{ x: 1200, y: `calc(100vh - 135px)` }}
@ -136,11 +138,11 @@ const StandingbookTable: FC = (props) => {
<Table.Summary fixed>
<Table.Summary.Row>
{
_.isEmpty(sumRow) ? <Spin tip="加载中"/> :
_.isEmpty(sumRow) ? <Spin tip={i18n["加载中"]}/> :
_.map([{}, ...columns], (item, index) => {
if (index === 0) {
return <Table.Summary.Cell index={0} key={index} align="center"><Text
type="danger"></Text></Table.Summary.Cell>;
type="danger">{i18n["总计"]}</Text></Table.Summary.Cell>;
}
return <Table.Summary.Cell index={index} key={index}>
<Text type="danger">{!_.isNil(sumRow[item.dataIndex]) ? sumRow[item.dataIndex] : "-"}</Text>

Loading…
Cancel
Save