/*
* Author: 黎永顺
* name: 工资单发放重构-工资单发放列表
* Description:
* Date: 2023/10/12
*/
import React, { Component } from "react";
import { WeaLocaleProvider, WeaTable } from "ecCom";
import { Dropdown, Menu, message, Tag } from "antd";
import { getPayrollList } from "../../../../apis/payroll";
import moment from "moment";
const getLabel = WeaLocaleProvider.getLabel;
class Index extends Component {
constructor(props) {
super(props);
this.state = {
loading: false, columns: [], dataSource: [],
pageInfo: { current: 1, pageSize: 10, total: 0 }
};
}
componentDidMount() {
this.getPayrollList(this.props);
}
componentWillReceiveProps(nextProps, nextContext) {
if (nextProps.isRefresh !== this.props.isRefresh) this.getPayrollList(nextProps);
}
getPayrollList = (props) => {
const { pageInfo } = this.state;
const { queryParams } = props;
const { dateRange: salaryYearMonth } = queryParams;
const params = { salaryYearMonth };
const payload = { ...pageInfo, ...params };
this.setState({ loading: true });
getPayrollList(payload).then(({ status, data }) => {
this.setState({ loading: false });
if (status) {
const { columns, pageInfo: { pageNum, pageSize, total, list: dataSource } } = data;
this.setState({
dataSource, pageInfo: { ...pageInfo, pageNum, pageSize, total },
columns: _.map(_.filter(columns, it => it.column !== "acctTimes"), o => {
const { column } = o;
if (column === "salarySob") {
return {
dataIndex: o.column, title: o.text, width: o.width,
render: (text, record) => {
const { acctTimes, salaryAcctType } = record;
return
{text}
{
salaryAcctType === 1 &&
{getLabel(388064, "补发")}
}
{`${getLabel(15323, "第")}${acctTimes}${getLabel(18929, "次")}`}
;
}
};
}
if (column === "salaryYearMonth" || column === "lastSendTime") {
return {
dataIndex: o.column, title: o.text, width: o.width,
render: (text) => {
const time = moment(parseInt(text)).format("YYYY-MM");
return {time};
}
};
}
return { dataIndex: o.column, title: o.text, width: o.width };
})
});
}
}).catch(() => this.setState({ loading: false }));
};
handleOpts = ({ key }, record) => {
const { id, templateId } = record;
switch (key) {
case "template":
if (templateId) {
this.props.onUpdateTemp(templateId);
} else {
message.warning(getLabel(543602, "请设置默认模板"));
}
break;
case "log":
this.props.onFilterLog(key, id);
break;
default:
break;
}
};
render() {
const { loading, dataSource, columns, pageInfo } = this.state;
const pagination = {
...pageInfo,
showTotal: total => `${getLabel(18609, "共")} ${total} ${getLabel(18256, "条")}`,
showQuickJumper: true,
showSizeChanger: true,
pageSizeOptions: ["10", "20", "50", "100"],
onShowSizeChange: (current, pageSize) => {
this.setState({
pageInfo: { ...pageInfo, current, pageSize }
}, () => this.getPayrollList(this.props));
},
onChange: current => {
this.setState({
pageInfo: { ...pageInfo, current }
}, () => this.getPayrollList(this.props));
}
};
return (
{
const { canSeeDetail, sendNum, sendTotal, haveBackCalc, salaryAcctType, id, ackFeedbackStatus } = record;
//显示更新模板
const showGrant = haveBackCalc === 1 && salaryAcctType === 0;
return
{
record.opts.includes("admin") &&
{getLabel(542702, "发放")}
}
{
canSeeDetail &&
{getLabel(83110, "查看详情")}
}
{
(!record.opts.includes("admin") || (sendNum === sendTotal && !showGrant)) &&
this.handleOpts(e, record)}>
{getLabel(545781, "操作日志")}
}
>
}
{
sendNum !== sendTotal && !showGrant && record.opts.includes("admin") &&
this.handleOpts(e, record)}>
{getLabel(543603, "更新模板")}
{getLabel(545781, "操作日志")}
}
>
}
;
}
}
]}
/>
);
}
}
export default Index;