import React from "react";
import { Button, Spin } from "antd";
import { WeaCheckbox, WeaDialog, WeaInputSearch, WeaLocaleProvider, WeaTable } from "ecCom";
import { listSalaryItem } from "../../../apis/ledger";
const getLabel = WeaLocaleProvider.getLabel;
export default class LedgerSalaryItemAddModal extends React.Component {
constructor(props) {
super(props);
this.state = {
loading: { query: false }, name: "", selectedRowKeys: [], dataSource: [],
dataSourceCopy: [], columns: [], pageInfo: { current: 1, pageSize: 10, total: 0 }
};
}
componentWillReceiveProps(nextProps, nextContext) {
if (nextProps.visible !== this.props.visivle && nextProps.visible) {
this.setState({ selectedRowKeys: [], dataSourceCopy: [] }, () => {
this.listSalaryItem();
});
} else {
this.setState({ pageInfo: { current: 1, pageSize: 10, total: 0 } });
}
}
listSalaryItem = (extra = {}) => {
const { itemGroups } = this.props;
const { name, pageInfo, loading, dataSourceCopy } = this.state;
let excludeIds = [];
itemGroups.map(item => {
item.items && item.items.map(i => {
excludeIds.push(i.salaryItemId);
});
});
const payload = { excludeIds, name, ...pageInfo, ...extra };
this.setState({ loading: { ...loading, query: true } });
listSalaryItem(payload).then(({ status, data }) => {
this.setState({ loading: { ...loading, query: false } });
if (status) {
const { pageNum: current, pageSize, total, columns, list: dataSource } = data;
const tmpV = !_.isEmpty(dataSource) ? dataSource : [];
this.setState({
dataSourceCopy: [...dataSourceCopy, ...tmpV],
pageInfo: { ...pageInfo, current, pageSize, total }, dataSource: tmpV, columns
});
}
}).catch(() => {
this.setState({ loading: { ...loading, query: false } });
});
};
getSalaryItemAddColumns = () => {
const { columns } = this.state;
let newColumns = [];
newColumns = columns.map(column => {
let newColumn = column;
newColumn.render = (text, record, index) => { //前端元素转义
let valueSpan = record[newColumn.dataIndex + "span"] !== undefined ? record[newColumn.dataIndex + "span"] : record[newColumn.dataIndex];
switch (newColumn.dataIndex) {
case "useDefault":
case "hideDefault":
case "useInEmployeeSalary":
return