泛微薪资核算iframe表格

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

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

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

@ -11,6 +11,7 @@ const CommonTable: FC = (props) => {
const [pageInfo, setPageInfo] = useState<IPage>(defaultPage); const [pageInfo, setPageInfo] = useState<IPage>(defaultPage);
const [dataSource, setDataSource] = useState<Array<any>>([]); const [dataSource, setDataSource] = useState<Array<any>>([]);
const [showSumrow, setShowSumrow] = useState<boolean>(false); const [showSumrow, setShowSumrow] = useState<boolean>(false);
const [i18n, setI18n] = useState<Partial<{}>>({});
useEffect(() => { useEffect(() => {
window.parent.postMessage({ type: "init" }, "*"); window.parent.postMessage({ type: "init" }, "*");
@ -22,9 +23,10 @@ const CommonTable: FC = (props) => {
const receiveMessageFromIndex = (event: any) => { const receiveMessageFromIndex = (event: any) => {
const data: any = exceptStr(event.data); const data: any = exceptStr(event.data);
if (!_.isEmpty(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; const { current: pageNum, pageSize: size, total } = pageInfo;
setDataSource(dataSource); setDataSource(dataSource);
setI18n(i18n);
setColumns(_.map(columns, item => { setColumns(_.map(columns, item => {
if (item.dataIndex === "salarySob") { if (item.dataIndex === "salarySob") {
return { return {
@ -32,7 +34,7 @@ const CommonTable: FC = (props) => {
render: (text: string, r: { acctTimes?: number }) => { render: (text: string, r: { acctTimes?: number }) => {
return <div className={styles.customSpan} title={text}> return <div className={styles.customSpan} title={text}>
<span className={styles.title}>{text}</span> <span className={styles.title}>{text}</span>
<Tag color="#4d7ad8">{`${r?.acctTimes}`}</Tag> <Tag color="#4d7ad8">{`${i18n["第"]}${r?.acctTimes}${i18n["次"]}`}</Tag>
</div>; </div>;
} }
}; };
@ -65,7 +67,7 @@ const CommonTable: FC = (props) => {
size="small" size="small"
scroll={{ x: 1200, y: `calc(100vh - 109px)` }} scroll={{ x: 1200, y: `calc(100vh - 109px)` }}
pagination={{ pagination={{
...paginationFun(pageInfo, sizeChange, onChange), ...paginationFun(pageInfo, sizeChange, onChange, i18n),
size: "default" size: "default"
}} }}
summary={() => { summary={() => {
@ -85,7 +87,7 @@ const CommonTable: FC = (props) => {
_.map([...totalColumns], (item, index) => { _.map([...totalColumns], (item, index) => {
if (index === 0) { if (index === 0) {
return <Table.Summary.Cell index={0} key={index} align="center"><Text 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}> return <Table.Summary.Cell index={index} key={index}>
<Text type="danger">{!_.isNil(sumRow[item.dataIndex]) ? sumRow[item.dataIndex] : "-"}</Text> <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 [dataSource, setDataSource] = useState<Array<any>>([]);
const [showSumrow, setShowSumrow] = useState<boolean>(false); const [showSumrow, setShowSumrow] = useState<boolean>(false);
const [selected, setSelected] = useState<Array<string>>([]); const [selected, setSelected] = useState<Array<string>>([]);
const [i18n, setI18n] = useState<Partial<{}>>({});
useEffect(() => { useEffect(() => {
window.parent.postMessage({ type: "init" }, "*"); window.parent.postMessage({ type: "init" }, "*");
@ -33,10 +34,12 @@ const payrollFilesTable: FC = (props) => {
pageInfo, pageInfo,
showOperateBtn, showOperateBtn,
selectedKey, selectedKey,
selectedRowKeys selectedRowKeys,
i18n
} = data; } = data;
const { current: pageNum, pageSize: size, total } = pageInfo; const { current: pageNum, pageSize: size, total } = pageInfo;
setDataSource(dataSource); setDataSource(dataSource);
setI18n(i18n);
setColumns(_.map(columns, item => { setColumns(_.map(columns, item => {
if (item.dataIndex === "operate") { if (item.dataIndex === "operate") {
return { return {
@ -53,7 +56,7 @@ const payrollFilesTable: FC = (props) => {
"*" "*"
)} )}
> >
{i18n["查看"]}
</Button>; </Button>;
} else { } else {
if (selectedKey === "pending") { if (selectedKey === "pending") {
@ -67,7 +70,7 @@ const payrollFilesTable: FC = (props) => {
"*" "*"
)} )}
> >
{i18n["编辑"]}
</Button> </Button>
<Dropdown <Dropdown
overlayClassName={styles.moreIconWrapper} overlayClassName={styles.moreIconWrapper}
@ -77,19 +80,19 @@ const payrollFilesTable: FC = (props) => {
<Button type="link" style={{ padding: "0", fontSize: 12 }} <Button type="link" style={{ padding: "0", fontSize: 12 }}
onClick={() => handleMenuClick({ key: "payroll" }, r?.id)} onClick={() => handleMenuClick({ key: "payroll" }, r?.id)}
> >
{i18n["设为发薪人员"]}
</Button> </Button>
</Menu.Item> </Menu.Item>
<Menu.Item key="deletePendingTodo"> <Menu.Item key="deletePendingTodo">
<Button type="link" style={{ padding: "0", fontSize: 12 }} <Button type="link" style={{ padding: "0", fontSize: 12 }}
onClick={() => handleMenuClick({ key: "deletePendingTodo" }, r?.id)}> onClick={() => handleMenuClick({ key: "deletePendingTodo" }, r?.id)}>
{i18n["删除待办"]}
</Button> </Button>
</Menu.Item> </Menu.Item>
</Menu> </Menu>
} }
> >
<a><DownOutlined/></a> <a>{i18n["更多"]}<DownOutlined/></a>
</Dropdown> </Dropdown>
</Space>; </Space>;
} else if (selectedKey === "fixed") { } else if (selectedKey === "fixed") {
@ -100,7 +103,7 @@ const payrollFilesTable: FC = (props) => {
}, },
"*" "*"
)}> )}>
{i18n["调薪"]}
</Button>; </Button>;
} else if (selectedKey === "suspend") { } else if (selectedKey === "suspend") {
dom = <Space> dom = <Space>
@ -111,7 +114,7 @@ const payrollFilesTable: FC = (props) => {
}, },
"*" "*"
)}> )}>
{i18n["编辑"]}
</Button> </Button>
<Dropdown <Dropdown
overlayClassName={styles.moreIconWrapper} overlayClassName={styles.moreIconWrapper}
@ -121,19 +124,19 @@ const payrollFilesTable: FC = (props) => {
<Button type="link" style={{ padding: "0", fontSize: 12 }} <Button type="link" style={{ padding: "0", fontSize: 12 }}
onClick={() => handleMenuClick({ key: "stopSalary" }, r?.id)} onClick={() => handleMenuClick({ key: "stopSalary" }, r?.id)}
> >
{i18n["停薪"]}
</Button> </Button>
</Menu.Item> </Menu.Item>
<Menu.Item key="deletePendingTodo"> <Menu.Item key="deletePendingTodo">
<Button type="link" style={{ padding: "0", fontSize: 12 }} <Button type="link" style={{ padding: "0", fontSize: 12 }}
onClick={() => handleMenuClick({ key: "deleteSuspendTodo" }, r?.id)}> onClick={() => handleMenuClick({ key: "deleteSuspendTodo" }, r?.id)}>
{i18n["删除待办"]}
</Button> </Button>
</Menu.Item> </Menu.Item>
</Menu> </Menu>
} }
> >
<a><DownOutlined/></a> <a>{i18n["更多"]}<DownOutlined/></a>
</Dropdown> </Dropdown>
</Space>; </Space>;
} else { } else {
@ -145,11 +148,11 @@ const payrollFilesTable: FC = (props) => {
}, },
"*" "*"
)}> )}>
{i18n["取消停薪"]}
</Button> </Button>
<Button type="link" style={{ padding: "0" }} <Button type="link" style={{ padding: "0" }}
onClick={() => handleMenuClick({ key: "view" }, r as string)}> onClick={() => handleMenuClick({ key: "view" }, r as string)}>
{i18n["查看"]}
</Button> </Button>
</Space>; </Space>;
} }
@ -231,11 +234,11 @@ const payrollFilesTable: FC = (props) => {
<Table.Summary fixed> <Table.Summary fixed>
<Table.Summary.Row> <Table.Summary.Row>
{ {
sumRow.loading ? <Spin tip="加载中"/> : sumRow.loading ? <Spin tip={i18n["加载中"]}/> :
_.map([{},...totalColumns], (item, index) => { _.map([{}, ...totalColumns], (item, index) => {
if (index === 0) { if (index === 0) {
return <Table.Summary.Cell index={0} key={index} align="center"><Text 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}> return <Table.Summary.Cell index={index} key={index}>
<Text type="danger">{!_.isNil(sumRow[item.dataIndex]) ? sumRow[item.dataIndex] : "-"}</Text> <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 [pageInfo, setPageInfo] = useState<IPage>(defaultPage);
const [sumRow, setSumRow] = useState<Partial<{}>>({}); const [sumRow, setSumRow] = useState<Partial<{}>>({});
const [showSumrow, setShowSumrow] = useState<boolean>(false); const [showSumrow, setShowSumrow] = useState<boolean>(false);
const [i18n, setI18n] = useState<Partial<{}>>({});
useEffect(() => { useEffect(() => {
window.parent.postMessage({ type: "init" }, "*"); window.parent.postMessage({ type: "init" }, "*");
@ -23,8 +24,9 @@ const PreviewTable: FC = (props) => {
const receiveMessageFromIndex = async (event: any) => { const receiveMessageFromIndex = async (event: any) => {
const data: any = exceptStr(event.data); const data: any = exceptStr(event.data);
if (!_.isEmpty(data)) { if (!_.isEmpty(data)) {
const { columns, dataSource, pageInfo, sumpayload } = data; const { columns, dataSource, pageInfo, sumpayload, i18n } = data;
const { current: pageNum, pageSize: size, total } = pageInfo; const { current: pageNum, pageSize: size, total } = pageInfo;
setI18n(i18n);
setDataSource(dataSource); setDataSource(dataSource);
setColumns(columns); setColumns(columns);
setPageInfo({ pageNum, size, total }); setPageInfo({ pageNum, size, total });
@ -34,7 +36,7 @@ const PreviewTable: FC = (props) => {
const sumRowlist: any = await API.CalculateService.salaryBillSendSum(sumpayload); const sumRowlist: any = await API.CalculateService.salaryBillSendSum(sumpayload);
if (sumRowlist.data.status) { if (sumRowlist.data.status) {
if (!_.isEmpty(sumRowlist.data.data.sumRow)) { 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); setSumRow(tmpVSumRow);
} else { } else {
setSumRow({ [new Date().getTime()]: new Date().getTime() }); setSumRow({ [new Date().getTime()]: new Date().getTime() });
@ -65,7 +67,7 @@ const PreviewTable: FC = (props) => {
dataSource={dataSource} dataSource={dataSource}
size="small" size="small"
pagination={{ pagination={{
...paginationFun(pageInfo, sizeChange, onChange), ...paginationFun(pageInfo, sizeChange, onChange, i18n),
size: "default" size: "default"
}} }}
scroll={{ x: 1200, y: "calc(100vh - 193px)" }} scroll={{ x: 1200, y: "calc(100vh - 193px)" }}
@ -75,11 +77,11 @@ const PreviewTable: FC = (props) => {
<Table.Summary fixed> <Table.Summary fixed>
<Table.Summary.Row> <Table.Summary.Row>
{ {
_.isEmpty(sumRow) ? <Spin tip="加载中"/> : _.isEmpty(sumRow) ? <Spin tip={i18n["加载中"]}/> :
_.map(columns, (item, index) => { _.map(columns, (item, index) => {
if (index === 0) { if (index === 0) {
return <Table.Summary.Cell index={0} key={index}><Text 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}> return <Table.Summary.Cell index={index} key={index}>
<Text type="danger">{!_.isNil(sumRow[item.dataIndex]) ? sumRow[item.dataIndex] : "-"}</Text> <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 [sumRow, setSumRow] = useState<Partial<{}>>({});
const [dataSource, setDataSource] = useState<Array<any>>([]); const [dataSource, setDataSource] = useState<Array<any>>([]);
const [showSumrow, setShowSumrow] = useState<boolean>(false); const [showSumrow, setShowSumrow] = useState<boolean>(false);
const [i18n, setI18n] = useState<Partial<{}>>({});
useEffect(() => { useEffect(() => {
window.parent.postMessage({ type: "init" }, "*"); window.parent.postMessage({ type: "init" }, "*");
@ -20,11 +21,12 @@ const ReportTable: FC = (props) => {
const receiveMessageFromIndex = (event: any) => { const receiveMessageFromIndex = (event: any) => {
const data: any = exceptStr(event.data); const data: any = exceptStr(event.data);
if (!_.isEmpty(data)) { if (!_.isEmpty(data)) {
const { columns, dataSource, countResult, showSum } = data; const { columns, dataSource, countResult, showSum, i18n } = data;
setDataSource(dataSource); setDataSource(dataSource);
setColumns(columns); setColumns(columns);
setShowSumrow(showSum); setShowSumrow(showSum);
setSumRow(countResult); setSumRow(countResult);
setI18n(i18n);
} }
}; };
return <Table return <Table
@ -53,7 +55,7 @@ const ReportTable: FC = (props) => {
_.map([{}, ...totalColumns], (item, index) => { _.map([{}, ...totalColumns], (item, index) => {
if (index === 0) { if (index === 0) {
return <Table.Summary.Cell index={0} key={index} align="center"><Text 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"> return <Table.Summary.Cell index={index} key={index} align="center">
<Text type="danger">{!_.isNil(sumRow[item.dataIndex]) ? sumRow[item.dataIndex] : "-"}</Text> <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 [columns, setColumns] = useState<Array<any>>([]);
const [dataSource, setDataSource] = useState<Array<any>>([]); const [dataSource, setDataSource] = useState<Array<any>>([]);
const [pageInfo, setPageInfo] = useState<IPage>(defaultPage); const [pageInfo, setPageInfo] = useState<IPage>(defaultPage);
const [i18n, setI18n] = useState<Partial<{}>>({});
const [sumRow, setSumRow] = useState<Partial<{}>>({}); const [sumRow, setSumRow] = useState<Partial<{}>>({});
const [showSumrow, setShowSumrow] = useState<boolean>(false); const [showSumrow, setShowSumrow] = useState<boolean>(false);
@ -26,14 +27,14 @@ const StandingbookTable: FC = (props) => {
if (!_.isEmpty(data)) { if (!_.isEmpty(data)) {
const { const {
columns, dataSource, pageInfo, showOperates, selectedRowKeys, columns, dataSource, pageInfo, showOperates, selectedRowKeys,
sumpayload, selectedKey sumpayload, selectedKey, i18n
} = data; } = data;
const { current: pageNum, pageSize: size, total } = pageInfo; const { current: pageNum, pageSize: size, total } = pageInfo;
const conventColumns = _.map(_.filter(columns, it => it.dataIndex !== "id"), item => { const conventColumns = _.map(_.filter(columns, it => it.dataIndex !== "id"), item => {
const { dataIndex } = item; const { dataIndex } = item;
if (dataIndex === "employeeId") { if (dataIndex === "employeeId") {
return { return {
title: "姓名", dataIndex, fixed: "left", width: 150, title: i18n["姓名"], dataIndex, fixed: "left", width: 150,
render: (_: any, record: Partial<any>) => ( render: (_: any, record: Partial<any>) => (
<span>{record?.userName}</span> <span>{record?.userName}</span>
) )
@ -50,13 +51,13 @@ const StandingbookTable: FC = (props) => {
[ [
...conventColumns, ...conventColumns,
{ {
title: "操作", title: i18n["操作"],
dataIndex: "operate", dataIndex: "operate",
fixed: "right", fixed: "right",
width: 120, width: 120,
render: (_: any, record: any) => { render: (_: any, record: any) => {
return ( 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 }); setPageInfo({ pageNum, size, total });
setSelected(selectedRowKeys); setSelected(selectedRowKeys);
setI18n(i18n);
const confCode: any = await API.CalculateService.getSysconfcode({ code: "OPEN_ACCT_RESULT_SUM" }); const confCode: any = await API.CalculateService.getSysconfcode({ code: "OPEN_ACCT_RESULT_SUM" });
setShowSumrow(confCode.data.status && confCode.data.data === "1"); setShowSumrow(confCode.data.status && confCode.data.data === "1");
if (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" size="small"
rowSelection={rowSelection} rowSelection={rowSelection}
pagination={{ pagination={{
...paginationFun(pageInfo, sizeChange, onChange), ...paginationFun(pageInfo, sizeChange, onChange, i18n),
size: "default" size: "default"
}} }}
scroll={{ x: 1200, y: `calc(100vh - 135px)` }} scroll={{ x: 1200, y: `calc(100vh - 135px)` }}
@ -136,11 +138,11 @@ const StandingbookTable: FC = (props) => {
<Table.Summary fixed> <Table.Summary fixed>
<Table.Summary.Row> <Table.Summary.Row>
{ {
_.isEmpty(sumRow) ? <Spin tip="加载中"/> : _.isEmpty(sumRow) ? <Spin tip={i18n["加载中"]}/> :
_.map([{}, ...columns], (item, index) => { _.map([{}, ...columns], (item, index) => {
if (index === 0) { if (index === 0) {
return <Table.Summary.Cell index={0} key={index} align="center"><Text 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}> return <Table.Summary.Cell index={index} key={index}>
<Text type="danger">{!_.isNil(sumRow[item.dataIndex]) ? sumRow[item.dataIndex] : "-"}</Text> <Text type="danger">{!_.isNil(sumRow[item.dataIndex]) ? sumRow[item.dataIndex] : "-"}</Text>

Loading…
Cancel
Save