Compare commits

...

12 Commits

@ -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(() => {
@ -37,7 +38,7 @@ const AntdTable: FC<ITableProps> = (props) => {
}, []); }, []);
const getPCDataList = (params: any = {}) => { const getPCDataList = (params: any = {}) => {
let { type, listType, hasOperate = true, ...extraParams } = params; let { type, listType, hasOperate = true, i18n: newI18n, ...extraParams } = params;
setLoading({ query: true }); setLoading({ query: true });
setTab(type); setTab(type);
setUsertab(listType); setUsertab(listType);
@ -48,7 +49,7 @@ const AntdTable: FC<ITableProps> = (props) => {
if (type === "PC") { if (type === "PC") {
if (listType === "SA") { if (listType === "SA") {
const { columns = [], list = [], total, pageSize: size, pageNum } = dataCopy; const { columns = [], list = [], total, pageSize: size, pageNum } = dataCopy;
setColumns(getUserListColumns(columns)); setColumns(getUserListColumns(columns, newI18n));
setDataSource(list); setDataSource(list);
setPageParams({ ...pageParams, total, size, pageNum }); setPageParams({ ...pageParams, total, size, pageNum });
} else if (listType === "MA") { } else if (listType === "MA") {
@ -60,7 +61,7 @@ const AntdTable: FC<ITableProps> = (props) => {
} else { } else {
const { columns = [], pageInfo = {} } = dataCopy; const { columns = [], pageInfo = {} } = dataCopy;
const { list = [], total, pageSize: size, pageNum } = pageInfo; const { list = [], total, pageSize: size, pageNum } = pageInfo;
setColumns(getColumns(columns, hasOperate)); setColumns(getColumns(columns, hasOperate, newI18n));
setDataSource(list); setDataSource(list);
setPageParams({ ...pageParams, total, size, pageNum }); setPageParams({ ...pageParams, total, size, pageNum });
const confCode: any = await API.CalculateService.getSysconfcode({ code: "OPEN_ACCT_RESULT_SUM" }); const confCode: any = await API.CalculateService.getSysconfcode({ code: "OPEN_ACCT_RESULT_SUM" });
@ -80,10 +81,10 @@ const AntdTable: FC<ITableProps> = (props) => {
} }
}); });
}; };
const getUserListColumns = (acctemployeeListColumns: any) => { const getUserListColumns = (acctemployeeListColumns: any, newI18n:any) => {
let tmpColumns = [...acctemployeeListColumns, { let tmpColumns = [...acctemployeeListColumns, {
key: "cz", key: "cz",
title: "操作", title: newI18n["操作"],
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) => {
); );
}} }}
> >
{newI18n["删除"]}
</Button> </Button>
); );
} }
@ -129,7 +130,7 @@ const AntdTable: FC<ITableProps> = (props) => {
return tmpColumns; return tmpColumns;
}; };
//薪资核算页面列表 //薪资核算页面列表
const getColumns = (column: any, hasOperate: boolean = true) => { const getColumns = (column: any, hasOperate: boolean = true, newI18n: any) => {
let tmpColumns = [...column]; let tmpColumns = [...column];
tmpColumns = tmpColumns.filter(item => item.hide == "FALSE").map((item, index) => { tmpColumns = tmpColumns.filter(item => item.hide == "FALSE").map((item, index) => {
let result = { ...item }; let result = { ...item };
@ -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={newI18n["点击锁定所有解锁的项目值"]}
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={newI18n["点击解锁所有锁定的项目值"]}
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={newI18n["锁定的项目值"]}/> : null
} }
</span>; </span>;
}; };
@ -219,7 +220,7 @@ const AntdTable: FC<ITableProps> = (props) => {
{ {
child.lockStatus === "UNLOCK" && child.lockStatus === "UNLOCK" &&
<LockOutlined <LockOutlined
title="点击锁定所有解锁的项目值" title={newI18n["点击锁定所有解锁的项目值"]}
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={newI18n["点击解锁所有锁定的项目值"]}
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={newI18n["锁定的项目值"]}/> : null
} }
</span>; </span>;
}; };
@ -273,7 +274,7 @@ const AntdTable: FC<ITableProps> = (props) => {
return result; return result;
}); });
hasOperate && tmpColumns.push({ hasOperate && tmpColumns.push({
title: "操作", title: newI18n["操作"],
key: "cz", key: "cz",
width: "100px", width: "100px",
fixed: "right", fixed: "right",
@ -286,7 +287,7 @@ const AntdTable: FC<ITableProps> = (props) => {
}, },
"*" "*"
); );
}}></Button>; }}>{newI18n["编辑"]}</Button>;
} }
}); });
return tmpColumns; return tmpColumns;
@ -295,8 +296,9 @@ 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;
getPCDataList({ ...extraData, ...pageParams }); setI18n(i18n);
getPCDataList({ ...extraData, ...pageParams, i18n });
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>

