Compare commits

...

12 Commits

@ -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(() => {
@ -37,7 +38,7 @@ const AntdTable: FC<ITableProps> = (props) => {
}, []);
const getPCDataList = (params: any = {}) => {
let { type, listType, hasOperate = true, ...extraParams } = params;
let { type, listType, hasOperate = true, i18n: newI18n, ...extraParams } = params;
setLoading({ query: true });
setTab(type);
setUsertab(listType);
@ -48,7 +49,7 @@ const AntdTable: FC<ITableProps> = (props) => {
if (type === "PC") {
if (listType === "SA") {
const { columns = [], list = [], total, pageSize: size, pageNum } = dataCopy;
setColumns(getUserListColumns(columns));
setColumns(getUserListColumns(columns, newI18n));
setDataSource(list);
setPageParams({ ...pageParams, total, size, pageNum });
} else if (listType === "MA") {
@ -60,7 +61,7 @@ const AntdTable: FC<ITableProps> = (props) => {
} else {
const { columns = [], pageInfo = {} } = dataCopy;
const { list = [], total, pageSize: size, pageNum } = pageInfo;
setColumns(getColumns(columns, hasOperate));
setColumns(getColumns(columns, hasOperate, newI18n));
setDataSource(list);
setPageParams({ ...pageParams, total, size, pageNum });
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, {
key: "cz",
title: "操作",
title: newI18n["操作"],
render: (text: string, record: any) => {
return (
<Button type="link" style={{ padding: "0" }}
@ -97,7 +98,7 @@ const AntdTable: FC<ITableProps> = (props) => {
);
}}
>
{newI18n["删除"]}
</Button>
);
}
@ -129,7 +130,7 @@ const AntdTable: FC<ITableProps> = (props) => {
return tmpColumns;
};
//薪资核算页面列表
const getColumns = (column: any, hasOperate: boolean = true) => {
const getColumns = (column: any, hasOperate: boolean = true, newI18n: any) => {
let tmpColumns = [...column];
tmpColumns = tmpColumns.filter(item => item.hide == "FALSE").map((item, index) => {
let result = { ...item };
@ -147,7 +148,7 @@ const AntdTable: FC<ITableProps> = (props) => {
item.lockStatus && <span className={styles.titleIcon}>
{
item.lockStatus === "UNLOCK" && <LockOutlined
title="点击锁定所有解锁的项目值"
title={newI18n["点击锁定所有解锁的项目值"]}
onClick={() => {
window.parent.postMessage(
{
@ -161,7 +162,7 @@ const AntdTable: FC<ITableProps> = (props) => {
}
{
item.lockStatus !== "UNLOCK" && <UnlockOutlined
title="点击解锁所有锁定的项目值"
title={newI18n["点击解锁所有锁定的项目值"]}
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={newI18n["锁定的项目值"]}/> : null
}
</span>;
};
@ -219,7 +220,7 @@ const AntdTable: FC<ITableProps> = (props) => {
{
child.lockStatus === "UNLOCK" &&
<LockOutlined
title="点击锁定所有解锁的项目值"
title={newI18n["点击锁定所有解锁的项目值"]}
onClick={() => {
window.parent.postMessage(
{
@ -234,7 +235,7 @@ const AntdTable: FC<ITableProps> = (props) => {
{
child.lockStatus !== "UNLOCK" &&
<UnlockOutlined
title="点击解锁所有锁定的项目值"
title={newI18n["点击解锁所有锁定的项目值"]}
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={newI18n["锁定的项目值"]}/> : null
}
</span>;
};
@ -273,7 +274,7 @@ const AntdTable: FC<ITableProps> = (props) => {
return result;
});
hasOperate && tmpColumns.push({
title: "操作",
title: newI18n["操作"],
key: "cz",
width: "100px",
fixed: "right",
@ -286,7 +287,7 @@ const AntdTable: FC<ITableProps> = (props) => {
},
"*"
);
}}></Button>;
}}>{newI18n["编辑"]}</Button>;
}
});
return tmpColumns;
@ -295,8 +296,9 @@ const AntdTable: FC<ITableProps> = (props) => {
setDataSource([]);
const data: any = exceptStr(event.data);
if (!_.isEmpty(data)) {
const { selectedRowKeys, ...extraData } = data;
getPCDataList({ ...extraData, ...pageParams });
const { selectedRowKeys, i18n, ...extraData } = data;
setI18n(i18n);
getPCDataList({ ...extraData, ...pageParams, i18n });
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>

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

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