salary-management-front/pc4mobx/hrmSalary/pages/salaryFile/salaryItemChangeList.js

136 lines
4.1 KiB
JavaScript

import React from "react";
import { Menu, message, Modal, Popover } from "antd";
import { inject, observer } from "mobx-react";
import ChangeSalaryModal from "./changeSalaryModal";
import { deleteSalaryItem } from "../../apis/archive";
import UnifiedTable from "../../components/UnifiedTable";
@inject("salaryFileStore")
@observer
export default class SalaryItemChangeList extends React.Component {
constructor(props) {
super(props);
this.state = {
changeSalaryVisible: false,
recordId: ""
};
this.searchParams = {};
}
componentWillMount() {
const { salaryFileStore: { fetchSingleSalaryItemList } } = this.props;
this.searchParams = { salaryArchiveId: this.props.id, current: 1 };
fetchSingleSalaryItemList(this.searchParams);
}
handleEdit = (record) => {
this.setState({
recordId: record.id
}, () => {
this.setState({
changeSalaryVisible: true
});
});
};
deleteSalaryItem = (salaryArchiveItemId) => {
Modal.confirm({
title: "信息确认",
content: "是否删除该调整数据",
onOk: () => {
const { salaryFileStore: { fetchSingleSalaryItemList } } = this.props;
deleteSalaryItem({ salaryArchiveItemId }).then(({ status, errormsg }) => {
if (status) {
message.success("删除成功");
this.searchParams = { salaryArchiveId: this.props.id, current: 1 };
fetchSingleSalaryItemList(this.searchParams);
} else {
message.error(errormsg || "删除失败");
}
});
},
onCancel: () => {
}
});
};
// 获取Columns
getColumns = () => {
const { salaryFileStore: { singleSalaryItemList }, selectedKey } = this.props;
let columns = [];
if (singleSalaryItemList.columns) {
columns = [...singleSalaryItemList.columns];
if (selectedKey === "fixed") {
columns = [...columns, {
dataIndex: "operate",
title: "操作",
render: (text, record) => {
return <div className="optWrapper">
<a href="javascript:void(0);" className="mr10" onClick={() => this.handleEdit(record)}>编辑</a>
<Popover
overlayClassName="moreIconWrapper"
placement="bottomRight"
content={<Menu onClick={(e) => this.deleteSalaryItem(record.id)}>
<Menu.Item key="delete">删除</Menu.Item>
</Menu>} title="">
<i className="icon-coms-more"/>
</Popover>
</div>;
}
}];
}
}
return columns;
};
// 页面跳转
handlePageChange(value) {
this.searchParams.current = value;
const { salaryFileStore: { fetchSingleSalaryItemList } } = this.props;
fetchSingleSalaryItemList(this.searchParams);
}
render() {
const { salaryFileStore } = this.props;
const { singleSalaryItemList } = salaryFileStore;
return (
<div>
<UnifiedTable
columns={
_.map(this.getColumns(), item => {
if (item.dataIndex !== "operate") {
return {
...item,
render: (text) => {
return <span className="ellipsis" title={text}>{text}</span>;
}
};
}
return { ...item };
})
}
dataSource={singleSalaryItemList.list ? singleSalaryItemList.list : []}
pagination={{
onChange: (value) => {
this.handlePageChange(value);
},
total: singleSalaryItemList.total,
showTotal: (total) => `${total}`,
current: singleSalaryItemList.pageNum
}}
xWidth={this.getColumns().length * 100}
/>
{
this.state.changeSalaryVisible && <ChangeSalaryModal
currentId={this.props.id}
recordId={this.state.recordId}
visible={this.state.changeSalaryVisible}
onCancel={() => {
this.setState({ changeSalaryVisible: false });
}}
/>
}
</div>
);
}
}