164 lines
5.3 KiB
JavaScript
164 lines
5.3 KiB
JavaScript
/*
|
|
* Author: 黎永顺
|
|
* name: 退差组件
|
|
* Description:
|
|
* Date: 2022/11/22
|
|
*/
|
|
import React, { Component } from "react";
|
|
import { message, Modal } from "antd";
|
|
import { WeaNewScroll } from "ecCom";
|
|
import RegTop from "./regTop";
|
|
import RegList from "./regList";
|
|
import RegAddEmployee from "./regAddEmployee";
|
|
import RegEditDetial from "./regEditDetial";
|
|
import { getQueryString } from "../../../../util/url";
|
|
import { calcPageNo } from "../../../../util";
|
|
import * as API from "../../../../apis/standingBook";
|
|
import "./index.less";
|
|
|
|
class Regression extends Component {
|
|
constructor(props) {
|
|
super(props);
|
|
this.state = {
|
|
selectKey: [],
|
|
returnPersonModal: {
|
|
title: "添加退差人员",
|
|
visible: false
|
|
},
|
|
returnEditPersonSlide: {
|
|
title: "",
|
|
editId: "",
|
|
visible: false
|
|
},
|
|
loading: { save: false }
|
|
};
|
|
this.regEmmployeeRef = null;
|
|
this.regListRef = null;
|
|
this.regTopRef = null;
|
|
}
|
|
|
|
delRecession = () => {
|
|
const { selectKey } = this.state;
|
|
API.delRecession(selectKey).then(({ status, errormsg }) => {
|
|
if (status) {
|
|
message.success("删除成功");
|
|
const current = calcPageNo(this.regListRef.state.pageInfo.total, this.regListRef.state.pageInfo.current, 10, selectKey.length);
|
|
this.regListRef.recessionList({ current });
|
|
this.regListRef.handleResetSelectRowKeys([]);
|
|
this.setState({ selectKey: [] });
|
|
} else {
|
|
message.error(errormsg || "删除失败");
|
|
}
|
|
});
|
|
};
|
|
handleSave = (params) => {
|
|
const { loading } = this.state;
|
|
const billMonth = getQueryString("billMonth");
|
|
const paymentOrganization = getQueryString("paymentOrganization");
|
|
const payload = {
|
|
...params,
|
|
billMonth,
|
|
paymentOrganization
|
|
};
|
|
this.setState({ loading: { ...loading, save: true } });
|
|
API.saveRecession(payload).then(({ status, errormsg }) => {
|
|
this.setState({ loading: { ...loading, save: false } });
|
|
if (status) {
|
|
message.success("操作成功。若退差月无核算明细,账单月则无法获取退差数据。");
|
|
this.handleCloseModal();
|
|
} else {
|
|
message.error(errormsg || "操作失败");
|
|
}
|
|
});
|
|
};
|
|
handleChangeOpt = (key) => {
|
|
const { returnPersonModal } = this.state;
|
|
const name = this.regTopRef.state.name;
|
|
const workcode = this.regTopRef.state.workcode;
|
|
const billMonth = getQueryString("billMonth");
|
|
const creator = Number(getQueryString("creator"));
|
|
const paymentOrganization = getQueryString("paymentOrganization");
|
|
switch (key) {
|
|
case "add":
|
|
this.setState({ returnPersonModal: { ...returnPersonModal, visible: true } });
|
|
break;
|
|
case "delete":
|
|
Modal.confirm({
|
|
title: "信息确认",
|
|
content: "删除人员本账单月将不包含该人员的退差数据!",
|
|
onOk: () => {
|
|
this.delRecession();
|
|
},
|
|
onCancel: () => {
|
|
}
|
|
});
|
|
break;
|
|
case "export":
|
|
const url = `${window.location.origin}/api/bs/hrmsalary/welfare/recession/export?creator=${creator}&billMonth=${billMonth}&paymentOrganization=${paymentOrganization}`;
|
|
window.open(url, "_self");
|
|
break;
|
|
case "search":
|
|
this.regListRef.recessionList({ userName: name, workcode, current: 1 });
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
};
|
|
handleCloseModal = (refreshList = false) => {
|
|
const { returnPersonModal, returnEditPersonSlide } = this.state;
|
|
this.setState({
|
|
returnPersonModal: { ...returnPersonModal, visible: false, title: "添加退差人员" },
|
|
returnEditPersonSlide: { ...returnEditPersonSlide, visible: false, title: "", editId: "" }
|
|
}, () => {
|
|
this.regEmmployeeRef.handleReset();
|
|
refreshList && this.regListRef.recessionList();
|
|
});
|
|
};
|
|
handleEdit = (record) => {
|
|
const { userName, id: editId } = record;
|
|
const { returnEditPersonSlide } = this.state;
|
|
this.setState({
|
|
returnEditPersonSlide: { ...returnEditPersonSlide, visible: true, title: userName, editId }
|
|
});
|
|
};
|
|
|
|
render() {
|
|
const billMonth = getQueryString("billMonth");
|
|
const { returnPersonModal, returnEditPersonSlide, selectKey, loading } = this.state;
|
|
return (
|
|
<div className="regressionWrapper">
|
|
<RegTop
|
|
type="regression"
|
|
ref={dom => this.regTopRef = dom}
|
|
billMonth={billMonth}
|
|
onChange={this.handleChangeOpt}
|
|
selectKey={selectKey}
|
|
/>
|
|
<div className="tableWrapper">
|
|
{/*<WeaNewScroll height="100%">*/}
|
|
<RegList
|
|
type="regression"
|
|
ref={dom => this.regListRef = dom}
|
|
visible={returnPersonModal.visible}
|
|
onChangeRowkey={(selectKey) => this.setState({ selectKey })}
|
|
onEdit={this.handleEdit}
|
|
/>
|
|
{/*编辑弹框*/}
|
|
<RegEditDetial {...returnEditPersonSlide} onCancel={this.handleCloseModal}/>
|
|
{/* 弹框 */}
|
|
<RegAddEmployee
|
|
ref={dom => this.regEmmployeeRef = dom}
|
|
{...returnPersonModal}
|
|
loading={loading}
|
|
onCancel={this.handleCloseModal}
|
|
onSave={this.handleSave}
|
|
/>
|
|
{/*</WeaNewScroll>*/}
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|
|
}
|
|
|
|
export default Regression;
|