薪酬统计分析-员工明细列表开发

This commit is contained in:
黎永顺 2023-05-25 14:39:01 +08:00
parent 93d07961c7
commit 28a7bb7f64
2 changed files with 40 additions and 29 deletions

View File

@ -6,7 +6,7 @@
*/
import React, { Component } from "react";
import { WeaLocaleProvider, WeaTable } from "ecCom";
import { Menu, Popover } from "antd";
import { Dropdown, Menu } from "antd";
import { statisticsEmployeeList } from "../../../apis/statistics";
import "../index.less";
@ -56,19 +56,14 @@ class EmployeeDetails extends Component {
width: 80,
render: (_, record) => {
return <div className="operates">
<Popover
placement="bottomRight" trigger="hover"
overlayClassName="operatePopover"
content={
<Menu onClick={() => {
window.open(`${window.location.origin}/spa/hrmSalary/static/index.html#/main/hrmSalary/analysisOfSalaryStatistics/${record.id}?name=${record.name}&dept=${record.department || ""}`);
}}>
<Menu.Item key="1">{getLabel(111, "查看")}</Menu.Item>
</Menu>
}
>
<Dropdown overlay={
<Menu>
<Menu.Item><a target="_blank"
href={`${window.location.origin}/spa/hrmSalary/static/index.html#/main/hrmSalary/analysisOfSalaryStatistics/${record.id}?name=${record.name}&dept=${record.department || ""}`}>{getLabel(111, "查看")}</a></Menu.Item>
</Menu>
} overlayStyle={{ width: "auto", height: "auto" }}>
<i className="icon-coms-more"/>
</Popover>
</Dropdown>
</div>;
}
}]

View File

@ -26,7 +26,12 @@ class Index extends Component {
taxAgentId: "",
salaryMonth: [moment().startOf("year").format("YYYY-MM"), moment().format("YYYY-MM")],
dataSource: [],
columns: []
columns: [],
pageInfo: {
current: 1,
pageSize: 10,
total: 0
}
};
}
@ -41,45 +46,56 @@ class Index extends Component {
}
handleReceive = ({ data }) => {
const { type } = data;
const { type, payload: { id, params } = {} } = data;
const { columns, dataSource, pageInfo } = this.state;
if (type === "init") {
const { columns, dataSource } = this.state;
this.postMessageToChild({
columns, dataSource,
showSum: false
showSum: false, pageInfo
});
} else if (type === "turn") {
if (id === "PAGEINFO") {
const { pageNum: current, size: pageSize } = params;
this.setState({ pageInfo: { ...pageInfo, current, pageSize } }, () => this.statisticsEmployeeDetailList());
}
}
};
postMessageToChild = (payload) => {
const childFrameObj = document.getElementById("atdTable");
const { dataSource, columns, showSum } = payload;
const { dataSource, columns, showSum, pageInfo } = payload;
childFrameObj && childFrameObj.contentWindow.postMessage(JSON.stringify({
dataSource, columns, showSum
dataSource, columns, showSum, pageInfo
}), "*");
};
statisticsEmployeeDetailList = () => {
const { params: { employeeId } } = this.props;
const { taxAgentId, salaryMonth } = this.state;
const payload = { employeeId, taxAgentId, salaryMonth };
const { taxAgentId, salaryMonth, pageInfo } = this.state;
const payload = {
employeeId, taxAgentId,
salaryMonth: salaryMonth.map(item => moment(item).format("YYYY-MM-DD")),
...pageInfo
};
this.setState({ loading: true });
statisticsEmployeeDetailList(payload).then(({ status, data }) => {
this.setState({ loading: false });
if (status) {
const { columns, pageInfo: { list } } = data;
const { columns, pageInfo: { list, pageNum: current, pageSize, total } } = data;
this.setState({
columns: _.map(columns, it => ({
columns: _.map(columns, (it, idx) => ({
...it,
dataIndex: it.column, width: 150,
title: it.text, align: "left"
dataIndex: it.text, width: 150,
title: it.width, align: "left",
fixed: (idx === 1 || idx === 0) ? "left" : "",
ellipsis: true
})),
dataSource: list || []
dataSource: list || [],
pageInfo: { ...pageInfo, current, pageSize, total }
}, () => {
this.postMessageToChild({
columns: this.state.columns,
dataSource: this.state.dataSource,
showSum: false
showSum: false, pageInfo: this.state.pageInfo
});
});
}
@ -106,8 +122,8 @@ class Index extends Component {
<Spin spinning={loading}>
<iframe
style={{ border: 0, width: "100%", height: "100%" }}
src="http://localhost:7607/#/commonTable"
// src="/spa/hrmSalary/hrmSalaryCalculateDetail/index.html#/commonTable"
// src="http://localhost:7607/#/commonTable"
src="/spa/hrmSalary/hrmSalaryCalculateDetail/index.html#/commonTable"
id="atdTable"
/>
</Spin>