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

# Conflicts:
#	src/pages/payrollFilesTable/index.tsx
#	src/pages/reportTable/index.tsx
This commit is contained in:
黎永顺 2023-07-04 09:41:20 +08:00
commit fb8acee257
9 changed files with 69271 additions and 69178 deletions

View File

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

View File

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

View File

@ -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 }}
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>
}
<Button type="link" style={{ padding: "0" }}
onClick={() => handleMenuClick({ key: "payroll" }, r?.id)}
>
<a>{i18n["更多"]}<DownOutlined/></a>
{i18n["设为发薪人员"]}
</Button>
<Dropdown
menu={{
items: salaryArchiveDelete === "1" ? [
{
key: "deletePendingTodo",
label: <a onClick={() => handleMenuClick({ key: "deletePendingTodo" }, r?.id)}>
{i18n["删除待办"]}
</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}
>
<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)}>
{i18n["删除待办"]}
</Button>
</Menu.Item>
</Menu>
}
<Button type="link" style={{ padding: "0", fontSize: 12 }}
onClick={() => handleMenuClick({ key: "stopSalary" }, r?.id)}
>
<a>{i18n["更多"]}<DownOutlined/></a>
{i18n["停薪"]}
</Button>
<Dropdown
menu={{
items: [
{
key: "deleteSuspendTodo",
label: <a onClick={() => handleMenuClick({ key: "deleteSuspendTodo" }, r?.id)}>
{i18n["删除待办"]}
</a>
}
]
}} placement="bottomRight"
overlayClassName={styles.moreIconWrapper}
>
<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}

View File

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

View File

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