Merge branch 'master' into feature/V2-系统多语言

# Conflicts:
#	src/pages/payrollFilesTable/index.tsx
#	src/pages/reportTable/index.tsx
feature/V2-系统多语言
黎永顺 2 years ago
commit fb8acee257

@ -21,11 +21,10 @@
},
"dependencies": {
"@ant-design/pro-layout": "6.32.1",
"@formily/antd": "^2.0.6",
"@types/lodash": "^4.14.172",
"@ztree/ztree_v3": "^3.5.42",
"ahooks": "^3.1.3",
"antd": "^4.17.3",
"antd": "^4.24.10",
"axios": "^0.22.0",
"fbemitter": "^3.0.0",
"js-base64": "^3.6.1",
@ -57,7 +56,6 @@
"@types/react": "^17.0.2",
"@types/react-dom": "^17.0.2",
"@umijs/plugin-access": "2.4.2",
"umi-plugin-authorize": "^2.8.12",
"@umijs/plugin-dva": "^0.13.0",
"@umijs/plugin-initial-state": "^2.4.0",
"@umijs/plugin-locale": "^0.15.0",
@ -70,6 +68,7 @@
"prettier": "^2.2.0",
"typescript": "^4.3.5",
"umi": "^3.5.20",
"umi-plugin-authorize": "^2.8.12",
"yorkie": "^2.0.0"
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -187,6 +187,18 @@
}
}
.ant-dropdown-menu-title-content {
a {
font-size: 12px;
color: #333;
}
a:hover {
color: #00a9ff;
text-decoration: underline;
}
}
.ant-popover-inner {
min-width: 106px
}
@ -194,16 +206,6 @@
.ant-popover-inner-content {
padding: 0;
.ant-menu {
.ant-menu-item {
border-right: none;
height: 30px;
line-height: 30px;
text-align: center;
padding: 0;
font-size: 12px;
}
}
}
}
}

@ -1,7 +1,7 @@
import React, { FC, useEffect, useState } from "react";
import { Button, Dropdown, Menu, Space, Spin, Table, Typography } from "antd";
import { DownOutlined } from "@ant-design/icons";
import { exceptStr, paginationFun } from "@/utils/common";
import { Button, Dropdown, Space, Spin, Table, Typography } from "antd";
import { MoreOutlined } from "@ant-design/icons";
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";
@ -35,6 +35,7 @@ const payrollFilesTable: FC = (props) => {
showOperateBtn,
selectedKey,
selectedRowKeys,
salaryArchiveDelete,
i18n
} = data;
const { current: pageNum, pageSize: size, total } = pageInfo;
@ -72,27 +73,38 @@ const payrollFilesTable: FC = (props) => {
>
{i18n["编辑"]}
</Button>
<Dropdown
overlayClassName={styles.moreIconWrapper}
overlay={
<Menu>
<Menu.Item key="payroll">
<Button type="link" style={{ padding: "0", fontSize: 12 }}
<Button type="link" style={{ padding: "0" }}
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)}>
<Dropdown
menu={{
items: salaryArchiveDelete === "1" ? [
{
key: "deletePendingTodo",
label: <a onClick={() => handleMenuClick({ key: "deletePendingTodo" }, r?.id)}>
{i18n["删除待办"]}
</Button>
</Menu.Item>
</Menu>
</a>
},
{
key: "deleteAchives",
label: <a onClick={() => handleMenuClick({ key: "deleteAchives" }, r?.id)}>
</a>
}
] : [
{
key: "deletePendingTodo",
label: <a onClick={() => handleMenuClick({ key: "deletePendingTodo" }, r?.id)}>
{i18n["删除待办"]}
</a>
}
]
}} placement="bottomRight"
overlayClassName={styles.moreIconWrapper}
>
<a>{i18n["更多"]}<DownOutlined/></a>
<MoreOutlined style={{ fontSize: 16 }}/>
</Dropdown>
</Space>;
} else if (selectedKey === "fixed") {
@ -116,27 +128,25 @@ const payrollFilesTable: FC = (props) => {
)}>
{i18n["编辑"]}
</Button>
<Dropdown
overlayClassName={styles.moreIconWrapper}
overlay={
<Menu>
<Menu.Item key="payroll">
<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)}>
<Dropdown
menu={{
items: [
{
key: "deleteSuspendTodo",
label: <a onClick={() => handleMenuClick({ key: "deleteSuspendTodo" }, r?.id)}>
{i18n["删除待办"]}
</Button>
</Menu.Item>
</Menu>
</a>
}
]
}} placement="bottomRight"
overlayClassName={styles.moreIconWrapper}
>
<a>{i18n["更多"]}<DownOutlined/></a>
<MoreOutlined style={{ fontSize: 16 }}/>
</Dropdown>
</Space>;
} else {
@ -154,6 +164,23 @@ const payrollFilesTable: FC = (props) => {
onClick={() => handleMenuClick({ key: "view" }, r as string)}>
{i18n["查看"]}
</Button>
{
salaryArchiveDelete === "1" &&
<Dropdown placement="bottomRight" overlayClassName={styles.moreIconWrapper}
menu={{
items: [
{
key: "deleteAchives",
label: <a onClick={() => handleMenuClick({ key: "deleteAchives" }, r?.id)}>
</a>
}
]
}}
>
<MoreOutlined style={{ fontSize: 16 }}/>
</Dropdown>
}
</Space>;
}
}
@ -161,7 +188,7 @@ const payrollFilesTable: FC = (props) => {
}
};
}
return { ...item };
return _.omitBy({ ...item }, item => !item);
}));
setShowSumrow(showSum);
setSumRow(_.isEmpty(countResult) ? { [new Date().getTime()]: new Date().getTime() } : countResult);
@ -205,13 +232,14 @@ const payrollFilesTable: FC = (props) => {
);
}
};
return <Table
rowKey="id"
className={cs({
[styles.tableWrapper]: true,
[styles.tableTotalWrapper]: true
})}
columns={columns}
columns={!_.isEmpty(columns) && convertColumns(columns, _.findIndex(columns, ["dataIndex", "operate"]), Object.keys(columns).length)}
dataSource={dataSource}
size="small"
rowSelection={rowSelection}

@ -1,5 +1,5 @@
import React, { FC, useEffect, useState } from "react";
import { Table, Typography } from "antd";
import { Button, Table, Typography } from "antd";
import { exceptStr } from "@/utils/common";
import styles from "@/pages/atdTable/components/index.less";
@ -23,10 +23,30 @@ const ReportTable: FC = (props) => {
if (!_.isEmpty(data)) {
const { columns, dataSource, countResult, showSum, i18n } = data;
setDataSource(dataSource);
setColumns(columns);
setShowSumrow(showSum);
setSumRow(countResult);
setI18n(i18n);
setColumns(_.map(columns, item => {
return {
...item,
children: _.map(item.children, child => {
return {
...child,
render: (text: string, record: any) => {
return <Button type="link" onClick={() => {
window.parent.postMessage(
{
type: "turn",
payload: { id: "PIVOTCHART", params: { record } }
},
"*"
);
}}>{text}</Button>;
}
};
})
};
}));
}
};
return <Table

@ -49,6 +49,15 @@ export const getPicSuffix = () => {
return config.get("picSuffix");
};
/**
* 数组中某项移至数组末尾
* @returns {array}
*/
export const convertColumns = (array, fromIndex, toIndex) => {
array.splice(toIndex, 1, array.splice(fromIndex, 1)[0]);
return array;
};
/**
* 判断是否为JSON字符串
* @returns {string}

Loading…
Cancel
Save