@ -5,6 +5,7 @@ import { convertColumns, exceptStr, paginationFun } from "@/utils/common";
import styles from "@/pages/atdTable/components/index.less"; import styles from "@/pages/atdTable/components/index.less";
import { defaultPage, IPage } from "@/common/types"; import { defaultPage, IPage } from "@/common/types";
import cs from "classnames"; import cs from "classnames";
import { Storage } from "@/utils";
const { Text } = Typography; const { Text } = Typography;
const payrollFilesTable: FC = (props) => { const payrollFilesTable: FC = (props) => {
@ -14,6 +15,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" }, "*");
@ -34,14 +36,17 @@ const payrollFilesTable: FC = (props) => {
showOperateBtn, showOperateBtn,
selectedKey, selectedKey,
selectedRowKeys, selectedRowKeys,
salaryArchiveDelete salaryArchiveDelete,
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 {
...item, ...item,
width: Storage.local.get("languageidweaver") == "8" ? 210 : item.width,
render: (text: string, r: { id?: string }) => { render: (text: string, r: { id?: string }) => {
let dom = null; let dom = null;
if (!showOperateBtn) { if (!showOperateBtn) {
@ -54,7 +59,7 @@ const payrollFilesTable: FC = (props) => {
"*" "*"
)} )}
> >
{i18n["查看"]}
</Button>; </Button>;
} else { } else {
if (selectedKey === "pending") { if (selectedKey === "pending") {
@ -68,12 +73,12 @@ const payrollFilesTable: FC = (props) => {
"*" "*"
)} )}
> >
{i18n["编辑"]}
</Button> </Button>
<Button type="link" style={{ padding: "0" }} <Button type="link" style={{ padding: "0" }}
onClick={() => handleMenuClick({ key: "payroll" }, r?.id)} onClick={() => handleMenuClick({ key: "payroll" }, r?.id)}
> >
{i18n["设为发薪人员"]}
</Button> </Button>
<Dropdown <Dropdown
menu={{ menu={{
@ -81,20 +86,20 @@ const payrollFilesTable: FC = (props) => {
{ {
key: "deletePendingTodo", key: "deletePendingTodo",
label: <a onClick={() => handleMenuClick({ key: "deletePendingTodo" }, r?.id)}> label: <a onClick={() => handleMenuClick({ key: "deletePendingTodo" }, r?.id)}>
{i18n["删除待办"]}
</a> </a>
}, },
{ {
key: "deleteAchives", key: "deleteAchives",
label: <a onClick={() => handleMenuClick({ key: "deleteAchives" }, r?.id)}> label: <a onClick={() => handleMenuClick({ key: "deleteAchives" }, r?.id)}>
{i18n["删除档案"]}
</a> </a>
} }
] : [ ] : [
{ {
key: "deletePendingTodo", key: "deletePendingTodo",
label: <a onClick={() => handleMenuClick({ key: "deletePendingTodo" }, r?.id)}> label: <a onClick={() => handleMenuClick({ key: "deletePendingTodo" }, r?.id)}>
{i18n["删除待办"]}
</a> </a>
} }
] ]
@ -112,7 +117,7 @@ const payrollFilesTable: FC = (props) => {
}, },
"*" "*"
)}> )}>
{i18n["调薪"]}
</Button>; </Button>;
} else if (selectedKey === "suspend") { } else if (selectedKey === "suspend") {
dom = <Space> dom = <Space>
@ -123,12 +128,12 @@ const payrollFilesTable: FC = (props) => {
}, },
"*" "*"
)}> )}>
{i18n["编辑"]}
</Button> </Button>
<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>
<Dropdown <Dropdown
menu={{ menu={{
@ -136,7 +141,7 @@ const payrollFilesTable: FC = (props) => {
{ {
key: "deleteSuspendTodo", key: "deleteSuspendTodo",
label: <a onClick={() => handleMenuClick({ key: "deleteSuspendTodo" }, r?.id)}> label: <a onClick={() => handleMenuClick({ key: "deleteSuspendTodo" }, r?.id)}>
{i18n["删除待办"]}
</a> </a>
} }
] ]
@ -155,11 +160,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>
{ {
salaryArchiveDelete === "1" && salaryArchiveDelete === "1" &&
@ -169,7 +174,7 @@ const payrollFilesTable: FC = (props) => {
{ {
key: "deleteAchives", key: "deleteAchives",
label: <a onClick={() => handleMenuClick({ key: "deleteAchives" }, r?.id)}> label: <a onClick={() => handleMenuClick({ key: "deleteAchives" }, r?.id)}>
{i18n["删除档案"]}
</a> </a>
} }
] ]
@ -242,7 +247,7 @@ const payrollFilesTable: FC = (props) => {
rowSelection={rowSelection} rowSelection={rowSelection}
scroll={{ x: 1200, y: !showSumrow ? `calc(100vh - 100px)` : "calc(100vh - 129px)" }} scroll={{ x: 1200, y: !showSumrow ? `calc(100vh - 100px)` : "calc(100vh - 129px)" }}
pagination={{ pagination={{
...paginationFun(pageInfo, sizeChange, onChange), ...paginationFun(pageInfo, sizeChange, onChange, i18n),
size: "default" size: "default"
}} }}
summary={() => { summary={() => {
@ -259,11 +264,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,10 +21,11 @@ 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);
setShowSumrow(showSum); setShowSumrow(showSum);
setSumRow(countResult); setSumRow(countResult);
setI18n(i18n);
setColumns(_.map(columns, (item, index: number) => { setColumns(_.map(columns, (item, index: number) => {
if (index === 0) { if (index === 0) {
return { ...item, fixed: "left", ellipsis: true }; return { ...item, fixed: "left", ellipsis: true };

@ -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